GNU/Linux >> Linux の 問題 >  >> Linux

Nixパッケージマネージャー入門

このチュートリアルでは、Nixパッケージマネージャーを使用してパッケージのインストール、削除、更新、アップグレードなどのパッケージ管理操作を実行する方法について説明します。 Nixパッケージマネージャーをまだインストールしていない場合は、以前のガイド「Nix–LinuxおよびUnix用の強力なパッケージマネージャー」を参照してください。 。すでにご存知かもしれませんが、Nixを使用してすべてのパッケージ管理操作を実行するためにrootまたはsudoユーザーである必要はありません。

Nixパッケージマネージャー入門

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

Nixチャネルの更新

Nixチャネルは、一連のNix式とマニフェストを含む場所を指す単なるURLです。デフォルトでは、 Nixpkgs Nixをインストールすると、チャンネルは「登録済み」チャンネルのリストに自動的に追加されます。

Nixチャネルの最新情​​報を入手するには、次のコマンドを実行します。

$ nix-channel --update

出力例:

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’... [8335/8656 KiB, 206.5 KiB/s]
unpacking channels...

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

$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable

チャネルをサブスクライブ(追加)した後、次のコマンドを使用して、使用可能な最新のNix式を取得するようにチャネルを更新することを忘れないでください。

$ nix-channel --update

チャネルを削除するには、次を実行します:

$ nix-channel --remove nixpkgs

利用可能なパッケージの検索/クエリ

サブスクライブされたチャネルで利用可能なパッケージのリストを表示するには、次のコマンドを実行します。

$ nix-env -qa

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

2048-in-terminal-2015-01-15
2bwm-0.2
389-ds-base-1.3.5.15
3dpong-0.5
4store-1.1.6
8086tiny-1.25
90secondportraits-1.01b
915resolution-0.5.3
9pfs
a2jmidid-8
a2ps-4.14
a52dec-0.7.4p4
aacgain-1.9.0
aacskeys-0.4.0e
aalib-1.4rc5
abc-verifier-20160818
abcde-2.7.2
abcl-1.4.0

[...]

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

以下に示すように、特定のパッケージを照会できます。

$ nix-env -qa chromium

出力:

chromium-58.0.3029.110

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

$ nix-env -qaP | grep python3-3

出力例:

nixpkgs.python33 python3-3.3.6
nixpkgs.python33Full python3-3.3.6
nixpkgs.python34 python3-3.4.6
nixpkgs.python34Full python3-3.4.6
nixpkgs.python35 python3-3.5.3
nixpkgs.python35Full python3-3.5.3
nixpkgs.python3Full python3-3.6.1
nixpkgs.python36Full python3-3.6.1
nixpkgs.python3 python3-3.6.1

インストールされているすべてのパッケージを一覧表示するには、次のコマンドを実行します。

$ nix-env -q

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

$ nix-env -qas gcc

出力例:

IPS gcc-5.4.0

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

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

クロム

パッケージ名のchromiumおよび任意のバージョンと一致します。

クロム-58.0

パッケージ名chromiumおよびバージョン58.0と一致します。

例:

$ nix-env -qa chromium-58.0

gtk \\ +

パッケージ名と一致するgtk+ 。 +文字は、数量詞として解釈されないようにバックスラッシュを使用してエスケープする必要があります。また、シェルが確実に渡すように、バックスラッシュを別のバックスラッシュでエスケープする必要があります。

。\*

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

'。*zip。*'

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

'。*(firefox | chromium)。*'

文字列firefoxを含むすべてのパッケージ名に一致します またはクロム

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

前のチュートリアルで述べたように、すべてのパッケージは Nix Storeに保存されます。 、通常はディレクトリ / nix / store

パッケージをインストールするには、次のコマンドを実行するだけです:

$ nix-env --install gcc

または、

$ nix-env -i gcc

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

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

installing ‘gcc-5.4.0’
download-from-binary-cache.pl: still waiting for ‘https://cache.nixos.org/zx0i63k1qswsfjj3kxhwk1vqa9i5ys8i.narinfo’ after 5 seconds...
download-from-binary-cache.pl: still waiting for ‘https://cache.nixos.org/dyj2k6ch35r1ips4vr97md2i0yvl4r5c.narinfo’ after 5 seconds...
download-from-binary-cache.pl: still waiting for ‘https://cache.nixos.org/g25gnfmd8i392ahiip9nwfv80szqbkcs.narinfo’ after 5 seconds...
these paths will be fetched (38.94 MiB download, 150.45 MiB unpacked):
 /nix/store/7n45x3waczv1smsdkax2dy4j2zhbfk82-glibc-2.25-bin
 /nix/store/dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-5.4.0
 /nix/store/f05gsfcilsczwic8aga0cgl0sygbw5lc-zlib-1.2.11
 /nix/store/f111ij1fc83965m48bf2zqgiaq88fqv5-glibc-2.25
 /nix/store/g25gnfmd8i392ahiip9nwfv80szqbkcs-gcc-5.4.0-man
 /nix/store/n5k6yqf81jp4qbay2czaqciimhxikcq8-linux-headers-4.4.10
 /nix/store/vrr9maj9lqj2xwndlx3kh07vhnc111i2-glibc-2.25-dev
 /nix/store/xfrkm34sk0a13ha9bpki61l2k5g1v8dh-gcc-5.4.0-lib
 /nix/store/zx0i63k1qswsfjj3kxhwk1vqa9i5ys8i-gcc-5.4.0-info
fetching path ‘/nix/store/zx0i63k1qswsfjj3kxhwk1vqa9i5ys8i-gcc-5.4.0-info’...

[...]

fetching path ‘/nix/store/dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-5.4.0’...

*** Downloading ‘https://cache.nixos.org/nar/00y98z7i8a1a8d3nkv4dbbfbwwvznccbvmjdhaay0gqc0gfgb020.nar.xz’ to ‘/nix/store/dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-5.4.0’...
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
100 29.5M 100 29.5M 0 0 373k 0 0:01:21 0:01:21 --:--:-- 365k

building path(s) ‘/nix/store/nxx0bfg3n685fl0l3m2gbjqannh0wb9i-user-environment’
created 78 symlinks in user environment

コマンドを使用してgccがインストールされているかどうかを確認しましょう:

$ gcc -v

出力例:

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/nix/store/dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-5.4.0/libexec/gcc/x86_64-unknown-linux-gnu/5.4.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: 
Thread model: posix
gcc version 5.4.0 (GCC)

上記の出力でお気づきのように、gccは "dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-5.4.0"という名前のサブディレクトリにあります。 / nix / storeの下 。ここでは、dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-5.4.0を一意の識別子として呼び出します。このサブディレクトリには、gccパッケージに必要なすべての依存関係とライブラリが含まれています。

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

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

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

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

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

$ nix-env --upgrade vim

または、単に:

$ nix-env -u vim

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

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

$ nix-env -u

ロールバックパッケージ

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

$ nix-env --rollback

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

パッケージをアンインストールするには、次のコマンドを実行します:

$ nix-env -e gcc

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

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

$ nix-env -e gcc vim

出力例:

uninstalling ‘vim-8.0.0442’
uninstalling ‘gcc-5.4.0’
building path(s) ‘/nix/store/mxpikbq3l08379h8ik8mrj3fcw6mh6y4-user-environment’
created 6 symlinks in user environment

未使用のパッケージの削除

パッケージがアンインストールされても、Nixストア(つまり/ nix / store /ディレクトリ)からは削除されません。のみ、シンボリックリンクはプロファイルから削除されます。

アンインストールされたパッケージを実際に削除するには、次のコマンドを実行します:

$ nix-collect-garbage -d

出力例:

finding garbage collector roots...
deleting garbage...
deleting ‘/nix/store/s4jr4dc9gghldr3xza23rw0gm9kp21kl-nix-prefetch-scripts.drv’
deleting ‘/nix/store/km2gyzlvs9vkrr52wxfyhinv4r52ksrj-nix-prefetch-bzr.drv’
deleting ‘/nix/store/7mi73sdc1p349vmpb5nyxsrv8ayk5hly-bazaar-2.7.0.drv’

[...]

deleting ‘/nix/store/8ckmcs9hx1qm0yxdnv892vrvx49zm1sq-setup-hook-2.0.sh’
deleting ‘/nix/store/trash’
deleting unused links...
note: currently hard linking saves -0.00 MiB
1447 store paths deleted, 12.65 MiB freed

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

そして、今のところこれですべてです。 Nixパッケージマネージャーの基本的な使い方を知っていただければ幸いです。ここで取り上げた内容は、Nixパッケージマネージャーを使い始めるのに十分です。もちろん、多くのコマンドがあります。 Nixコマンドの詳細については、このガイドの最後にあるNix公式マニュアルを参照してください。

このガイドが役立つと思われる場合は、ソーシャル、プロフェッショナルネットワークで共有し、OSTechNixをサポートしてください。来るより良いもの。しばらくお待ちください!

乾杯!


Linux
  1. Zshの使用を開始する

  2. lsの使用を開始する

  3. LinuxでPostgreSQLを使い始める

  1. Pleskファイルマネージャの使用を開始する

  2. LinuxでSSHを使い始める

  3. 方法:Ansibleを使い始める

  1. GnuCashの使用を開始する

  2. Linuxでi3ウィンドウマネージャーを使い始める

  3. 相互運用性のためのSambaの使用開始