Установка
hostsctl — один статический бинарь без внешних зависимостей. Выбери способ, который подходит твоей машине.
Homebrew
Заголовок раздела «Homebrew»brew install jtprogru/tap/hostsctlПокрывает macOS на Apple silicon и Intel, Linux на x86_64 и arm64. Man-страница и
автодополнения ставятся вместе с формулой.
crates.io
Заголовок раздела «crates.io»cargo install hostsctlСобирает из исходников, поэтому нужен Rust-тулчейн не ниже MSRV (см. rust-version в
Cargo.toml). Автодополнения и man при этом не ставятся — сгенерируй сам, если нужны:
hostsctl completions zsh > ~/.zsh/completions/_hostsctlhostsctl man > /usr/local/share/man/man1/hostsctl.1Скрипт установки
Заголовок раздела «Скрипт установки»curl -fsSL https://raw.githubusercontent.com/jtprogru/hostsctl/main/scripts/install.sh | shPOSIX sh, поэтому работает и в alpine-контейнере, где единственный шелл — ash. Скрипт
определяет ОС и архитектуру, берёт musl-сборку при отсутствии glibc-загрузчика, проверяет
архив против checksums.txt релиза до распаковки и ставит бинарь в /usr/local/bin.
# зафиксировать версию и поставить в другое местоcurl -fsSL .../install.sh | sh -s -- --version v0.1.0 --bin-dir ~/.local/binАрхив релиза
Заголовок раздела «Архив релиза»Каждый релиз выкладывает .tar.gz на каждый таргет на
странице релизов:
| Таргет | Для чего |
|---|---|
aarch64-apple-darwin |
macOS, Apple silicon |
x86_64-apple-darwin |
macOS, Intel |
x86_64-unknown-linux-gnu |
Linux, glibc, x86_64 |
aarch64-unknown-linux-gnu |
Linux, glibc, arm64 |
x86_64-unknown-linux-musl |
Alpine и другие musl-системы, x86_64 |
aarch64-unknown-linux-musl |
Alpine и другие musl-системы, arm64 |
В архиве лежат бинарь, completions/, man/, README и лицензия.
Проверка загрузки
Заголовок раздела «Проверка загрузки»Каждый архив перечислен в checksums.txt, подписан keyless-подписью
cosign (.bundle рядом) и снабжён SLSA-аттестацией
провенанса сборки.
# контрольная суммаsha256sum -c checksums.txt --ignore-missing
# подписьcosign verify-blob \ --bundle hostsctl-aarch64-apple-darwin.tar.gz.bundle \ --certificate-identity-regexp 'https://github.com/jtprogru/hostsctl/.*' \ --certificate-oidc-issuer https://token.actions.githubusercontent.com \ hostsctl-aarch64-apple-darwin.tar.gz
# провенансgh attestation verify hostsctl-aarch64-apple-darwin.tar.gz --repo jtprogru/hostsctlИз исходников
Заголовок раздела «Из исходников»git clone https://github.com/jtprogru/hostsctlcd hostsctlmake install # соберёт release и положит в /usr/local/binmake install PREFIX=~/.local поставит в другое место, make uninstall удалит.
Автодополнения
Заголовок раздела «Автодополнения»hostsctl completions bashhostsctl completions zshhostsctl completions fishhostsctl completions elvishhostsctl completions powershellПоложи вывод туда, где твой шелл его ищет — для zsh это каталог из $fpath, а файл должен
называться _hostsctl.