Как Mamba кардинально изменила мою работу в Linux — настройка за минуту и никаких заморочек!

Иллюстрация: редактор кода с Python-скриптом, использующим менеджер пакетов Mamba, на фоне крупный логотип змеи Mamba.

Быстрые ссылки

Работаете с анализом данных или увлекаетесь data science? Тогда вы наверняка сталкивались с бардаком в пакетах на Linux. А что, если бы каждому проекту можно было дать свою программу в собственной песочнице, полностью изолированной от остальной системы, и всё это — без лишних танцев с виртуальными машинами? Вот здесь и вступает в игру Mamba.

Что такое Mamba?

Страница Mamba на GitHub.

Mamba — это менеджер пакетов для создания изолированных проектов. В чём-то похож на обычные пакетные менеджеры Linux, но его задача — собирать и управлять нужными программами именно для вашего проекта, не затрагивая систему целиком. К тому же, это ускоренная версия знаменитой Conda: всё ради скорости, поэтому Mamba написана не на Python, а на C .

В тусовке аналитиков данных, статистиков и биоинформатиков Mamba уже стала своим парнем. Название со “змеиной” темой идеально сочетается с Python — и, честно говоря, они отлично работают вместе. А главное — скорость установки и обновления просто космическая по сравнению с оригинальной Conda.

Mamba делает всё, что ждут от продвинутого пакетного менеджера: ищет, ставит и обновляет пакеты прямо внутри ваших изолированных сред. Теперь можно легко создать отдельную среду под задачу, быстро переключаться между ними и больше не переживать за чистоту системы.

Зачем нужна Mamba?

Если вы давно пишете на Linux или другом UNIX-подобном дистрибутиве, у вас вполне может возникнуть резонный вопрос: а зачем вообще отдельный менеджер, если уже есть системный? Всё гораздо проще, чем кажется.

Большинство программ из стандартных репозиториев устанавливаются системе целиком — например, системный Python нужен для работы самого Linux. Но бывает, что конкретному проекту нужна более свежая версия Python или дополнительных библиотек, и если вы попробуете обновить системный Python — рискуете “сломать” что-нибудь важное.

APT против Snap и Flatpak: когда выбирать какой пакетный менеджер в Ubuntu?

В мире Linux всегда есть инструмент под любую задачу.

Вот тут-то и выручает Mamba: создаёте отдельную среду специально под ваш проект — и никакие другие программы не страдают. Для data science это просто находка — рабочие библиотеки всегда под рукой, но при этом основная система остаётся в порядке. Включили среду — поработали — выключили, и на компьютере всё как было.

Я не раз спасал свои проекты с помощью Mamba, особенно когда писал аналитику, например, для оценки цен на ноутбуки.

Как установить Mamba

Поставить Mamba на современный UNIX — проще простого, всё занимает лишь пару минут. Разберёмся на примере Debian Linux.

Достаточно просто скачать официальный минимальный дистрибутив Miniforge с сайта Mamba — это облегчённая версия для быстрого старта.

Если у вас уже есть curl, достаточно вставить одну строку в терминал — и загрузка пошла:

Загрузка miniforge conda через Curl.

Архив скачали — запускаем установочный скрипт:

Инсталляция Miniforge — ожидание нажатия Enter.

Скрипт попросит нажать Enter для продолжения, покажет лицензию (Mamba — open source), соглашайтесь, просто напишите «yes».

Далее указываете, куда ставить пакеты Conda — обычно по умолчанию всё окажется у вас в домашней папке в директории «miniforge».

В конце инсталляции будет предложение добавить Mamba в автозапуск вашей оболочки (например, .bashrc или .zshrc), чтобы она активировалась сама при запуске терминала. Лучше сказать «да» — так гораздо удобнее потом управлять своими средами. Ещё раз — просто пишем «yes».

Как создать изолированную среду

После установки, когда вы откроете терминал, скорее всего увидите в приглашении «(base)» — это значит, что активирована базовая среда Mamba, самый минимальный чистый набор. Если вызвать «python», посмотрите — эта версия Python собрана специально и поставляется через conda-forge.

Python от Mamba в терминале Linux.

Можно ставить пакеты прямо в эту «base», но вся фишка Mamba как раз в другом: под каждую задачу есть отдельная среда, и они не мешают друг другу.

Создать новую изолированную среду — дело одной команды. Просто используйте «mamba create» c опцией «-n», указываете имя среды и нужные библиотеки.

Скажем, для анализа данных создаём среду «stats» с пакетами NumPy, SciPy и pandas:

Установка среды "stats" в Mamba.

Mamba сама разберётся со всеми зависимостями, попросит подтвердить установку — при этом всё ставится в вашу домашнюю, никаких sudo не надо.

Установка пакетов в среду Mamba "stats".

Чтобы войти в новую среду, достаточно одной команды:

Запуск "mamba activate stats" в терминале Linux.

Теперь вместо «base» вас встречает «stats» — значит, сейчас вы работаете именно с этими библиотеками.

Проверьте сами: запускаете Python, импортируете NumPy — всё работает как часы!

Для примера — при вычислении 5/2 получаем 2.5, так и должно быть.

Добавление новых пакетов

Часто по ходу работы хочется добавить какой-либо инструмент. Например, я предпочитаю IPython вместо стандартной консоли Python. Тут есть два простых способа это сделать.

Линукс-терминал для новичков: устанавливаем и удаляем программы буквально за пару секунд

Будете себя чувствовать как гуру командной строки!

Можно сразу установить пакет в конкретную среду, выполнив такую команду:

Установка IPython в существующую среду "stats" с помощью Mamba.

Либо просто напишите «mamba install» внутри уже запущенной среды — всё окажется именно там. Подтвердили — готово, IPython доступен.

Теперь запускайте интерактивную оболочку — и вперед исследовать данные.

Закончили работать? Просто введите «mamba deactivate» — и ваша среда отключится. Если попробуете запустить IPython из системы — получите сообщение, что такого пакета больше нет: значит, установка была только для этой среды.

Чтобы найти нужную библиотеку, используйте «mamba search» или «mamba repoquery».

Хотите узнать, что есть из популярного для Jupyter? Пропишите нужный запрос, и Mamba выдаст вам всё, что ищете.

Результат "mamba search jupyter" в терминале. Обновление сред Mamba

Результат "mamba search jupyter" в терминале.

Как и любой нормальный пакетный менеджер, Mamba позволяет легко держать все ваши библиотеки в актуальном состоянии. Для этого есть команда «mamba update».

Например, чтобы обновить всю среду stats одним махом:

Обновление среды "stats" с помощью Mamba.

Вместо опции «—all» можно использовать «—update-all», но первый вариант проще. Если всё уже свежее — обновлений просто не найдётся.

С помощью Mamba я делаю идеальные рабочие среды, мгновенно переключаюсь между проектами и обновляю их в пару кликов. Да, сначала может показаться странным — менеджер на менеджере… Но будьте уверены: ваши проекты наконец-то под настоящим контролем!

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка — это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!

Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

Также подписывайтесь на нас в:

Алекс Бежбакин
Оцените автора
Добавить комментарий