2018년 4월 3일 화요일

생각보다 까다로운 bioconda

Anaconda(Anaconda3-5.1.0-Linux-x86_64)를 사용하여 python만 관리를 하려다가 bioconda를 이용하여 여러 생명정보분석 프로그램을 까는 것이 대단히 편리할 것이라는 판단이 들어서 며칠간에 거쳐서 테스트를 하였다. 특히 의존성이 많은 프로그램은 동반된 라이브러리와 다른 프로그램까지 알아서 설치해 주니 여간 편한 것이 아니었다.

그런데 환경(-n myenv로 설정되는 conda environment)을 고정한 상태에서 몇 가지 프로그램을 깔아보니 공통적으로 쓰이는 프로그램들을 의존성에 따라서 업그레이했다가 또 다운그레이드했다가를 반복하는 것이 아닌가. 그리고 이미 시스템에 설치된 프로그램까지 다시 내려받아 깔고 있다. 구체적인 예를 들어보자. Conda로 Roary를 설치하였더니 Perl 5.22.0.1을 덩달아 내려받는다. 하지만 이미 시스템에는 Perl 5.16.3이 존재한다. 아마도 Roary 패키지에서 정의된 필수 프로그램은 시스템이 이미 존재하는지의 여부와 관계없이 그대로 깔게 만든 것 같다. Linuxbrew는 어떻게 행동하는지 알아보지는 않았다.

그러는 과정에서 R이 뒤죽박죽이 되면서 실행 시 에러가 발생하고 말았다. 일단 R은 yum을 통해서 설치하는 것으로 바꾸어 놓았다.

그러면 패키지 하나에 대해서 환경을 각각 설정하면 될 것이 아니냐고 생각할 수도 있다. 실제로 해보니 perl/python interpreter 등 기본적이 도구들이 매 환경마다 다른 위치에 반복하여 깔리는 것이 아닌가. 저장공간 입장에서는 매우 비효율적이다.

다시 Linuxbrew를 적극 활용할까 하는 생각이 슬슬 들고 있다.

설치 과정을 철저히 기록함과 동시에 일관성 있는 운용 정책을 수립할 때라고 믿는다. Roary 같이 의존성이 큰 bioconda 패키지를 하나 깔아놓고, 다른 것을을 설치하면서 서로 충돌하는 것은 없는지를 살펴봐야 되겠다.

댓글 없음: