Создание Rust-окружения с помощью Conda на Linux

Conda можно использовать не только для Python: с его помощью удобно управлять изолированными окружениями с Rust. В этой инструкции показано, как установить Anaconda на Ubuntu 20.04, создать окружение для Rust, добавить Cargo в PATH и правильно деактивировать либо удалить окружение. Подойдёт для разработчиков и администраторов, которым нужно изолировать версии компилятора и пакетов.
Важно: команды в разделе “Команды” следует выполнять с правами root или от пользователя, у которого есть sudo.
Что такое Conda и зачем использовать её с Rust
Conda — это менеджер пакетов и окружений, изначально популярный в Python-экосистеме, но не завязанный на одном языке. Он позволяет создавать изолированные окружения с собственными версиями компиляторов и библиотек, что полезно при параллельной разработке нескольких проектов. Rust обычно устанавливают через rustup, но Conda удобна там, где уже используется для других языков и где важна единая система управления окружениями.
Короткое определение: Conda — менеджер пакетов и окружений; rustc — компилятор Rust; cargo — менеджер пакетов и инструмент сборки Rust.
Требования
- Сервер с Ubuntu 20.04.
- Настроен root или пользователь с sudo.
Шаг 0. Проверка системы и обновление пакетов
Обновите список пакетов и систему перед установкой зависимостей:
apt-get update -yЗатем установите требуемые библиотеки (графические зависимости часто нужны для некоторых бинарных пакетов):
apt-get install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6 -yПримечание: если вы используете Docker-контейнер или минимальную систему, часть пакетов может уже отсутствовать; установите только необходимые.
Установка Anaconda
- Скачайте инсталлятор Anaconda (пример — конкретная версия 2021.05):
wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh- Запустите скрипт установщика:
bash Anaconda3-2021.05-Linux-x86_64.shВо время установки установщик спросит подтверждение пути установки и предложит выполнить conda init. Рекомендуется разрешить инициализацию (ответить “yes”), чтобы добавить Conda в окружение shell.
- После установки активируйте изменения в текущем сеансе shell:
source ~/.bashrcВажно: если вы установили Anaconda не под root, пути будут указывать на домашний каталог соответствующего пользователя.
Создание Rust-окружения с помощью Conda
Conda распространяет пакет rust в канале conda-forge. Чтобы создать новое окружение с Rust, выполните:
conda create -c conda-forge -n rustenv rustПосле успешного завершения вы увидите подсказку об активации окружения:
#
# To activate this environment, use
#
# $ conda activate rustenv
#
# To deactivate an active environment, use
#
# $ conda deactivate
Проверьте список окружений:
conda info --envsОжидаемый вывод включает базовое окружение и новое окружение rustenv с путём, например /root/anaconda3/envs/rustenv.
Активируйте окружение:
conda activate rustenvКомандная строка должна измениться и показать префикс (rustenv). Проверьте версии компилятора и менеджера пакетов:
rustc --versioncargo --versionПримечание: пакет cargo пишется как “cargo” — в исходной инструкции было опечатка “Corgo”.
Добавление Cargo в системный PATH
Если после установки через Conda вы также хотите использовать глобальные плагины Cargo или бинарные пакеты, установленные в ~/.cargo/bin, добавьте эту папку в PATH.
Отредактируйте .bashrc:
nano ~/.bashrcВ конец файла добавьте строку:
export PATH=/root/.cargo/bin:$PATHСохраните, закройте редактор и выполните:
source ~/.bashrcПримечание: указывайте корректный пользовательский путь, например $HOME/.cargo/bin, если вы не выполняли действия от root.
Деактивация и удаление окружения
Деактивация текущего Conda-окружения:
conda deactivateУдаление окружения rustenv:
conda env remove -n rustenvКритерии приёмки
- Окружение создаётся командой conda create без ошибок.
- При активации conda activate rustenv команды rustc –version и cargo –version возвращают корректные версии.
- Binaries, установленные через Cargo в ~/.cargo/bin, доступны в новой сессии после обновления PATH.
Частые проблемы и как их решать
- Проблема: “conda: команда не найдена” — убедитесь, что вы выполнили source ~/.bashrc и что conda правильно инициализирован (conda init bash).
- Проблема: версия rustc отличается от ожидаемой — проверьте, не перекрывается ли путь к rustc из других установок (rustup, apt). Используйте which rustc для диагностики.
- Проблема: cargo пакеты не видны — проверьте PATH и права доступа в ~/.cargo/bin.
- Проблема: конфликт зависимостей пакетов — используйте отдельные окружения под разные проекты.
Когда Conda не лучшего выбора
- Если нужен максимально свежий Rust и канал обновлений непосредственно от Rust Foundation, рациональнее использовать rustup.
- На системах без Conda или где запрещено устанавливать её (политика безопасности) стоит использовать rustup или Docker-контейнеры.
Альтернативные подходы
- rustup — официальный менеджер версий Rust. Рекомендуется для локальной разработки.
- apt / dnf — может установить устаревшие версии пакетов, поэтому подходит лишь для быстрого теста.
- Docker — изолированное окружение, полезно для CI и воспроизводимых билдов.
Мини-методология для команды
- Выбрать стратегию управления версиями (Conda vs rustup vs Docker).
- Создать документ с конфигурацией окружений и командами установки.
- Автоматизировать создание окружения в CI (если используется Conda — добавить conda env export/import).
- Проводить периодическую проверку обновлений и совместимости зависимостей.
Ролевые чеклисты
Разработчик:
- Создать локальное conda-окружение rustenv.
- Проверить rustc и cargo.
- Добавить ~/.cargo/bin в PATH при необходимости.
Системный администратор:
- Установить Anaconda на серверы, где это разрешено.
- Обеспечить резервирование /root/anaconda3 или соответствующей директории.
- Настроить политики обновлений и доступов.
Короткий аварийный план восстановления
- Если окружение испорчено: экспортируйте список установленных пакетов (conda list –explicit > pkgs.txt), удалите окружение и восстановите по списку.
- Если нарушен PATH, проверьте ~/.bashrc и /etc/profile.d/ на предмет конфликтующих настроек.
Совместимость и заметки по безопасности
- Пакеты из канала conda-forge поддерживаются сообществом; проверьте подписи и SHA при загрузке из внешних источников в критичных средах.
- Для production-систем предпочтительна изоляция (контейнеры) и контроль версий.
Краткое резюме
Conda предоставляет удобную возможность управлять Rust-окружениями рядом с другими языками и инструментами. Для большинства задач разработки это быстрый и воспроизводимый способ изоляции. При необходимости использовать самые свежие фичи Rust или тонко управлять каналами обновлений, рассматривайте rustup.
Список важных команд
apt-get update -y
apt-get install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6 -y
wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh
bash Anaconda3-2021.05-Linux-x86_64.sh
source ~/.bashrc
conda create -c conda-forge -n rustenv rust
conda info --envs
conda activate rustenv
rustc --version
cargo --version
nano ~/.bashrc
# Добавить: export PATH=/root/.cargo/bin:$PATH
source ~/.bashrc
conda deactivate
conda env remove -n rustenvЗавершение
Поздравляем — вы создали Rust-окружение с помощью Conda и научились управлять им, добавлять Cargo в PATH и удалять окружения. Теперь можно безопасно начинать разработку и тестирование Rust-проектов внутри изолированного окружения.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента