Nix-适用于Linux和Unix的强大软件包管理器
时间:2020-03-21 11:46:26 来源:igfitidea点击:
Linuxbrew的显着特征是我们可以安装没有root或者sudo特权的软件包。
今天,在本教程中,我们将讨论另一个类似的软件包管理器。
认识Nix,这是一个用于Linux和其他Unix变体的纯功能且可靠的软件包管理器。
与其他软件包管理器不同,它提供并排安装同一软件包的多个版本,原子和回滚支持,每用户软件包管理,易于设置的软件包开发环境等等。
Nix软件包管理器最初是为NixOS开发的,NixOS是GNU/Linux发行版,具有独特的软件包和配置管理方法。
NixOS最初是由Eelco Dolstra在2003年作为研究项目启动的。
功能
Nix软件包管理器在功能和特性方面与其他Linux软件包管理器有些不同。
关于这些功能,我们可以列出以下内容:
- 多用户包管理系统。这意味着,系统中的每个用户可以具有不同的已安装软件包集。
- 用户可以在没有root或者sudo用户特权的情况下安装软件包。
- Nix软件包管理器将软件包存储在Nix存储中,通常是目录/nix/store。每个软件包都有其自己的唯一子目录。例如,将gzip软件包连同所有必需的依赖项和库一起存储在唯一目录/nix/store/c5y9w08xkiz6kvnscpjv3205gyr6iybz-gzip-1.8/下。
- 不同的用户可以同时安装同一软件包的不同版本。对于想要测试使用不同版本的程序包和依赖项构建的应用程序的开发人员而言,这是个好选择。
- 由于所有软件包都安装在唯一的目录中,因此一个用户不能干扰(例如删除,更新或者升级软件包)另一用户安装的软件包。另外,升级或者更新程序包不会影响同一程序包的其他版本或者其依赖性。
- 可以将软件包回滚到以前的版本。
- 原子升级支持。这意味着升级软件包时,它不会覆盖现有版本。每个新版本将存储在新的唯一目录下。由于软件包不会被覆盖,因此即使升级后,旧版本仍然可用。
- 可以安全删除未使用的软件包。
- DevOps友好的软件包管理器。如果存储库中尚不可用,Nix可以帮助用户从源构建软件包。因此,Nix对开发人员非常有用,因为它可以轻松自动地为软件包设置构建环境。
- Nix软件包管理器可以在GNU/Linux和Mac OS X中使用。
现在,我们将看到如何在类似Unix的操作系统中安装Nix Package Manager。
在Linux中安装Nix软件包管理器
安装Nix软件包管理器很简单。
要将其安装在Linux机器上,请以普通用户身份运行:
$curl https://nixos.org/nix/install | sh
输出示例:
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2354 100 2354 0 0 833 0 0:00:02 0:00:02 --:--:-- 833 downloading Nix 1.11.9 binary tar包 for x86_64-linux from 'https://nixos.org/releases/nix/nix-1.11.9/nix-1.11.9-x86_64-linux.tar.bz2' to '/tmp/nix-binary-tar包-unpack.SoCHJhv4Vz'... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 27.3M 100 27.3M 0 0 525k 0 0:00:53 0:00:53 --:--:-- 248k performing a single-user installation of Nix... directory /nix does not exist; creating it by running ‘mkdir -m 0755 /nix && chown sk /nix’ using sudo [sudo] password for sk: copying Nix to /nix/store............................... initialising Nix database... creating /home/sk/.nix-profile installing ‘nix-1.11.9’ building path(s) ‘/nix/store/7dv1lghxz40rbvv9ffg7fq2as972a4r7-user-environment’ created 6 symlinks in user environment downloading Nix expressions from ‘https://d3g5gsiof5omrk.cloudfront.net/nixpkgs/nixpkgs-17.09pre108299.ec9a23332f/nixexprs.tar.xz’... downloading ‘https://d3g5gsiof5omrk.cloudfront.net/nixpkgs/nixpkgs-17.09pre108299.ec9a23332f/nixexprs.tar.xz’... [7625/8656 KiB, 403.0 KiB/s] unpacking channels... created 2 symlinks in user environment modifying /home/sk/.bash_profile... Installation finished! To ensure that the necessary environment variables are set, either log in again, or type . /home/sk/.nix-profile/etc/profile.d/nix.sh in your shell.
安装Nix之后,注销并重新登录系统以验证是否正确设置了必要的环境变量。
或者,从终端运行以下命令以确保执行该命令。
$. /home/sk/.nix-profile/etc/profile.d/nix.sh
请注意,开头有一个点(。
)。
如果看不到任何输出,那么就完成了! Nix软件包管理器已成功安装在系统上。
另外,将以上行添加到配置文件PATH中,以避免在每次登录系统后每次都运行上述命令。
为此,请编辑~/.profile或者~/.bashrc(或者类似文件):
$vi ~/.bashrc
在末尾添加以下行。
. /home/sk/.nix-profile/etc/profile.d/nix.sh
保存并关闭文件。
重新启动系统。
现在,我们不必在登录系统后每次都运行上述命令。