Гид по технологиям

Установка Rust на AlmaLinux 8

• 6 min read • Программирование • Обновлено 25 Nov 2025
Установка Rust на AlmaLinux 8
Установка Rust на AlmaLinux 8

Скриншот процесса установки Rust на AlmaLinux или логотип Rust

  • Установите зависимости, выполните официальный скрипт rustup и активируйте окружение. Проверяйте версию через rustc -V. Для теста создайте простой файл hello_world.rs, скомпилируйте rustc и запустите бинарь.
  • В статье приведены пошаговые команды, советы по отладке, контрольные списки для администратора и разработчика, а также метод отката и критерии приёмки.

Кратко о Rust

Rust — это системный язык программирования с тремя ключевыми принципами: безопасность памяти, удобная параллельность и практичность. Инициирован Graydon Hoare в 2010 году и сейчас развивается сообществом как открытый проект. Rust обеспечивает безопасность памяти и конкурентность без сборщика мусора: это достигается системой владения (ownership) и заимствований (borrowing). Типы в Rust статические, но язык использует вывод типов (type inference), чтобы не требовать избыточных объявлений от программиста.

Важно: Rust не использует «уникальный алгоритм сборки мусора». Он добивается автоматического освобождения памяти на этапе компиляции и в рантайме через RAII и ownership; при этом возможны дополнительные библиотеки для управления памятью в особых сценариях.

Преимущества по сравнению с C/C++:

  • Гарантии безопасности памяти на этапе компиляции.
  • Низкоуровневая производительность и отсутствующие «нулевые» накладные расходы (zero-cost abstractions).
  • Современный инструментальный стек: cargo, rustup, crates.io.

Полезная аналогия: представьте, что компилятор Rust — это страж, который на этапе компиляции проверяет, кто и когда может пользоваться данными. Это позволяет избежать многих ошибок времени выполнения.

Что понадобится

  • Сервер или машина с AlmaLinux 8 x86_64.
  • Аккаунт с правами sudo.
  • Доступ в интернет для загрузки скрипта rustup и пакетов.

Обновление системы и установка зависимостей

Важно: перед установкой всегда обновите пакеты системы и добавьте необходимые репозитории.

Выполните:

sudo dnf check-update
sudo dnf update -y
sudo dnf upgrade -y

Установите EPEL и базовые инструменты для сборки:

sudo dnf install epel-release -y
sudo dnf install cmake gcc make curl -y

Примечание: cmake/gcc/make нужны не для самого rustc, а для сборки нативных зависимостей crate’ов. Если вы планируете собирать только чистые Rust-проекты, часть пакетов может быть не обязательна.

Установка Rust (rustup)

Мы будем использовать официальный установщик rustup, который управляет версиями Rust и компонентами (rustc, cargo, rust-std и пр.). Запустите:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Следуйте подсказкам инсталлятора. По умолчанию будет установлена стабильная (stable) ветка Rust и инструменты в ~/.cargo и ~/.rustup.

После установки активируйте окружение:

source ~/.profile
source ~/.cargo/env

Если вы используете другой shell (например, zsh), добавьте содержимое ~/.cargo/env в соответствующий конфигурационный файл (например, ~/.zshrc).

Проверка установки:

rustc -V

Ожидаемый вывод похож на:

rustc 1.XX.0 (commit hash YYYY-MM-DD)

Версия на вашей машине может отличаться — это нормально.

Тестирование установки: простой проект

Создадим тестовый проект в домашней директории.

cd && mkdir rust-example
cd rust-example

Создайте файл hello_world.rs:

sudo nano hello_world.rs

Вставьте код:

fn main() {
    println!("Hello World, Howtoforge");
}

Пояснение к коду (одна строка): fn main() — точка входа, println! — макрос, выводит строку в stdout.

Сохраните файл (Ctrl+X, Y, Enter в nano).

Скомпилируйте и запустите:

rustc hello_world.rs
ls
./hello_world

Вы должны увидеть строку “Hello World, Howtoforge”.

Важно: Для более удобной разработки используйте cargo — менеджер пакетов и сборки в Rust. Пример создания проекта через cargo:

cargo new hello_cargo --bin
cd hello_cargo
cargo run

cargo автоматически сгенерирует структуру проекта, файл Cargo.toml и позволит легко управлять зависимостями.

Частые ошибки и их решение

Важно: приведённый ниже список покрывает типичные проблемы при установке на AlmaLinux 8.

  1. Скрипт rustup не запускается или curl не доступен
  • Проверьте подключение к сети и наличие пакета curl.
  • Альтернатива: скачайте скрипт вручную и запустите локально.
  1. rustc не найден после установки
  • Убедитесь, что ~/.cargo/bin в PATH: echo $PATH | grep ~/.cargo/bin
  • Добавьте строку source ~/.cargo/env в ~/.bashrc или соответствующий файл shell.
  1. Проблемы со сборкой crate’ов с нативными зависимостями
  • Установите дополнительные dev-пакеты: sudo dnf groupinstall “Development Tools” -y и необходимые библиотеки (openssl-devel, zlib-devel и т.д.).
  1. SELinux мешает выполнению
  • Временно переведите SELinux в permissive для теста: sudo setenforce 0
  • Если это помогло — изучите и добавьте нужные политики вместо постоянного отключения SELinux.

Откат, удаление и управление версиями

Удаление rustup и Rust:

rustup self uninstall

Повторная установка с определённой версией:

rustup toolchain install 1.56.1
rustup default 1.56.1

Управление компонентами (например, rustfmt, clippy):

rustup component add rustfmt
rustup component add clippy

Контрольный список перед развёртыванием в прод окружении

Для администратора:

  • Система обновлена (dnf update).
  • Установлены компиляторы и dev-пакеты для нужных crate’ов.
  • Добавлен мониторинг диска/памяти для сборок.
  • Проверены политики SELinux и firewall.

Для разработчика:

  • Проект собирается локально через cargo build –release.
  • Тесты проходят: cargo test.
  • CI настроен на использование rustup toolchain override или официального образа Docker с нужной версией.

Методология установки (мини-процесс)

  1. Подготовка: обновить систему и установить зависимости. 2) Установить rustup и активировать окружение. 3) Проверить rustc и cargo. 4) Создать тестовый проект, собрать и выполнить. 5) Настроить CI/CD и политики безопасности.

Роль разработчика и роль системного администратора — краткие задачи

Разработчик:

  • Настроить Cargo.toml, добавить зависимости, написать unit-тесты.
  • Проверить совместимость версий toolchain с rustup override.
  • Оптимизировать сборку (feature flags, LTO, strip).

Администратор:

  • Обеспечить наличие компиляторов и системных библиотек.
  • Настроить пользователям доступ к rustup и PATH.
  • Контролировать обновления через rustup и политику изменения toolchain.

Таблица сравнения: Rust vs C/C++ (кратко)

  • Безопасность памяти: Rust — проверяется компилятором; C/C++ — ответственность программиста.
  • Сборщик мусора: Rust — нет; C++ — нет; Java/C# — есть.
  • Инструменты управления пакетами: Rust (cargo) — встроен; C++ — набор инструментов/менеджеров.
  • Накладные расходы: Rust и C++ — низкие при корректной оптимизации.

Критерии приёмки

  • rustc -V возвращает ожидаемую версию.
  • cargo build –release успешно собирает проект.
  • Автоматические тесты (cargo test) проходят без ошибок.
  • Приложение запускается в целевой среде и выполняет ключевые сценарии.

Тесты и примеры приёмки

  1. Установка: rustup установлен, ~/.cargo/bin присутствует в PATH.
  2. Сборка: cargo build –release завершается без ошибок.
  3. Исполнение: бинарный файл работает, нагрузочные базовые тесты проходят.

Пример runbook при ошибке сборки native-зависимостей

  1. Чтение логов сборки: cargo build -vv
  2. Установка недостающих -devel пакетов (openssl-devel, libffi-devel и т.д.).
  3. Перезапуск сборки.
  4. Если проблема в SELinux — проверить журнал audit.log.
  5. В крайнем случае — собрать в контейнере с нужными пакетами.

Безопасность и приватность

  • rustup устанавливается в домашнюю директорию пользователя по умолчанию. Для системной установки рассмотрите управляемые образы или использование контейнеров.
  • Не выполняйте скрипты из интернета без проверки в организациях с высокими требованиями безопасности; при необходимости скачайте скрипт и проверьте содержимое перед запуском.

Полезные команды и «cheat sheet»

# Установка/удаление
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup self uninstall

# Управление toolchain
rustup toolchain install stable
rustup default stable
rustup update

# Команды разработчика
cargo new project_name --bin
cargo build
cargo build --release
cargo run
cargo test
cargo fmt
cargo clippy

# Компоненты
rustup component add rustfmt
rustup component add clippy

Термины в одну строку

  • rustup: менеджер версий Rust и компонентов;
  • cargo: инструмент сборки и менеджер пакетов;
  • crate: библиотека или пакет в экосистеме Rust;
  • ownership: модель владения памятью в Rust;
  • borrow: механизм безопасного временного доступа к данным.

Mermaid: решение о способе установки

flowchart TD
    A[Начать установка на AlmaLinux 8] --> B{Есть доступ в интернет?}
    B -- Да --> C{Нужен системный или пользовательский Rust?}
    B -- Нет --> Z[Скачать скрипт на другой машине и перенести]
    C -- Пользовательский --> D[Запустить rustup в профиле пользователя]
    C -- Системный --> E[Рассмотреть контейнеры/шаблоны образов или централизованную установку]
    D --> F[Активировать ~/.cargo/env и проверить rustc]
    E --> F
    F --> G[Создать тестовый проект и запустить cargo run]
    G --> H[Готово]

Локальные рекомендации и подводные камни для региона/окружения

  • Для серверов с ограниченным интернетом скачивайте необходимые исходники и кешируйте пакеты в локальном репозитории.
  • Если вы используете корпоративный прокси — настройте curl/https_proxy перед запуском инсталлятора.
  • Для AlmaLinux 8 внимательно следите за EPEL и совместимостью версий dev-пакетов.

Заключение

В этой статье мы последовательно установили Rust на AlmaLinux 8: от обновления системы и установки зависимостей до загрузки rustup, активации окружения и создания тестового приложения. Добавлены практические советы по отладке, контрольные списки для ролей и метод отката. Если вы столкнётесь с проблемами — проверьте PATH, dev-пакеты и SELinux, а также рассмотрите использование контейнеров для воспроизводимой сборки.

Спасибо за чтение. Оставьте комментарий, если нужна помощь с конкретной ошибкой или конфигурацией.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро