|
|
|
# Closs-platform package manager update
|
|
|
|
|
|
|
|
23년 11월 21일 작성함.
|
|
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
|
|
현재 클러스터 패키지 매니저인 Miniconda3에서 [Mamba](https://github.com/mamba-org/mamba)를 사용해보자는 의견이 있어서 관련 Repository인 [Miniforge3](https://github.com/conda-forge/miniforge) 및 그에 따른 `Mamba` 설치를 완료함.
|
|
|
|
|
|
|
|
## 배경
|
|
|
|
|
|
|
|
현대의 프로그래밍은 모든 코드를 직접 작성하던 옛날과는 달리, 다른 프로그래머들의 코드를 이용하여 훨씬 복잡하고 유용한 작업을 보다 빠르게 수행한다. 우리 연구실의 클러스터도 이와 관련하여 널리 사용되는 패키지 매니저 (혹은 가상환경 매니저) 인 [Miniconda3](https://docs.conda.io/projects/miniconda/en/latest/)를 사용하고 있었다.
|
|
|
|
|
|
|
|
현재 서비스 중인 Jupyterhub과 관련 제반사항 (Jupyter, Python, IPython 등)은 위의 Miniconda를 이용하여 버전관리 및 유지보수가 진행 중이다. 그리고 대부분의 파이썬 패키지 (Numpy, matplotlib, networkx, Pandas etc.) 또한 `conda`를 이용하여 설치 및 관리한다. 이러한 이유는 해당 패키지들 또한 다른 여러 패키지들을 이용하고 있고, 특정 패키지의 특정 버전을 필요로 하는 등, 매우 복잡한 작업이 되곤 한다. 이를 모두 관리해주는 프로그램이 바로 `conda` 이다.
|
|
|
|
|
|
|
|
한편, 이렇게 편리한 `conda`에도 큰 단점이 있는데, 이는 각 패키지들 사이의 사용관계 및 의존성을 확인하고 이를 제어하는 과정이 굉장히 오래 걸린다는 단점이 있다. 이러한 과정은 특히 이미 기존에 많은 패키지가 설치되어 있는 만큼 오래 걸린다는 문제점이 존재한다.
|
|
|
|
|
|
|
|
`mamba`는 이러한 단점을 극복하기 위해 나온 패키지 매니저로 빠른 오픈소스 패키지 build와 기존 환경에 패키지를 의존성을 확인하는 solver를 향상시킨 프로그램으로 보인다.
|
|
|
|
|
|
|
|
따라서, 클러스터 내의 Package Manager를 `conda`에서 `mamba`로 점진적으로 교체하려고 한다.
|
|
|
|
|
|
|
|
## 사용법
|
|
|
|
|
|
|
|
* mamba 설치 경로 : `/usr/local/miniforge3/`
|
|
|
|
* mamba 적용 command : `mambainit` (띄어쓰기 없음에 유의)
|
|
|
|
|
|
|
|
현재 `mamba`는 클러스터에 설치가 되어 있으므로 각 유저는 자신의 환경에서 사용하기 위해 명령어의 위치만 setup해주면 된다. 이러한 셋업을 하는 command 를 미리 작성해 두었다.
|
|
|
|
|
|
|
|
셋업은 `~/.bashrc`를 바꾸는 작업만 수행하므로 현재 터미널에서 적용하고 싶은 경우
|
|
|
|
|
|
|
|
> `mambainit && source ~/.bashrc`
|
|
|
|
|
|
|
|
명령어를 이용하면 현재 터미널에 바로 적용할 수 있다.
|
|
|
|
|
|
|
|
(this will be deprecated) 기존 miniconda3를 이용하고 싶은 경우 `condainit`을 사용하면 언제든 다시 원래 사용하던 miniconda로 돌아올 수 있다.
|
|
|
|
|
|
|
|
## 유의사항
|
|
|
|
|
|
|
|
mamba는 conda의 공식 프로젝트는 아니므로 호환되지 않는 패키지가 있을지도 모르나, 현재 확인한 바로는 크게 문제되는 사항은 없었다.
|
|
|
|
|
|
|
|
## |
|
|
|
\ No newline at end of file |