Это подробное руководство содержит краткое введение в язык программирования Rust, а также четкие инструкции по установке Rust с помощью rustup
в Linux. В нем также рассказывается об обновлении Rust, создании и запуске примера программы на Rust и, наконец, об удалении Rust из системы Linux.
Введение в язык программирования Rust
Rust, также известный как rust-lang, – это современный, быстрый, кроссплатформенный язык системного программирования с открытым исходным кодом, призванный заменить C, предлагая при этом высокоуровневые абстракции, привлекательные для разработчиков, знакомых с C# и Java.
Rust обладает множеством возможностей, включая:
- Незатратные абстракции: Абстракции Rust не несут накладных расходов во время выполнения, обеспечивая производительность, сравнимую с нативным кодом.
- Семантика перемещений: Модель владения в Rust использует семантику перемещения для эффективной передачи прав собственности на данные между переменными, что устраняет необходимость в ручном управлении памятью.
- Гарантированная безопасность памяти: Сильная система типов и модель владения в Rust обеспечивают безопасность памяти, предотвращая такие связанные с памятью ошибки, как висячие указатели и утечки памяти.
- Потоки без гонок данных: Система типов и модель владения в Rust также обеспечивают безопасность потоков, предотвращая гонки данных и обеспечивая согласованный доступ к памяти в разных потоках.
- Обобщения на основе признаков: Возможности родового программирования в Rust основаны на трейтах, что позволяет создавать гибкий и многократно используемый код, работающий с различными типами данных.
- Сопоставление шаблонов: Синтаксис сопоставления шаблонов в Rust позволяет создавать лаконичный и выразительный код, особенно при работе со структурами данных, такими как перечисления и кортежи.
- Вывод типа: Система вывода типов в Rust автоматически определяет типы переменных и выражений, уменьшая необходимость в явном объявлении типов.
- Минимальное время выполнения: Минимальное время выполнения Rust устраняет накладные расходы на сборку мусора, что еще больше повышает его производительность.
- Эффективные привязки к C: Rust легко интегрируется с кодом на языке C, обеспечивая взаимодействие с существующими библиотеками на языке C.
Rust активно используется в производстве такими известными организациями, как Canonical, Chef, Coursera, CoreOS, Dropbox Mozilla и NPM.
Установка языка программирования Rust в Linux
Язык Rust может быть установлен несколькими различными способами. Официально рекомендуемый способ установки Rust – использование Rustup, официальной программы установки инструментальной цепочки Rust.
Установка Rust с помощью rustup довольно проста. Достаточно открыть Терминал и выполнить следующую команду:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
или
curl https://sh.rustup.rs -sSf | sh
Наберите 1 (цифра один), чтобы продолжить установку со значениями по умолчанию. Или введите 2, чтобы настроить установку. Я использую значения по умолчанию, поэтому набрал 1.
Пример вывода:
info: downloading installer Welcome to Rust! This will download and install the official compiler for the Rust programming language, and its package manager, Cargo. Rustup metadata and toolchains will be installed into the Rustup home directory, located at: /home/ostechnix/.rustup This can be modified with the RUSTUP_HOME environment variable. The Cargo home directory is located at: /home/ostechnix/.cargo This can be modified with the CARGO_HOME environment variable. The cargo, rustc, rustup and other commands will be added to Cargo's bin directory, located at: /home/ostechnix/.cargo/bin This path will then be added to your PATH environment variable by modifying the profile files located at: /home/ostechnix/.profile /home/ostechnix/.bashrc You can uninstall at any time with rustup self uninstall and these changes will be reverted. Current installation options: default host triple: x86_64-unknown-linux-gnu default toolchain: stable (default) profile: default modify PATH variable: yes 1) Proceed with installation (default) 2) Customize installation 3) Cancel installation >1 info: profile set to 'default' info: default host triple is x86_64-unknown-linux-gnu info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu' info: latest update on 2023-11-16, rust version 1.74.0 (79e9716c9 2023-11-13) info: downloading component 'cargo' 8.2 MiB / 8.2 MiB (100 %) 3.8 MiB/s in 2s ETA: 0s info: downloading component 'clippy' [...] 58.7 MiB / 58.7 MiB (100 %) 16.1 MiB/s in 4s ETA: 0s info: installing component 'rustfmt' info: default toolchain set to 'stable-x86_64-unknown-linux-gnu' stable-x86_64-unknown-linux-gnu installed - rustc 1.74.0 (79e9716c9 2023-11-13) Rust is installed now. Great! To get started you may need to restart your current shell. This would reload your PATH environment variable to include Cargo's bin directory ($HOME/.cargo/bin). To configure your current shell, run: source "$HOME/.cargo/env"
Как видно из приведенного выше вывода, сценарий установки rustup загружает и устанавливает официальный компилятор для языка программирования Rust, а также менеджер пакетов Cargo. Он также добавляет команды cargo
, rustc
, rustup
и другие в каталог bin, расположенный по адресу ~/.cargo/bin
. Кроме того, скрипт изменяет файл профиля, расположенный по адресу ~/.profile
, чтобы добавить каталог bin программы Cargo в переменную окружения PATH.
Наконец, выполните следующую команду для настройки текущей оболочки:
source $HOME/.cargo/env
Чтобы проверить установленную версию, выполните:
rustc --version rustc 1.74.0 (79e9716c9 2023-11-13)
Мы только что установили последнюю версию Rust. Давайте проверим, работает ли она, создав пример программы на Rust.
Создание примера программы на Rust
Сделайте основной каталог проекта, в который будет помещен весь ваш код на Rust. Этот каталог является родительским для всех наших программ на языке Rust.
Например, я собираюсь создать основной каталог проекта с именем my_rust_projects
в моей $HOME
директории.
mkdir ~/my_rust_projects
Перейдите в эту директорию:
cd ~/my_rust_projects
Следующее создание бинарного пакета „hello_world“ с помощью Cargo, как показано ниже.
cargo new hello_world
Приведенная выше команда создаст новый каталог с именем «hello_world» со всеми необходимыми файлами в нем.
Зайдите в этот каталог:
cd hello_world
И наконец, запустите программу hello_world с помощью команды:
cargo run
Эта команда компилирует и запускает вашу программу. В терминале должно появиться сообщение «Hello, world!».
- Пример вывода:*
Compiling hello_world v0.1.0 (/home/ostechnix/my_rust_projects/hello_world) Finished dev [unoptimized + debuginfo] target(s) in 0.14s Running `target/debug/hello_world` Hello, world!
Это рекомендуемый способ использования Cargo.
В качестве альтернативы можно вручную создать каталог проекта, записать код в текстовый файл и, наконец, скомпилировать и запустить его, как показано ниже.
Создадим каталог проекта:
mkdir hello_world
Код в этом каталоге:
cd hello_world
Напишите свою первую программу на языке Rust, используя любые текстовые или графические редакторы Файлы rust всегда заканчиваются расширением .rs.
Чтобы написать пример программы rust, например ostechnix.rs
, сделайте:
vi ostechnix.rs
Копируйте и вставьте в него следующий код.
fn main() { println!("Hello, Welcome To OSTechNix blog!"); }
Нажмите клавишу ESC и введите :wq
для сохранения и выхода из файла.
Далее выполните следующую команду для компиляции rust-кода.
rustc ostechnix.rs
Вышеприведенная команда создаст исполняемую rust-программу с именем ostechnix
в текущем каталоге.
ls ostechnix ostechnix.rs
Запустите программу Rust командой:
./ostechnix Hello, Welcome To OSTechNix blog!
It’s working!!
Устранение неполадок в Rust
Иногда при компиляции программ с помощью Cargo можно получить сообщение «error: linker cc
not found «. Чтобы исправить это, установите компилятор языка Си, например GCC, как описано в следующей ссылке.
Включить завершение Tab
Rustup поддерживает завершение tab для популярных оболочек, таких как Bash, Fish, Zsh и Powershell.
Чтобы включить завершение Tab для Bash, выполните следующие действия:
mkdir -p ~/.local/share/bash-completion/completions
rustup completions bash >>~/.local/share/bash-completion/completions/rustup
На Fish:
mkdir -p ~/.config/fish/completions
rustup completions fish >~/.config/fish/completions/rustup.fish
На Zsh:
mkdir ~/.zfunc
Затем добавьте следующие строки в файл „.zshrc» непосредственно перед „compinit“:
fpath+=~/.zfunc
Теперь можно установить скрипт завершения с помощью следующей команды:
rustup completions zsh >~/.zfunc/_rustup
После включения функции завершения tab необходимо выйти из системы и снова войти в сеанс оболочки, чтобы изменения вступили в силу.
Обновление Rust
Чтобы обновить rust при выходе новой версии, выполните:
rustup update info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu' info: latest update on 2018-03-29, rust version 1.25.0 (84203cac6 2018-03-25) info: downloading component 'rustc' info: downloading component 'rust-std' info: downloading component 'cargo' info: downloading component 'rust-docs' info: removing component 'rustc' info: removing component 'rust-std' info: removing component 'cargo' info: removing component 'rust-docs' info: installing component 'rustc' info: installing component 'rust-std' info: installing component 'cargo' info: installing component 'rust-docs' info: checking for self-updates stable-x86_64-unknown-linux-gnu updated - rustc 1.25.0 (84203cac6 2018-03-25)
Эта команда также проверяет наличие обновлений для rustup и автоматически устанавливает последнюю версию.
Если вы хотите вручную проверить наличие обновлений и установить последнюю версию rustup без обновления установленных цепочек инструментов, введите:
rustup self update
Деинсталляция Rust
Вы можете удалить язык Rust в любое время с помощью команды:
rustup self uninstall
Эта команда удалит Rust из вашей системы, и все вышеуказанные изменения будут возвращены.
Thanks for hacking in Rust! This will uninstall all Rust toolchains and data, and remove $HOME/.cargo/bin from your PATH environment variable. Continue? (y/N) y info: removing rustup home info: removing cargo home info: removing rustup binaries info: rustup is uninstalled
И наконец, удалите родительский каталог вашего проекта Rust.
rm -fr ~/my_rust_projects
Заключение
Ну вот, на этом все. Теперь вы знаете, как установить Rust с помощью rustup, как обновить его, создать и запустить пример rust-программы и, наконец, как удалить Rust из вашей системы. Надеюсь, это было полезно.
Комментарии (0)