ホームページ > システムチュートリアル > Linux > NIXパッケージマネージャーを始めましょう:初心者のガイド2024

NIXパッケージマネージャーを始めましょう:初心者のガイド2024

Joseph Gordon-Levitt
リリース: 2025-03-19 09:06:21
オリジナル
322 人が閲覧しました

この詳細なチュートリアルでは、LinuxのNIXパッケージマネージャーを使用してパッケージのインストール、削除、更新、アップグレードなど、パッケージ管理操作を行う方法について説明します。

このガイドを簡単に紹介して、一般的に使用されているnixコマンドを例で開始します。

目次

NIXパッケージマネージャーへの簡単な紹介

Nixは、LinuxおよびUNIXシステムにソフトウェアを簡単かつ信頼できるインストールと管理を行うパッケージマネージャーです。ソフトウェアの競合などの一般的な問題を解決し、すべてのソフトウェアインストールが予測可能かつ安全であることを確認します。

Nixを使用すると、コンピューターに互いに干渉することなく、コンピューター上にプログラムのさまざまなバージョンを使用できます。これは、何かを壊すことを心配することなく、ソフトウェアを更新、追加、または削除できることを意味します。

Nixは、ソフトウェアの処理方法について賢いです。各プログラムが実行する必要があるすべてのビットとピースを追跡します。このようにして、プログラムをインストールすると、別のプログラムが台無しになりません。新しいソフトウェアアップデートで何か問題が発生した場合、Nixは、以前の状況に戻ることができます。

NIXパッケージマネージャーは、個々のユーザーだけでなく、開発者やサーバーを管理する人にとっても優れています。同じソフトウェアのセットアップをすべて使用することを確認することにより、全員を同じページに留めることができます。これにより、ソフトウェアをあるコンピューターから別のコンピューターに移動すると、驚きが軽減されます。

Nixには、選択できるソフトウェアの大きなコレクションがあり、すべてユーザーのコミュニティによって維持されています。これは、一人で仕事をしているかチームで働いているかにかかわらず、ソフトウェアを管理するための確かな選択肢です。

NIXの詳細については、以前のガイドを参照してください。

  • Nix - LinuxとUnixの強力なパッケージマネージャー

NIXパッケージマネージャーを始めます

Nixパッケージマネージャーをインストールしていることを確認してください。 Nixをまだインストールしていない場合は、以下のNIXインストールガイドを参照してください。

  • LinuxにNIXパッケージマネージャーをインストールする方法

Nixパッケージマネージャーがセットアップされると、すぐにアプリケーションをインストールして管理するために使用します。

Nixには多くのコマンドがあります。パッケージ管理の主なコマンドはnix-envです。このコマンドは、リスト、インストール、更新、ロールバック、削除、クエリパッケージに使用されます。例があるいくつかのコマンドを見てみましょう。

ヒント:場合によっては、まだ気づいていない場合は、NIXを使用してすべてのパッケージ管理操作を行うために、ルートユーザーまたはSUDOユーザーである必要はありません。

NIXチャネルを使用します

NIXチャネルは、 NIXパッケージマネージャーのエコシステムで重要な役割を果たします。

NIXPKGSリポジトリには、すべてのパッケージ、NIXOSモジュール、および式が含まれています。 NIXPKGSのマスターブランチからパッケージを直接インストールすることは可能ですが、徹底的なテストの前にコミットがマスターに統合されるため、このアプローチは危険にさらされる可能性があります。

チャネルは、NIXPKGSの最新の「検証済み」 Gitコミットを表します。各チャネルには、「検証」が意味するものの独自の定義があります。

新しいgitコミットが検証されると、対応するチャネルが更新されます。チャネルユーザーは、バイナリキャッシュからの検証済みのコミットとバイナリパッケージの両方から恩恵を受けます。

これを簡単な言葉で言えば、 nixチャネルは、nix式のセットとマニフェストを含む場所を指すURLにすぎません。

チャネルの種類

いくつかのチャネルがあり、それらは大小のチャネルだけでなく、安定した不安定なチャネルに広く分類できます。

安定/不安定

  • 安定したチャネル:これらは、バグの修正とセキュリティの脆弱性の保守的な更新を提供します。主要な更新は、最初のリリース後に導入されていません。新しい安定したチャネルは、6か月ごとにリリースされます。
  • 不安定なチャネル:NIXPKGSのメイン開発ブランチ(不安定な)に対応して、これらはローリングベースで最新のテストされたアップデートを提供します。

大/小さい

  • 大規模なチャネル:これらは、NIXPKGSの完全な幅のバイナリビルドを提供します。
  • 小さなチャネル:大きなチャネルに似ていますが、バイナリが少ない。彼らはより速く更新しますが、ソースからより多くの建物が必要です。

デフォルトチャネル

デフォルトでは、NIXをインストールすると、 NIXPKGSチャネルが「サブスクライブ」チャネルのリストに自動的に追加されます。

購読されたチャネルを表示します

購読されたチャネルのリストは、〜/.nix-Channelsファイルに保存されます。その内容を調べて確認できます。

 $ cat〜/.nix-channels
https://nixos.org/channels/nixpkgs-unstable <strong>nixpkgs</strong>
ログイン後にコピー

ご覧のとおり、NixはデフォルトでNIXPKGSチャネルを追加しました。

チャネルを追加します

以下に示すように、システムにチャネルを手動で追加することもできます。

 $ nix-channel -add https://nixos.org/channels/nixos-23.11
ログイン後にコピー

公式チャネルはhttps://nixos.org/channelsにリストされています。

チャネルを更新します

チャネルを購読(追加)した後、チャンネルリストを更新して、コマンドを使用して最新の利用可能なnix式を取得する必要があります。

 $ nix-channel-update
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

このコマンドはすべてのチャネルを更新します。特定のチャネルを更新したい場合は、Nixos-23.11たとえば、コマンドは次のとおりです。

 $ nix-channel -update nixos-23.11
ログイン後にコピー

チャネルをリストします

標準出力にサブスクライブされたすべてのチャネルの名前とURLを印刷するには、実行します。

 $ nix-channel  - リスト
ログイン後にコピー

サンプル出力

 <strong>nixpkgs</strong> https://nixos.org/channels/nixpkgs-unstable
<strong>nixos</strong> https://nixos.org/channels/nixos-23.11
ログイン後にコピー

ご存知のように、今では2つのチャネル、つまりNixpkgs-Unstablenixos-23.11を追加しました。 NIXPKGSとNIXOSは、NIXPKGS-UNSTABLEおよびNIXOS-23.11のエイリアスにすぎないことに注意してください。

チャネルを削除します

サブスクライブされたチャネル、たとえばNixos-23.11などを削除するには、実行するだけです。

 $ nix-channel-remove nixos-23.11
ログイン後にコピー

チャネルを削除した後、コマンドを使用してチャネルリストを更新します。

 $ nix-channel-update
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

検索/クエリパッケージ

NIX-ENV -Queryコマンドは、NIXパッケージマネージャーのパッケージに関する情報を提供します。

目的

nix-env-query操作には、どちらの情報が表示されますか。

  • アクティブプロファイルの現在の世代にインストールされているパスを保存します( - インストール)。
  • アクティブなnix式にインストールするために利用可能な派生( - 利用可能)。

象徴的な名前が指定された名前の1つと一致する派生物に関する情報のみを印刷します。

フラグとオプション

nix-env-queryコマンドを使用できる一般的なフラグとオプションは次のとおりです。

  • - インストール:インストールされているストアパスに関する情報を表示します(デフォルトの動作)。
  • -availableまたは-a:インストールに利用できる派生に関する情報を示します。
  • -statusまたは-s:派生のステータスを印刷します(インストールされ、システムに存在し、代用可能)。
  • -ATTR-PATHまたは-P:派生の属性パスを印刷します(明確な選択に使用)。
  • -NO-NAME :派生名の印刷を抑制します。
  • -compare-versionsまたは-c:インストールされたバージョンを使用可能なバージョンと比較します。
  • -XML :プリントは、自動処理のためにXML形式で結果を出します。
  • -JSON :プリントは、自動処理用のJSON形式で結果を出します。
  • -PREBUILTのみのみまたは-B:登録された代替物(事前に構築されたバイナリ)を使用した派生のみを示します。
  • - システム:システム全体のプロファイルで動作します。
  • -DRV-PATH--out-Path- description- Meta :追加情報フラグ。

購読されたチャネルで利用可能なパッケージのリストを表示するには、実行します。

 $ nix-env-query-利用可能
ログイン後にコピー

またはまもなく:

 $ nix -env -qa
ログイン後にコピー

ここで、オプション-Qはクエリ操作を示し、-aはすべての利用可能な(つまり、インストール可能な)パッケージを示します。

サンプル出力

 0AD-0.0.26
0AD-DATA-0.0.26
0verkill-Unstable-2011-01-13
0x-Unstable-2022-07-11
0xProto-1.603
0xtools-1.2.4
1oom-1.0
1PassWord-8.10.27
1password-8.10.28-21.beta
1password-cli-2.26.1
2048-CLI-UNSTABLE-2019-12-10
2048-CLI-UNSTABLE-2019-12-10
2048-in-Terminal-Unstable-2022-06-13
20kly-1.5.0
2BWM-0.3
2FA-1.2.0
3270FONT-3.0.1
389-ds-base-2.4.3
3dpong-0.5
3llo-1.3.1
3mux-1.1.0
3Proxy-0.9.4
4th-3.64.1
[...]
ログイン後にコピー

NIXパッケージマネージャーを始めましょう:初心者のガイド2024

特定のパッケージを照会したい場合、コマンドは次のとおりです。

 $ nix -env -qa firefox
ログイン後にコピー

出力:

 Firefox-115.9.1ESR
Firefox-124.0.1
Firefox-124.0.1
Firefox-124.0.1
Firefox-125.0b3
Firefox-125.0b3
ログイン後にコピー

次のコマンドを使用して、特定のパッケージを検索することもできます。

 $ nix -env -qap | Grep Python3-3
ログイン後にコピー

サンプル出力:

 [...]
nixpkgs.python312 python3-3.12.2
nixpkgs.python313 python3-3.13.0a5
nixpkgs.python313full python3-3.13.0a5
nixpkgs.python39 python3-3.9.19
nixpkgs.python39full python3-3.9.19
ログイン後にコピー

正規表現を使用したクエリパッケージ

正規表現を使用してパッケージをクエリ/リストすることができます。正規表現の例をいくつか紹介します。

クロム

パッケージ名Chromiumと任意のバージョンに一致します。

クロム-123.0.6312.86

パッケージ名クロムとバージョン123.0.6312.86に一致します。

例:

 $ nix-env -qa chrom-123.0.6312.86
ログイン後にコピー

gtk \\

パッケージ名GTKに一致します。キャラクターは、バックスラッシュを使用して量量ファイアとして解釈されるのを防ぐためにバックスラッシュを使用して逃げなければなりません。また、バックスラッシュは、シェルがそれを渡すことを確認するために、別のバックスラッシュで順番に逃げなければなりません。

。\*

任意のパッケージ名と一致します。これは、ほとんどのコマンドのデフォルトです。

'。*ジップ。*'

文字列zipを含むパッケージ名と一致します。ドットに注意してください: '*zip*'は機能しません。なぜなら、正規表現では、文字*は量子として解釈されるためです。

'。*(Firefox | Chromium)。*'

Strings FirefoxまたはChromiumを含むパッケージ名と一致します。

インストールされたパッケージをリストします

インストールされているすべてのパッケージをリストするには、単純に実行します。

 $ nix -env -q
ログイン後にコピー

サンプル出力

 NIX-2.21.1
ログイン後にコピー

新鮮なシステムであるため、システムにはNIXパッケージマネージャーのみが表示されます。

利用可能なパッケージのステータスを確認することもできます。以下の例を見てください。

 $ nix -env -qas gcc
ログイン後にコピー

サンプル出力

 IPS GCC-13.2.0
ログイン後にコピー

ここで、「i」は指定されたパッケージがインストールされていることを示し、「P」はパッケージがシステムに存在することを示し、「S」は、パッケージのいわゆる代替品があるかどうかを示します。

GCCパッケージがインストールされていない場合、次のように表示されます。

 -PS GCC-13.2.0
ログイン後にコピー

パッケージのインストール

Nixosでは、すべてのパッケージがNixストア、通常はディレクトリ/nix /ストアに保存されます。

パッケージをインストールするには、実行するだけです。

 $ nix-env-Install gcc
ログイン後にコピー

または(まもなく)、

 $ nix -env -i gcc
ログイン後にコピー

上記のコマンドは、最新の利用可能なGCCパッケージをインストールします。

上記のコマンドのサンプル出力は次のとおりです。

 「GCC-13.2.0」のインストール
これらの3つのパスがフェッチされます(1.58 MIBのダウンロード、7.24 MIBが解除されました):
  /nix/store/3cfxjb2nkjkfiv0dq54kfy5ysjnfs3k-gcc-13.2.0-checksum
  /nix/store/4i3ml2pzzgjwas18w31zzhn9f41qyshy-gcc-13.2.0-info
  /nix/store/smq6f1jz9a5l6l5yjis4s85mq01xww33-gcc-13.2.0-man
パスのコピー '/nix/store/4i3ml2pzzgjwas18w31zzhn9f41qyshy-gcc-13.2.0-info' from 'https://cache.nixos.org' ...
パス '/nix/store/smq6f1jz9a5l6l5yjis4s85mq01xww33-gcc-13.2.0-man' from 'https://cache.nixos.org' ...
パス '/nix/store/3cfxjb2nkjkfiv0dq54kfy5ysjnfs3k-gcc-13.2.0-checksum' from 'https://cache.nixos.org' ...
建物 '/nix/store/xx629d9kbbdnnsyf4ihzhlmalfz6nm3g-user- environment.drv' ...
ログイン後にコピー

GCCがインストールされているかどうかを確認しましょう。

 $ gcc -v
ログイン後にコピー

サンプル出力:

組み込みスペックを使用します。
collect_gcc = gcc
collect_lto_wrapper =<strong><mark> /nix/store/rqga421d43q40blrrgmiw820p01a4nba-gcc-13.2.0</mark> /libexec/gcc/x86_64-unknown-linux-gnu/13.2.0/lto-wrapper
ターゲット:x86_64-unknown-linux-gnu
構成:../GCC-13.2.0/CONFIGURE ---prefix =/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee --with-gmp-lib=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gmp-6.3.0/lib --with-mpfr-include=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mpfr-4.2.1-dev/include --with-mpfr-lib=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mpfr-4.2.1/lib --with-mpc=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libmpc-1.3.1 --with-native-system-header-dir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.38-44-dev/include --with-build-sysroot=/ --with-gxx-include-dir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gcc-13.2.0/include/c /13.2.0/ -program-prefix = -Enable-lto  -  disable-libstdcxx-pch  -  without-included-getText-- with-system-zlib  - 有利な静的 - 有利なlanguages = c、c  -  disable-multilib -disable-plugin  -  disable-libcc11 --with-isl=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-isl-0.20 --disable-bootstrap --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu
スレッドモデル:POSIX
サポートされているLTO圧縮アルゴリズム:Zlib
<strong>GCCバージョン13.2.0(GCC)</strong></strong>
ログイン後にコピー

上記の出力で気づいたように、GCCはRQGA421D43Q40BLRRGMIW820P01A4NBA-GCC-13.2.0 UNDER /NIX /STOREという名前のサブディレクトリにあります。

ここでは、ディレクトリRQGA421D43Q40BLRRGMIW820P01A4NBA-GCC-13.2.0を一意の識別子と呼びます。このサブディレクトリには、GCCパッケージのすべての必要な依存関係とライブラリが保持されます。

GCCの別のバージョンをインストールすると、NIXは新しいサブディレクトリ、たとえば/nix/store/ rfhfyuq .......43d8jfuh-gcc-xxxを作成し、そのディレクトリにGCCをインストールします。このようにして、これらの2つのバージョンのGCCは互いに競合しません。

nixを使用してインストールせずにパッケージをテストします

NIXパッケージマネージャーのもう1つの注目すべき機能は、システムにインストールせずにパッケージをテストできることです。次のガイドを参照して、パッケージをインストールせずにテストする方法を知ってください。

  • Linuxにインストールせずにパッケージをテストする方法

Nix-Shellを使用して開発環境を作成します

Nix-Shellを使用すると、各プロジェクトにカスタマイズされた開発環境を作成でき、必要なすべてのツールとライブラリを備えています。 NIXパッケージマネージャーの一部です。

再現可能で孤立した開発環境を作成する方法を学ぶには、次のガイドを参照してください。

  • LinuxのNix-Shellを使用して開発環境を作成する方法

パッケージのアップグレード

パッケージを次の利用可能なバージョンにアップグレードするには、実行するだけです。

 $ nix-env-Upgrade Vim
ログイン後にコピー

または、ただ:

 $ nix -env -u vim
ログイン後にコピー

上記のコマンドは、「新しい」バージョンがある場合にのみVIMパッケージをアップグレードします。

また、次のコマンドを実行することにより、インストールされたすべてのパッケージを一度にアップグレードできます。

 $ nix -env -u
ログイン後にコピー

Nixosを更新します

次の手順は、NIXOSユーザー向けであることに注意してください。

Nixosチャネルを更新します

まず、チャンネルを更新して、最新のパッケージ定義があることを確認します。次のコマンドでこれを行うことができます。

 $ nix-channel-update
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

このコマンドは、システムのパッケージと構成の定義を含むNixosチャネルを含む、購読しているすべてのチャネルを更新します。

更新を適用します

チャネルが更新されたら、システムに更新を適用します。これは、チャネルからの最新のパッケージを使用してシステム構成を再構築することによって行われます。そうするために、実行してください:

 $ sudo nixos-rebuildスイッチ
ログイン後にコピー

Nixos-Rebuild Switchコマンドは、チャネルの最新パッケージを使用して、構成ファイル(/etc/nixos/configuration.nix)に基づいてシステムの構成を再構築します。再構築後、すぐに新しい構成に切り替わります。

追加のヒント:

  • 利用可能な更新を確認する:他のいくつかのLinuxディストリビューションのような利用可能な更新をチェックするための直接的なNIXOSコマンドはありません。ただし、更新はチャネルコンテンツに基づいているため、Sudo Nix-Channel-Updateを実行すると、最新の定義が確保されます。
  • 特定のパッケージのアップグレード:NIX-ENVが管理する特定のパッケージをアップグレードする場合は、NIX-ENV -U またはNIX-ENV -U '*'を使用して、すべてのユーザーインストールされたパッケージを更新できます。

NIXOSの更新は、宣言的な構成とNIXの再現性のおかげで、一般的にスムーズで十分にテストされていることを忘れないでください。シームレスな更新エクスペリエンスのために、システム構成ファイルが最新およびバージョン制御されていることを確認してください。

ロールバックパッケージ

これは、NIXパッケージマネージャーの素晴らしい機能です。ロールバックパッケージを確認する前に、プロファイル、ユーザー環境、世代を理解してください。

NIXでは、プロファイル、ユーザー環境、および世代は、安全で再現可能な方法でパッケージと構成を管理できるようにする関連概念です。

プロファイル

プロファイルは、特定の目的またはユーザーのためのパッケージと構成のコレクションです。プロファイルにより、複数のユーザーが互いに影響を与えることなくカスタマイズされたセットアップを持つことができます。さまざまなプロファイルを切り替えて、さまざまな環境またはアプリケーションのセットを効果的に管理できます。

プロファイルには2つの主要なタイプがあります。

  • ユーザープロファイル:各ユーザーアカウントには、/nix/var/nix/profiles/per-user/$ユーザーにある独自のプロファイルがあります。このプロファイルには、ユーザーが個人使用のためにインストールしたパッケージが含まれています。
  • システムプロファイル:システム全体のプロファイルは、/nix/var/nix/profiles/systemにあります。通常、システム管理者によって管理されるシステム上でグローバルに利用可能なパッケージが含まれています。

ユーザー環境

ユーザー環境は、特定のパッケージのセットであり、nixストアにインストールされている依存関係(/nix/store/3aw2pdyx2jfc...-user-env)です。

NIX-ENVを使用してパッケージをインストール、アップグレード、または削除するたびに作成されます。ユーザー環境は、基本的にパッケージ自体であり、nixストアにディレクトリ名として一意の暗号化ハッシュを備えた保存されています。

ユーザー環境は、Symlinksを介してユーザープロファイルにリンクされており、異なるユーザーが干渉なしに異なる構成を持つことができます。

世代

世代は、特定の時点でユーザー環境(インストールしたパッケージのセット)のスナップショットです。 NIX-ENVを使用してインストール、アップグレード、または削除するたびに、新しい世代が作成されます。

各世代は、/nix/Storeディレクトリに一意の暗号化ハッシュ名(eg /nix/store/3aw2pdyx2jfc...-user-env)を備えた保存されます。これらのジェネレーションディレクトリをポイントするSymlinks in/nix/var/nix/プロファイル(default-2-link、default-3-linkなど)があります。

世代の重要な利点は、nix-env(ロールバックやnix-env)などのコマンドを使用して、異なるパッケージ構成を簡単にロールバックまたは切り替えることができることです。

これを簡単な言葉で言うには:

  • プロファイルは、ユーザーまたはシステム用のパッケージと構成のコレクションです。
  • ユーザー環境は、NIXストアに保存されているインストールされたパッケージの特定のセットです。
  • 世代は、パッケージがインストール、アップグレード、または削除されるたびに作成されるユーザー環境のスナップショットであり、構成間の簡単なロールバックと切り替えを可能にします。

このアプローチは、現在のセットアップを危険にさらすことなく、システムの信頼性、再現性、およびさまざまなパッケージ構成を安全に実験する能力を促進します。

世代をリストする方法

利用可能な世代のリストを表示するには:

 $ nix-env  - リストジェネレーション
ログイン後にコピー

このコマンドは、現在のプロファイルで利用可能なすべての世代をリストします。出力は、生成数、NIXストアのパスを表示し、現在アクティブであるかを示します。

出力の例

 1 2024-04-01 15:06:49   
   2 2024-04-01 15:17:14   
   3 2024-04-01 15:56:46(現在)
ログイン後にコピー

前世代へのロールバック

パッケージをインストールしましたが、適切に機能していないか、適切に機能していません。同じパッケージの低いバージョンが必要です。あなたは何をしますか?単純。コマンドを使用して以前の作業バージョンにロールバックするだけです。

 $ nix-env  - ロールバック
ログイン後にコピー

このコマンドは、現在のユーザー環境を前世代に戻します。たとえば、現在世代3にいて、nix-env - ロールバックを実行している場合、ジェネレーション2に切り替えます。

スイッチ世代

コマンドを使用して、異なる世代を切り替えることができます。

 $ nix-env  - スイッチジェネレーション<no></no>
ログイン後にコピー

このコマンドを使用すると、特定の世代に切り替えることができます。たとえば、NIX-ENV - Switch-Generation 2は、それがすぐに前世代ではない場合でも、ユーザー環境をGeneration 2に切り替えます。

要約すると、世代はパッケージの構成を管理およびロールバックする方法を提供します。 -list-generationsは、何世代が利用できるか、nix-env - ロールバックコマンドは最後の変更を元に戻すための便利な方法であり、 - スイッチジェネレーションを使用すると、特定の世代を選択できます。

この世代管理アプローチは、現在のセットアップに影響を与えることなく、悪い変更を簡単に戻すか、新しい構成をテストできるようにすることにより、システムの信頼性を促進します。

パッケージのアンインストール

Uninstallaパッケージに、実行してください。

 $ nix -env -e gcc
ログイン後にコピー

上記のコマンドは、システムからGCCというパッケージをアンインストールします。

以下に示すように、複数のパッケージを削除できます。

 $ nix -env -e gcc vim
ログイン後にコピー

サンプル出力:

 「VIM-9.1.0148」のアンインストール
「GCC-13.2.0」のアンインストール
建物パス '/nix/store/mxpikbq3l08379h8ik8mrj3fcw6y4-user-environment'
ユーザー環境で6つのシンリンクを作成しました
ログイン後にコピー

未使用のパッケージの削除(ガベージコレクション)

NIXでは、NIX-ENVを使用して(-U)または削除(-E)プログラムを更新するとき、システムは実際にはNIXストア(IE/NIX/Store/Directory)から古いバージョンを削除しません。代わりに、削除されたプログラムへのリンクなしで、プロファイルの新しいセットアップを作成します。言い換えれば、プロファイルからシンリンクのみが削除されます。

ただし、ディスクスペースを使い果たさずに新しいプログラムを追加し続けることはできないため、NixosにはGarbage Collectionと呼ばれる未使用のプログラムをクリーンアップする方法があります。 Garbage Collectorは、プロファイルやそのバージョン(世代)にはもう必要ないプログラムを取り除きます。

ただし、セットアップの古いバージョンにまだプログラムが必要な場合は、削除されません。この機能は、必要に応じて以前のセットアップに戻ることができるために重要です。

Garbage Collectorが仕事をするのを助けるために、使用していない古いバージョンをクリアすることをお勧めします。これがあなたがそれを行う方法です:

プロファイルの現在のバージョン以外のすべてのバージョンを削除します。

 $ nix-env  -  delete-generations old
ログイン後にコピー

必要にならない特定のバージョンを削除します。たとえば、バージョン10、11、および14:

 $ nix-env  -  delete-generations 10 11 14
ログイン後にコピー

30日以上のバージョンを削除します:

 $ nix-env -delete-generations 30d
ログイン後にコピー

古いバージョンをクリーンアップした後、ガベージコレクターを実行して未使用のプログラムを削除します。

 $ nix-store -gc
ログイン後にコピー

Garbage Collectorが実際に実行する前に削除するファイルを確認できます。

 $ nix-store -gc -print-dead
ログイン後にコピー

そして、どのファイルが残るかを確認するには:

 $ nix-store -gc -print-live
ログイン後にコピー

また、すべてのプロファイルからすべての古いバージョンを一度に削除できる、クリーニング用の便利なツール、nix-collect-garbageもあります。 -dオプションで使用します。

 $ NIX-COLLECT-GARBAGE -D
ログイン後にコピー

このコマンドは、古いバージョンを取り除き、ゴミコレクターを実行して不要なプログラムをクリアすることにより、システムを整理する簡単な方法です。

出力の例:

ゴミコレクターの根を見つける...
ゴミの削除...
'/nix/store/s4jr4dc9gghldr3xza23rw0gm9kp21kl-nix-prefetch-scripts.drv'削除
'/nix/store/km2gyzlvs9vkrr52wxfyhinv4r52ksrj-nix-prefetch-bzr.drv'削除
削除 '/nix/store/7mi73sdc1p349vvmpb5nyxsrv8ayk5hly-bazaar-2.7.0.drv'

[...]

'/nix/store/8ckmcs9hx1qm0yxdnv892vrvx49zm1sq-setup-hook-2.0.sh'
「/nix/store/trash」を削除する
未使用のリンクを削除します...
注:現在、ハードリンクは-0.00ミブを節約します
1447ストアパスが削除され、12.65 mib Freed
ログイン後にコピー

これにより、実際にアンインストールされていないパッケージが削除されます。

このコマンドを定期的に実行して、システムから未使用のパッケージを取り除く必要があります。

nixコマンドチートシート

これは、NIXパッケージマネージャーコマンドのきちんとしたチートシートです。印刷して、簡単に参照できるように机の近くに保管してください。

アクション 指示
パッケージをインストールします nix-env -i nix -env -i firefox
パッケージをアンインストールします nix-env -e nix -env -e firefox
パッケージを検索します nix -env -qap nix -env -qap python
パッケージを更新します nix-env -u nix -env -U firefox
インストールされたパッケージをリストします nix -env -q nix -env -q
ロールバックの変更 nix-env - ロールバック nix-env - ロールバック
ごみ収集 nix-collect-garbage -d nix-collect-garbage -d
nixコマンドチートシート

このチートシートは、NIXを使用してパッケージを管理するために使用する基本コマンドをカバーし、システムを開始および維持するための簡単なガイドを提供します。

よくある質問

NIXパッケージマネージャーに関する最もよくある質問(FAQ)があります。

Q:nixとは何ですか?

A:Nixは、再現性、信頼性、および移植性に焦点を当てたLinuxおよびUNIXシステムの強力なパッケージマネージャーです。ユーザーは、ソフトウェアとその依存関係の異なるバージョンを簡単にインストール、管理、切り替えることができます。

Q:nixを使用してパッケージをインストールするにはどうすればよいですか?

A:パッケージをインストールするには、nix -env -iコマンドに続いてパッケージ名を使用します。たとえば、nix -env -i firefoxはFirefox Webブラウザーをインストールします。

Q:パッケージをアンインストールするにはどうすればよいですか?

A:パッケージをアンインストールするには、NIX -ENV -Eコマンドに続いてパッケージ名を使用します。たとえば、Nix -ENV -E Thunderbirdは、Thunderbirdの電子メールクライアントをアンインストールします。

Q:利用可能なパッケージを検索するにはどうすればよいですか?

A:パッケージを検索するには、nix -env -qap を使用します。たとえば、Pythonに関連するパッケージを見つけるには、nix -env -qap pythonを使用できます。

Q:特定のパッケージを更新できますか?

A:はい、特定のパッケージを更新するには、nix-env -u を実行します。インストールされているすべてのパッケージを更新するには、nix -env -uを使用するだけです。

Q:インストールしたパッケージを確認するにはどうすればよいですか?

A:インストールされているすべてのパッケージをリストするには、コマンドnix -env -qを使用します。

Q:チャネルから利用可能なすべてのパッケージをリストするにはどうすればよいですか?

A:チャネルから利用可能なすべてのパッケージをリストするには、nix -env -qaを実行します。

Q:以前の状態に戻すか、「ロールバック」の変更に戻すにはどうすればよいですか?

A:Nixは、「世代」の変化を追跡します。前世代にロールバックするには、nix-env - ロールバックを使用します。 NIX-ENV - リストジェネレーションで利用可能な世代をリストできます。

Q:nixシステムを清潔に保つにはどうすればよいですか?

A:nix-collect-garbage -dを使用して、未使用のパッケージを削除し、スペースを解放します。このコマンドは、プロファイルで参照されていないパッケージをクリーンアップします。

結論

NIXパッケージマネージャーは、LinuxおよびUNIXシステムでソフトウェアパッケージを管理するための堅牢で柔軟な方法を提供します。

パッケージを処理するアプローチにより、競合や依存関係の問題なく、さまざまなバージョンのソフトウェアをインストール、更新、切り替えることができます。

NIXには、特にその概念に慣れていない人にとっては、学習曲線が少しあるかもしれませんが、正確で再現可能なパッケージ管理の利点は重要です。

開発者、システム管理者、または好奇心が強いユーザーであろうと、NIXを学習するために時間をかけることで、ソフトウェア環境に対する制御を大幅に強化し、ワークフローを合理化できます。

今のところすべてです。 NIXパッケージマネージャーの基本的な使用法について明確なアイデアを得ていただければ幸いです。ここで取り上げたものは、Nixから始められるのに十分なはずです。

もちろん、非常に多くのコマンドがあります。 NIXコマンドの詳細については、以下に示すNIX公式マニュアルを参照することを強くお勧めします。

リソース:

  • nixマニュアル

以上がNIXパッケージマネージャーを始めましょう:初心者のガイド2024の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート