Se va a mostrar cómo proceder para realizar un backup y restauración de nuestro miniconda environment y software instalado en el mismo en situaciones en las que necesitemos proceder a recuperarlo en situaciones como las siguientes:
Para proceder seguimos los siguientes pasos.
En este caso sólo tendremos que realizarlo cuando nuestro entorno miniconda esté en HPC Drago, podría ser trasladable a otros entornos o sistemas.
# ssh usuario@drago.csic.es
Procedemos a acceder al envioronment en cuestión.
(base) [usuario@drago31010015 ~]$ conda activate pruebaenv
(pruebaenv) [usuario@drago31010015 ~]$
Consultamos los paquetes instalados en este momento:
(pruebaenv) [usuario@drago31010015 ~]$ conda list
# packages in environment at /lustre/home/centro/usuario/.conda/envs/pruebaenv:
#
# Name Version Build Channel
_libgcc_mutex 0.1 main
_openmp_mutex 5.1 1_gnu
blas 1.0 mkl
ca-certificates 2022.07.19 h06a4308_0
certifi 2022.6.15 py38h06a4308_0
cffi 1.15.1 py38h74dc2b5_0
future 0.18.2 py38_1
intel-openmp 2021.4.0 h06a4308_3561
ld_impl_linux-64 2.38 h1181459_1
libffi 3.3 he6710b0_2
libgcc-ng 11.2.0 h1234567_1
libgfortran-ng 7.5.0 ha8ba4b0_17
libgfortran4 7.5.0 ha8ba4b0_17
libgomp 11.2.0 h1234567_1
libstdcxx-ng 11.2.0 h1234567_1
mkl 2021.4.0 h06a4308_640
mkl-service 2.4.0 py38h7f8727e_0
mkl_fft 1.3.1 py38hd3c417c_0
mkl_random 1.2.2 py38h51133e4_0
mpi 1.0 mpich
mpi4py 3.0.3 py38h028fd6f_0
mpich 3.3.2 hc856adb_0
ncurses 6.3 h5eee18b_3
ninja 1.10.2 h06a4308_5
ninja-base 1.10.2 hd09550d_5
numpy 1.23.1 py38h6c91a56_0
numpy-base 1.23.1 py38ha15fc14_0
openssl 1.1.1q h7f8727e_0
pip 22.1.2 py38h06a4308_0
pycparser 2.21 pyhd3eb1b0_0
python 3.8.13 h12debd9_0
pytorch 1.10.2 cpu_py38hfa7516b_0
readline 8.1.2 h7f8727e_1
setuptools 63.4.1 py38h06a4308_0
six 1.16.0 pyhd3eb1b0_1
sqlite 3.39.2 h5082296_0
tk 8.6.12 h1ccaba5_0
typing-extensions 4.3.0 py38h06a4308_0
typing_extensions 4.3.0 py38h06a4308_0
wheel 0.37.1 pyhd3eb1b0_0
xz 5.2.5 h7f8727e_1
zlib 1.2.12 h5eee18b_3
(pruebaenv) [usuario@drago31010015 ~]$
Para ello procedemos de la siguiente forma:
(pruebaenv) [usuario@drago31010015 ~]$ conda env export > pruebaenv_export.yml
(pruebaenv) [usuario@drago31010015 ~]$ cat pruebaenv_export.yml
name: pruebaenv
channels:
- conda-forge
dependencies:
- _libgcc_mutex=0.1=main
- _openmp_mutex=5.1=1_gnu
- blas=1.0=mkl
- ca-certificates=2022.07.19=h06a4308_0
- certifi=2022.6.15=py38h06a4308_0
- cffi=1.15.1=py38h74dc2b5_0
- future=0.18.2=py38_1
- intel-openmp=2021.4.0=h06a4308_3561
- ld_impl_linux-64=2.38=h1181459_1
- libffi=3.3=he6710b0_2
- libgcc-ng=11.2.0=h1234567_1
- libgfortran-ng=7.5.0=ha8ba4b0_17
- libgfortran4=7.5.0=ha8ba4b0_17
- libgomp=11.2.0=h1234567_1
- libstdcxx-ng=11.2.0=h1234567_1
- mkl=2021.4.0=h06a4308_640
- mkl-service=2.4.0=py38h7f8727e_0
- mkl_fft=1.3.1=py38hd3c417c_0
- mkl_random=1.2.2=py38h51133e4_0
- mpi=1.0=mpich
- mpi4py=3.0.3=py38h028fd6f_0
- mpich=3.3.2=hc856adb_0
- ncurses=6.3=h5eee18b_3
- ninja=1.10.2=h06a4308_5
- ninja-base=1.10.2=hd09550d_5
- numpy=1.23.1=py38h6c91a56_0
- numpy-base=1.23.1=py38ha15fc14_0
- openssl=1.1.1q=h7f8727e_0
- pip=22.1.2=py38h06a4308_0
- pycparser=2.21=pyhd3eb1b0_0
- python=3.8.13=h12debd9_0
- pytorch=1.10.2=cpu_py38hfa7516b_0
- readline=8.1.2=h7f8727e_1
- setuptools=63.4.1=py38h06a4308_0
- six=1.16.0=pyhd3eb1b0_1
- sqlite=3.39.2=h5082296_0
- tk=8.6.12=h1ccaba5_0
- typing-extensions=4.3.0=py38h06a4308_0
- typing_extensions=4.3.0=py38h06a4308_0
- wheel=0.37.1=pyhd3eb1b0_0
- xz=5.2.5=h7f8727e_1
- zlib=1.2.12=h5eee18b_3
prefix: /lustre/home/centro/usuario/.conda/envs/pruebaenv
Para ello vamos a proceder como si tuviese el nuevo environment otro nombre, si se quiere utilizar el mismo pues procederíamos a su eliminación previa.
(base) [usuario@drago31010015 ~]$ conda env create -n envusuario -f pruebaenv_export.yml
Collecting package metadata (repodata.json): done
Solving environment: done
==> WARNING: A newer version of conda exists. <==
current version: 4.9.2
latest version: 4.14.0
Please update conda by running
$ conda update -n base -c defaults conda
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate envusuario
#
# To deactivate an active environment, use
#
# $ conda deactivate
(base) [usuario@drago31010015 ~]$ conda env list
# conda environments:
#
base * /dragofs/sw/foss/0.2/software/Miniconda3/4.9.2
envusuario /lustre/home/centro/usuario/.conda/envs/envusuario
Vemos que se ha creado correctamente el nuevo environment.
Vamos a activar el environemnt y verificar que los paquetes previamente instalados en el anterior environment los tenemos en el nuevo.
(base) [usuario@drago31010015 ~]$ conda activate envusuario
(envusuario) [usuario@drago31010015 ~]$ conda list
# packages in environment at /lustre/home/centro/usuario/.conda/envs/envusuario:
#
# Name Version Build Channel
_libgcc_mutex 0.1 main
_openmp_mutex 5.1 1_gnu
blas 1.0 mkl
ca-certificates 2022.07.19 h06a4308_0
certifi 2022.6.15 py38h06a4308_0
cffi 1.15.1 py38h74dc2b5_0
future 0.18.2 py38_1
intel-openmp 2021.4.0 h06a4308_3561
ld_impl_linux-64 2.38 h1181459_1
libffi 3.3 he6710b0_2
libgcc-ng 11.2.0 h1234567_1
libgfortran-ng 7.5.0 ha8ba4b0_17
libgfortran4 7.5.0 ha8ba4b0_17
libgomp 11.2.0 h1234567_1
libstdcxx-ng 11.2.0 h1234567_1
mkl 2021.4.0 h06a4308_640
mkl-service 2.4.0 py38h7f8727e_0
mkl_fft 1.3.1 py38hd3c417c_0
mkl_random 1.2.2 py38h51133e4_0
mpi 1.0 mpich
mpi4py 3.0.3 py38h028fd6f_0
mpich 3.3.2 hc856adb_0
ncurses 6.3 h5eee18b_3
ninja 1.10.2 h06a4308_5
ninja-base 1.10.2 hd09550d_5
numpy 1.23.1 py38h6c91a56_0
numpy-base 1.23.1 py38ha15fc14_0
openssl 1.1.1q h7f8727e_0
pip 22.1.2 py38h06a4308_0
pycparser 2.21 pyhd3eb1b0_0
python 3.8.13 h12debd9_0
pytorch 1.10.2 cpu_py38hfa7516b_0
readline 8.1.2 h7f8727e_1
setuptools 63.4.1 py38h06a4308_0
six 1.16.0 pyhd3eb1b0_1
sqlite 3.39.2 h5082296_0
tk 8.6.12 h1ccaba5_0
typing-extensions 4.3.0 py38h06a4308_0
typing_extensions 4.3.0 py38h06a4308_0
wheel 0.37.1 pyhd3eb1b0_0
xz 5.2.5 h7f8727e_1
zlib 1.2.12 h5eee18b_3