====== 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!