少し前に、 Linuxbrewについて書きました 、LinuxおよびMac OS Xの一般的なパッケージマネージャー。Linuxbrewの際立った特徴は、rootまたはsudoなしでパッケージをインストールできることです。 特権。今日、このガイドでは、さらに別の同様のパッケージマネージャーについて説明します。 ニックスに会う 、Linuxおよびその他のUnixバリアント用の純粋に機能的で信頼性の高いパッケージマネージャー。他のパッケージマネージャーとは異なり、同じパッケージの複数のバージョンのサイドバイサイドインストール、アトミックサポートとロールバックサポート、ユーザーごとのパッケージ管理、パッケージ開発環境の簡単なセットアップなどを提供します。 Nixパッケージマネージャーは元々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およびMacOSXで使用できます。
次に、UnixライクなオペレーティングシステムにNixPackageManagerをインストールする方法を説明します。
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 tarball 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-tarball-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
ファイルを保存して閉じます。システムを再起動します。これで、システムにログインした後、毎回上記のコマンドを実行する必要がなくなりました。
次のチュートリアルでは、Nixパッケージマネージャーを使用して、パッケージのインストール、削除、更新、アップグレード、ビルドなどの一般的なパッケージ管理操作を実行する方法について説明します。
- Nixパッケージマネージャーの使用を開始する