📜  asdf 节点指纹 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:39:21.614000             🧑  作者: Mango

asdf 节点指纹 - Shell-Bash

asdf 是一款工具,能够快速方便地管理多个编程语言版本。 在编写跨平台代码时,asdf 可以大大简化开发环境的搭建。

一个节点指纹是 asdf 为安装的每个软件包提供的唯一标识符。它是通过哈希计算生成的,并包括软件包版本和安装路径等信息。使用节点指纹,可以确保安装的软件包是完整的且没有被篡改过。

安装和使用

你可以通过以下命令安装 asdf

git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.0
echo '. $HOME/.asdf/asdf.sh' >> ~/.bashrc
echo '. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc

这将在你的个人目录下 /home/user/.asdf 目录下安装 asdf,并设置 asdf 的 bash 脚本和命令自动补全。

使用 asdf 安装软件包时,asdf 会自动计算并输出节点指纹,例如:

$ asdf plugin add ruby
$ asdf install ruby 2.7.2
$ asdf current ruby
ruby 2.7.2 (set by /home/user/.tool-versions)
$ asdf where ruby
/home/user/.asdf/installs/ruby/2.7.2/bin/ruby
$ asdf fingerprint ruby
dcee094afb6fa94f6c0301ef3d7c39f8da79aa474dedef40e9eec9d7bda6f127
使用节点指纹

节点指纹可以用于验证安装的软件包是否完整且没有被篡改过。

$ asdf fingerprint ruby > ruby.fingerprint
$ cat ruby.fingerprint
dcee094afb6fa94f6c0301ef3d7c39f8da79aa474dedef40e9eec9d7bda6f127
$ asdf plugin add ruby # Simulates a package change
$ asdf fingerprint ruby
33fcea6daaf751e9d1836ea603c6f14ee6fc9342ef610d0406365767402a7161
$ cat ruby.fingerprint | cmp ./ruby.fingerprint || echo "Fingerprint mismatch"
Fingerprint mismatch

上述例子首先保存了 ruby 的标识符到 ruby.fingerprint 文件中。然后, asdf plugin add ruby 模拟了安装了新的软件包,导致其节点指纹不同于之前保存的指纹。 最后,通过比较两个指纹文件来检查指纹是否发生了变化。

结论

asdf节点指纹提供了简单而有效的方法来保护你的软件包免受意外或恶意篡改。 它可以确保你运行的是你所打算的软件包版本,并且可以让你轻松地验证其完整性。