====== Exploitation ou Installation de Miniconda au Centre Blaise Pascal ======
===== Utilisation du miniconda embarqué =====
Pour exploiter le **miniconda3** version **23.3.1** installé au Centre Blaise Pascal sur les machines du domaine
[[http://www.cbp.ens-lyon.fr/python/forms/CloudCBP|CLoudCBP]], il suffit de taper dans un terminal :
module load conda3/23.3.1
Ce **miniconda3** comprend notamment les outils classiques de //machine learning// PyTorch et Tensorflow.
===== Installation de son propre miniconda =====
Miniconda est un outil permettant à chaque utilisateur d'installer un environnement Python (et ses dépendances) pour ses propres besoins. C'est devenu nécessaire voire indispensable pour les applications demandant des versions très spécifiques de librairies.
L'installation de son environnement personnel se décompose en 3 phases :
- récupération de l'installeur ''miniconda'' sur le [[https://docs.conda.io/en/latest/miniconda.html#linux-installers|site de conda]]
- installation de l'application à l'endroit adapté
- configuration de son lancement
===== Récupération de l'installeur Miniconda =====
Le site de [[https://docs.conda.io/en/latest/miniconda.html#linux-installers|site de conda]] est assez explicite.
Pour récupérer le dernier installeur Miniconda pour **Python 3.9**, tapez les commandes suivantes :
cd $HOME
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O $HOME/Miniconda.sh
===== Installation de l'application =====
A moins de savoir EXACTEMENT ce que vous faites, il est VIVEMENT déconseillé d'installer Miniconda dans son espace utilisateur personnel (le ''$HOME''). En effet, **Conda** (''Miniconda'' ou ''Anaconda'') installe des centaines de milliers de fichiers. Le ''$HOME'' de chaque utilisateur est par défaut limité à 20GB et 500000 [[https://fr.wikipedia.org/wiki/N%C5%93ud_d%27index|inodes]]. Vous risquez donc de remplir votre espace utilisateur avec une simple installation de **Conda**
L'installation de compose de 7 étapes :
- sauvegarde de la configuration du shell : tapez ''cp $HOME/.bashrc $HOME/.bashrc.orig''
- lancement de la commande d'installation : tapez ''bash $HOME/Miniconda3.sh''
- la revue de la licence : tapez '''' à la première invite Python In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>>
- l'acceptation de la licence : entrez ''oui'' à la seconde invite Python Do you accept the license terms? [yes|no]
[no] >>>
- le choix de l'emplacement : tapez ''/scratch/$USER/Miniconda3'' à l'invite Python - Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/home//miniconda3] >>>
* vous pouvez spécifier un autre endroit comme, par exemple dans l'espace //projets// ''projects''
* pour vous en particulier : ''/projects/users/$USER/Miniconda3''
* pour un projet en particulier : ''/projects//Miniconda3''
- modification de la configuration du shell : tapez ''yes'' à l'invite python Do you wish the installer to initialize Miniconda3
by running conda init? [yes|no]
Section masquée
Par défaut, la configuration de votre shell est modifiée : à chaque ouverture de terminal, l'environnement **Conda** sera chargé, ce qui peut poser des difficultés si vous travaillez avec plusieurs environnements.
Le mieux est d'appliquer les deux commandes suivantes pour retrouver son environnement initial ET extraire de quoi lancer à discrétion l'environnement **Conda** :
tail -15 $HOME/.bashrc > CondaLatest.rc
cp $HOME/.bashrc.orig $HOME/.bashrc
Attention ! Avant d'installer un environnement **conda** dans un dossier dans ''/projects'', ''/scratch'' ou ''/local'', assurez-vous de créer **d'abord** le dossier avec ''mkdir /projects/users/$USER'', ''mkdir /scratch/$USER'' ou ''mkdir /local/$USER''
==== Lancement de l'environnement Conda installé ====
De manière à lancer l'environnement **Conda**, il suffit de lancer la commande : ''source $HOME/CondaLatest.rc''.
Dans un terminal :
jmylq@threadripper:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
jmylq@threadripper:~$ source $HOME/CondaLatest.rc
(base) jmylq@threadripper:~$ echo $PATH
/scratch/jmylq/miniconda3/bin:/scratch/jmylq/miniconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
(base) jmylq@threadripper:~$ echo $LD_LIBRARY_PATH
Nous voyons que le ''$PATH'' a été amendé des chemins vers
* ''/scratch/jmylq/miniconda3/bin''
* ''/scratch/jmylq/miniconda3/condabin''
==== Installation d'un logiciel dans l'environnement Conda configuré ====
Une fois l'environnement chargé avec ''source $HOME/CondaLatest.rc'', il suffit de taper ''conda install '' pour que **Conda** recherche les dépendances, les installe puis installe le logiciel spécifié.
Par exemple, pour l'installation de machine learning **pytorch** : ''conda install pytorch''
==== Logs complets d'une installation ====
Voici les logs complets d'une installation classique :
[/home/jmylq/miniconda3] >>> /scratch/$USER/miniconda3
PREFIX=/scratch/jmylq/miniconda3
Unpacking payload ...
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /scratch/jmylq/miniconda3
added / updated specs:
- _libgcc_mutex==0.1=main
- brotlipy==0.7.0=py39h27cfd23_1003
- ca-certificates==2020.12.8=h06a4308_0
- certifi==2020.12.5=py39h06a4308_0
- cffi==1.14.4=py39h261ae71_0
- chardet==3.0.4=py39h06a4308_1003
- conda-package-handling==1.7.2=py39h27cfd23_1
- conda==4.9.2=py39h06a4308_0
- cryptography==3.3.1=py39h3c74f83_0
- idna==2.10=py_0
- ld_impl_linux-64==2.33.1=h53a641e_7
- libedit==3.1.20191231=h14c3975_1
- libffi==3.3=he6710b0_2
- libgcc-ng==9.1.0=hdf63c60_0
- libstdcxx-ng==9.1.0=hdf63c60_0
- ncurses==6.2=he6710b0_1
- openssl==1.1.1i=h27cfd23_0
- pip==20.3.1=py39h06a4308_0
- pycosat==0.6.3=py39h27cfd23_0
- pycparser==2.20=py_2
- pyopenssl==20.0.0=pyhd3eb1b0_1
- pysocks==1.7.1=py39h06a4308_0
- python==3.9.1=hdb3f193_2
- readline==8.0=h7b6447c_0
- requests==2.25.0=pyhd3eb1b0_0
- ruamel_yaml==0.15.80=py39h27cfd23_0
- setuptools==51.0.0=py39h06a4308_2
- six==1.15.0=py39h06a4308_0
- sqlite==3.33.0=h62c20be_0
- tk==8.6.10=hbc83047_0
- tqdm==4.54.1=pyhd3eb1b0_0
- tzdata==2020d=h14c3975_0
- urllib3==1.25.11=py_0
- wheel==0.36.1=pyhd3eb1b0_0
- xz==5.2.5=h7b6447c_0
- yaml==0.2.5=h7b6447c_0
- zlib==1.2.11=h7b6447c_3
The following NEW packages will be INSTALLED:
_libgcc_mutex pkgs/main/linux-64::_libgcc_mutex-0.1-main
brotlipy pkgs/main/linux-64::brotlipy-0.7.0-py39h27cfd23_1003
ca-certificates pkgs/main/linux-64::ca-certificates-2020.12.8-h06a4308_0
certifi pkgs/main/linux-64::certifi-2020.12.5-py39h06a4308_0
cffi pkgs/main/linux-64::cffi-1.14.4-py39h261ae71_0
chardet pkgs/main/linux-64::chardet-3.0.4-py39h06a4308_1003
conda pkgs/main/linux-64::conda-4.9.2-py39h06a4308_0
conda-package-han~ pkgs/main/linux-64::conda-package-handling-1.7.2-py39h27cfd23_1
cryptography pkgs/main/linux-64::cryptography-3.3.1-py39h3c74f83_0
idna pkgs/main/noarch::idna-2.10-py_0
ld_impl_linux-64 pkgs/main/linux-64::ld_impl_linux-64-2.33.1-h53a641e_7
libedit pkgs/main/linux-64::libedit-3.1.20191231-h14c3975_1
libffi pkgs/main/linux-64::libffi-3.3-he6710b0_2
libgcc-ng pkgs/main/linux-64::libgcc-ng-9.1.0-hdf63c60_0
libstdcxx-ng pkgs/main/linux-64::libstdcxx-ng-9.1.0-hdf63c60_0
ncurses pkgs/main/linux-64::ncurses-6.2-he6710b0_1
openssl pkgs/main/linux-64::openssl-1.1.1i-h27cfd23_0
pip pkgs/main/linux-64::pip-20.3.1-py39h06a4308_0
pycosat pkgs/main/linux-64::pycosat-0.6.3-py39h27cfd23_0
pycparser pkgs/main/noarch::pycparser-2.20-py_2
pyopenssl pkgs/main/noarch::pyopenssl-20.0.0-pyhd3eb1b0_1
pysocks pkgs/main/linux-64::pysocks-1.7.1-py39h06a4308_0
python pkgs/main/linux-64::python-3.9.1-hdb3f193_2
readline pkgs/main/linux-64::readline-8.0-h7b6447c_0
requests pkgs/main/noarch::requests-2.25.0-pyhd3eb1b0_0
ruamel_yaml pkgs/main/linux-64::ruamel_yaml-0.15.80-py39h27cfd23_0
setuptools pkgs/main/linux-64::setuptools-51.0.0-py39h06a4308_2
six pkgs/main/linux-64::six-1.15.0-py39h06a4308_0
sqlite pkgs/main/linux-64::sqlite-3.33.0-h62c20be_0
tk pkgs/main/linux-64::tk-8.6.10-hbc83047_0
tqdm pkgs/main/noarch::tqdm-4.54.1-pyhd3eb1b0_0
tzdata pkgs/main/noarch::tzdata-2020d-h14c3975_0
urllib3 pkgs/main/noarch::urllib3-1.25.11-py_0
wheel pkgs/main/noarch::wheel-0.36.1-pyhd3eb1b0_0
xz pkgs/main/linux-64::xz-5.2.5-h7b6447c_0
yaml pkgs/main/linux-64::yaml-0.2.5-h7b6447c_0
zlib pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3
Preparing transaction: done
Executing transaction: done
installation finished.
Do you wish the installer to initialize Miniconda3
by running conda init? [yes|no]
[no] >>> yes
no change /scratch/jmylq/miniconda3/condabin/conda
no change /scratch/jmylq/miniconda3/bin/conda
no change /scratch/jmylq/miniconda3/bin/conda-env
no change /scratch/jmylq/miniconda3/bin/activate
no change /scratch/jmylq/miniconda3/bin/deactivate
no change /scratch/jmylq/miniconda3/etc/profile.d/conda.sh
no change /scratch/jmylq/miniconda3/etc/fish/conf.d/conda.fish
no change /scratch/jmylq/miniconda3/shell/condabin/Conda.psm1
no change /scratch/jmylq/miniconda3/shell/condabin/conda-hook.ps1
no change /scratch/jmylq/miniconda3/lib/python3.9/site-packages/xontrib/conda.xsh
no change /scratch/jmylq/miniconda3/etc/profile.d/conda.csh
modified /home/jmylq/.bashrc
==> For changes to take effect, close and re-open your current shell. <==
If you'd prefer that conda's base environment not be activated on startup,
set the auto_activate_base parameter to false:
conda config --set auto_activate_base false
Thank you for installing Miniconda3!