(-aAa-) Linux,预制二进制文件 的 3 种安装方法 (***)

张开发
2026/4/6 22:34:53 15 分钟阅读

分享文章

(-aAa-) Linux,预制二进制文件 的 3 种安装方法 (***)
Just 用户指南 https://just.systems/man/zh/%E9%方法一export PATH$PATH:/path-to-justsource ~/.bashrc方法二自行制作 appimage## 参考指向 AppRun # 在 Shell 搜索可执行文件的路径中添加~/bin # 这一行应该被添加到你的 Shell 初始化文件中e.g. ~/.bashrc 或者 ~/.zshrc export PATH$PATH:$HOME/bin方法三 ​​预制二进制文件​​ ************ https://just.systems/man/zh/%E9%Linux、MacOS 和 Windows 的预制二进制文件可以在 ​​发布页​​ 上找到。你也可以在 Linux、MacOS 或 Windows 上使用下面的命令来下载最新的版本只需将 ​​DEST​​ 替换为你想安装 ​​just​​ 的目录即可curl --proto https --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to DEST例如安装 ​​just​​ 到 ​​~/bin​​ 目录# 创建 ~/bin mkdir -p ~/bin # 下载并解压 just 到 ~/bin/just curl --proto https --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/bin # 在 Shell 搜索可执行文件的路径中添加~/bin # 这一行应该被添加到你的 Shell 初始化文件中e.g. ~/.bashrc 或者 ~/.zshrc export PATH$PATH:$HOME/bin # 现在 just 应该就可以执行了 just --help https://just.systems/install.sh#!/usr/bin/env bash set -eu # Check pipefail support in a subshell, ignore if unsupported # shellcheck disableSC3040 (set -o pipefail 2 /dev/null) set -o pipefail help() { cat EOF Install a binary release of a just hosted on GitHub USAGE: install.sh [options] FLAGS: -h, --help Display this message -f, --force Force overwriting an existing binary OPTIONS: --tag TAG Tag (version) of the crate to install, defaults to latest release --to LOCATION Where to install the binary [default: ~/bin] --target TARGET EOF } cratejust urlhttps://github.com/casey/just releases$url/releases say() { echo install: $* 2 } err() { if [ -n ${td-} ]; then rm -rf $td fi say error: $* exit 1 } need() { if ! command -v $1 /dev/null 21; then err need $1 (command not found) fi } download() { url$1 output$2 args() if [ -n ${GITHUB_TOKENx} ]; then args(--header Authorization: Bearer $GITHUB_TOKEN) fi if command -v curl /dev/null; then curl --proto https --tlsv1.2 -sSfL ${args[]${args[]}} $url -o$output else wget --https-only --secure-protocolTLSv1_2 --quiet ${args[]${args[]}} $url -O$output fi } forcefalse while test $# -gt 0; do case $1 in --force | -f) forcetrue ;; --help | -h) help exit 0 ;; --tag) tag$2 shift ;; --target) target$2 shift ;; --to) dest$2 shift ;; *) say error: unrecognized argument $1. Usage: help exit 1 ;; esac shift done command -v curl /dev/null 21 || command -v wget /dev/null 21 || err need wget or curl (command not found) need mkdir need mktemp if [ -z ${tag-} ]; then need grep need cut fi if [ -z ${target-} ]; then need cut fi if [ -z ${dest-} ]; then dest$HOME/bin fi if [ -z ${tag-} ]; then tag$( download https://api.github.com/repos/casey/just/releases/latest - | grep tag_name | cut -d -f4 ) fi if [ -z ${target-} ]; then # bash compiled with MINGW (e.g. git-bash, used in github windows runners), # unhelpfully includes a version suffix in uname -s output, so handle that. # e.g. MINGW64_NT-10-0.19044 kernel$(uname -s | cut -d- -f1) uname_target$(uname -m)-$kernel case $uname_target in aarch64-Linux) targetaarch64-unknown-linux-musl;; arm64-Darwin) targetaarch64-apple-darwin;; armv6l-Linux) targetarm-unknown-linux-musleabihf;; armv7l-Linux) targetarmv7-unknown-linux-musleabihf;; loongarch64-Linux) targetloongarch64-unknown-linux-musl;; x86_64-Darwin) targetx86_64-apple-darwin;; x86_64-Linux) targetx86_64-unknown-linux-musl;; x86_64-MINGW64_NT) targetx86_64-pc-windows-msvc;; x86_64-Windows_NT) targetx86_64-pc-windows-msvc;; *) # shellcheck disableSC2016 err Could not determine target from output of uname -m-uname -s, please use --target: $uname_target ;; esac fi case $target in x86_64-pc-windows-msvc) extensionzip; need unzip;; *) extensiontar.gz; need tar;; esac archive$releases/download/$tag/$crate-$tag-$target.$extension say Repository: $url say Crate: $crate say Tag: $tag say Target: $target say Destination: $dest say Archive: $archive td$(mktemp -d || mktemp -d -t tmp) if [ $extension zip ]; then download $archive $td/just.zip unzip -d $td $td/just.zip else download $archive - | tar -C $td -xz fi if [ -e $dest/just ] [ $force false ]; then err \$dest/just\ already exists else mkdir -p $dest cp $td/just $dest/just chmod 755 $dest/just fi rm -rf $td

更多文章