「Nix」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(nixがAURから削除されcommunityに移動された(?)ようなので変更)
(→‎参照: add TranslationStatus)
 
(2人の利用者による、間の12版が非表示)
1行目: 1行目:
[[Category:パッケージ管理]]
+
[[Category:パッケージマネージャー]]
 
[[en:Nix]]
 
[[en:Nix]]
[https://nixos.org/nix/ Nix] は純粋関数型のパッケージマネージャです。
+
[https://nixos.org/nix/ Nix] は、パッケージ管理の信頼性と再現性を高めることを目的とした純粋に機能的なパッケージマネージャです。
 
詳しくは [https://nixos.org/nix/manual/ Nix パッケージマネージャガイド] を見てください。
 
   
 
== インストール ==
 
== インストール ==
  +
  +
Nix のインストールには 3 つの選択肢があります。ネイティブ Arch Linux パッケージ、Nix が公式にサポートするアップストリームインストールスクリプト、および Nix のサードパーティサポートを提供する会社である Determinate Systems が提供する「Zero to Nix」スクリプトです。
  +
  +
=== ネイティブ ===
   
 
Nix は {{Pkg|nix}} パッケージでインストールできます。
 
Nix は {{Pkg|nix}} パッケージでインストールできます。
   
  +
=== アップストリームインストールスクリプト ===
== 設定 ==
 
   
  +
ファイルを {{ic|1=curl --proto '=https' --tlsv1.2 -sSfL <nowiki>https://nixos.org/nix/install</nowiki> -o nix-install.sh}} でダウンロードし、ファイルを確認します: {{ic|less ./nix-install.sh}}、そしてスクリプトを実行します {{ic|./nix-install.sh --daemon}} で Nix のインストールを開始します。
初めて Nix を使うときには、チャンネルの追加が必要です。ただしその前に、パーミッションの問題を解決しなくてはなりません。
 
   
  +
{{Warning|Nix のドキュメントが示唆しているように {{ic|curl ''some-url'' {{!}} sh}} を実行することは、未知のコードを実行するためセキュリティリスクと見なされます。したがって、実行する前にスクリプトを手動でダウンロードして確認することを推奨します。}}
Nix はデフォルトでは {{ic|/nix}} フォルダにインストールされます。[https://nixos.org/nix/manual/#sec-single-user 非特権アカウント] で Nix を使いたい場合、以下のコマンドを実行してください:
 
   
  +
=== Zero to Nix インストールスクリプト ===
$ sudo chown -R $USER. /nix/var/nix/{gcroots,profiles}
 
   
  +
より簡単で、複雑でない Nix のセットアップを望む場合は、Determinate Systems のセットアップを使用できます。ファイルを {{ic|1=curl --proto '=https' --tlsv1.2 -sSf -L <nowiki>https://install.determinate.systems/nix</nowiki> -o nix-install.sh}} でダウンロードし、ファイルを確認します: {{ic|less ./nix-install.sh}}、そしてスクリプトを実行します {{ic|sh ./nix-install.sh install}} でインストールを開始します。
そして、チャンネルを追加・更新するために、[https://nixos.org/nix/manual/#sec-channels 以下のコマンド] を実行:
 
   
  +
{{Warning|Determinate Systems が示唆しているように {{ic|curl ''some-url'' {{!}} sh}} を実行することは、未知のコードを実行するためセキュリティリスクと見なされます。したがって、実行する前にスクリプトを手動でダウンロードして確認することを推奨します。}}
$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable
 
  +
{{Note|インストーラーはデフォルトで [https://github.com/DeterminateSystems/nix-installer#diagnostics Determinate Systems にテレメトリを送信します]。手動で無効にするには、{{ic|1=sh ./nix-install.sh install --diagnostic-endpoint=""}} を使用してください。}}
  +
  +
詳細については、[https://zero-to-nix.com/start Determinate Systems のマニュアル] を参照してください。
  +
  +
== 設定 ==
  +
  +
Nix デーモンが起動時に起動するように、{{ic|nix-daemon.service}} を[[有効化]]します。
  +
  +
デーモンソケットにアクセスするために必要なユーザーを {{ic|nix-users}} [[ユーザーグループ|グループ]] に追加します。変更が有効になるためにセッションを再起動します。
  +
  +
[https://nixos.wiki/wiki/Nix_channels チャンネル] を追加し、更新します。
  +
  +
$ nix-channel --add <nowiki>https://nixos.org/channels/nixpkgs-unstable</nowiki>
 
$ nix-channel --update
 
$ nix-channel --update
$ nix-env -u
 
   
  +
== 使用方法 ==
非特権の Nix だけを使う場合、以下を実行することで "warning: Nix search path entry '...' does not exist, ignoring" と表示されなくなります:
 
  +
  +
{{Note|[[#ネイティブ|公式リポジトリ]]から Nix をインストールした場合、{{ic|~/.nix-profile/bin}} ディレクトリを手動で PATH に追加する必要があります。}}
  +
  +
シェルが設定された後、以下を実行することで ''hello'' が更新された PATH にインストールされます:
  +
  +
$ nix-env -iA nixpkgs.hello
  +
  +
バイナリ自体は {{ic|/nix/store/[hash]-hello-[version]/bin/hello}} に位置します。
  +
  +
{{ic|hello}} を実行して、正しい PATH にあることを確認します。動作すれば、以下で削除できます:
  +
  +
$ nix-env --uninstall hello
  +
  +
または、インストールされているプログラムのリストを確認できます:
  +
  +
$ nix-env --query
  +
  +
さらに、世代をリストすることもできます:
  +
  +
$ nix-env --list-generations
  +
  +
より詳細な情報については {{man|1|nix-env}} を参照してください。
  +
  +
== ヒントとコツ ==
  +
  +
=== 最大ジョブ数 ===
  +
  +
デフォルトでは、nix は一つのビルダーのみを使用します。以下の設定により、nix は CPU の数だけのジョブを使用することができます:
  +
  +
{{hc|/etc/nix/nix.conf|2=
  +
max-jobs = auto
  +
}}
  +
  +
=== グラフィカルアクセラレーション ===
  +
  +
OpenGL および Vulkan アプリケーションを実行するには、[https://github.com/guibou/nixGL NixGL] を使用します。
  +
  +
=== デスクトップ統合 ===
  +
  +
デスクトップ環境と Nix アプリケーションを統合するために、{{ic|~/.nix-profile/share}} ディレクトリを {{ic|$XDG_DATA_DIRS}} に追加します。例えば、{{ic|1=export XDG_DATA_DIRS=$HOME/.nix-profile/share:$XDG_DATA_DIRS}} を使用します。
  +
  +
=== nix-shell の Zsh 統合 ===
  +
  +
{{ic|nix-shell}} はデフォルトで [[Bash]] を起動します。{{AUR|zsh-nix-shell}} は、{{ic|nix-shell}} 環境でデフォルトのシェルとして [[Zsh]] を使用することを可能にします。一部のプロンプトプラグイン、例えば {{AUR|zsh-theme-powerlevel10k}} や {{AUR|zsh-pure-prompt}} は、{{ic|nix-shell}} インジケーターを提供します。
  +
  +
== コマンド補完 ==
  +
  +
=== Zsh ===
  +
  +
{{AUR|nix-zsh-completions}} は {{ic|nix-env}} や {{ic|nix-shell}} などの nix コマンドのための Zsh 補完を提供します。
  +
  +
== トラブルシューティング ==
  +
  +
=== ファイルが多すぎます ===
  +
  +
一部のビルドでは以下のようなエラーが発生することがあります:
  +
  +
error: opening directory '/nix/store/...': Too many open files
  +
  +
{{ic|nix-daemon.service}} を[[編集]]してファイルの上限を増やします:
  +
  +
[Service]
  +
LimitNOFILE=65536
  +
  +
=== root ユーザーチャネルに関する警告メッセージ ===
  +
  +
Nix を使用中にこのエラーが発生した場合:
  +
  +
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels' does not exist, ignoring
  +
  +
root ユーザーはチャネルを更新する必要があります:
  +
  +
# nix-channel --update
  +
  +
=== ユーザー関連の Nix 検索パスエントリが存在しない、無視しています ===
  +
  +
warning: Nix search path entry '/nix/var/nix/profiles/per-user/<USER>/channels' does not exist, ignoring
  +
  +
{{Bug|78828}} を参照してください。または、問題が発生しない [[#Upstream installation script]] または [[#Zero to Nix installation script]] を使用できます。
  +
  +
=== エラー: ファイル 'nixpkgs' が Nix 検索パスに見つかりませんでした (これを $NIX_PATH または -I で追加してください) ===
  +
  +
{{Bug|78828}} を参照してください。または、問題が発生しない [[#Upstream installation script]] または [[#Zero to Nix installation script]] を使用できます。
  +
  +
=== サンドボックスビルドの問題 ===
  +
  +
==== その他のサンドボックスの問題 ====
  +
  +
error: while setting up the build environment: mounting /proc: Operation not permitted
  +
error: program '/usr/bin/nix-env' failed with exit code 1
  +
  +
1: package 'utils' in options("defaultPackages") was not found
  +
2: package 'stats' in options("defaultPackages") was not found
  +
Error: .onLoad failed in loadNamespace() for 'utils', details:
  +
call: system(paste(which, shQuote(names[i])), intern = TRUE, ignore.stderr = TRUE)
  +
error: cannot popen '/nix/store/fnkvlbls29d01jcx3wsdnhykyrl7087r-which-2.21/bin/which 'uname' 2>/dev/null', probable reason 'Cannot allocate memory'
  +
  +
この問題は上流で知られています:[https://github.com/NixOS/nix/issues/2311 #2311]、[https://github.com/NixOS/nix/issues/3000 #3000]、および [https://github.com/NixOS/nix/issues/4636 #4636]。
   
  +
{{Warning|サンドボックスを無効にすることは一般的に推奨されておらず、ビルド環境が汚染され、さらにビルドエラーが発生する可能性があります。{{ic|nixpkgs}} からの何でもサンドボックスでビルドされることを期待しています。}}
$ sudo nix-channel --update
 
   
  +
最も一般的な修正は、設定ファイルでサンドボックスを無効にすることです:
=== archlinux-nix を使う ===
 
   
  +
{{hc|/etc/nix/nix.conf|2=
{{AUR|archlinux-nix}} を使うことで必要なグループやパーミッションが設定された archlinux 互換の nix 環境を起動することが可能です。
 
  +
# disable sandboxing
  +
sandbox = false
  +
}}
   
  +
その後、{{ic|nix-daemon}} サービスを[[再起動]]します。
{{Pkg|nix}} をインストールすると {{AUR|archlinux-nix}} もインストールされるので、以下のコマンドを実行して利用可能なコマンドを確認してください:
 
   
  +
=== ロケール警告 ===
# archlinux-nix
 
   
  +
[https://nixos.wiki/wiki/Locales Nix wiki] は {{ic|1=export LOCALE_ARCHIVE=/usr/lib/locale/locale-archive}} の実行を推奨しています。または、環境変数 {{ic|1=LC_ALL=C}} をエクスポートします。
システムを起動するには、以下のコマンドを実行:
 
   
  +
== 参照 ==
# archlinux-nix bootstrap
 
   
  +
* [https://nixos.org/nix/ Homepage]
ビルドグループを設定するには以下のコマンドを実行:
 
  +
* [https://nixos.wiki/wiki/Nix Upstream wiki]
  +
* [https://nixos.org/nix/manual/ Nix Package Manager Guide]
  +
* [[Wikipedia:Nix package manager]]
  +
* [https://zero-to-nix.com/ Zero to Nix]
   
  +
{{TranslationStatus|Nix|2024-05-07|804233}}
# archlinux-nix setup-build-group
 

2024年5月7日 (火) 19:47時点における最新版

Nix は、パッケージ管理の信頼性と再現性を高めることを目的とした純粋に機能的なパッケージマネージャーです。

インストール

Nix のインストールには 3 つの選択肢があります。ネイティブ Arch Linux パッケージ、Nix が公式にサポートするアップストリームインストールスクリプト、および Nix のサードパーティサポートを提供する会社である Determinate Systems が提供する「Zero to Nix」スクリプトです。

ネイティブ

Nix は nix パッケージでインストールできます。

アップストリームインストールスクリプト

ファイルを curl --proto '=https' --tlsv1.2 -sSfL https://nixos.org/nix/install -o nix-install.sh でダウンロードし、ファイルを確認します: less ./nix-install.sh、そしてスクリプトを実行します ./nix-install.sh --daemon で Nix のインストールを開始します。

警告: Nix のドキュメントが示唆しているように curl some-url | sh を実行することは、未知のコードを実行するためセキュリティリスクと見なされます。したがって、実行する前にスクリプトを手動でダウンロードして確認することを推奨します。

Zero to Nix インストールスクリプト

より簡単で、複雑でない Nix のセットアップを望む場合は、Determinate Systems のセットアップを使用できます。ファイルを curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix -o nix-install.sh でダウンロードし、ファイルを確認します: less ./nix-install.sh、そしてスクリプトを実行します sh ./nix-install.sh install でインストールを開始します。

警告: Determinate Systems が示唆しているように curl some-url | sh を実行することは、未知のコードを実行するためセキュリティリスクと見なされます。したがって、実行する前にスクリプトを手動でダウンロードして確認することを推奨します。
ノート: インストーラーはデフォルトで Determinate Systems にテレメトリを送信します。手動で無効にするには、sh ./nix-install.sh install --diagnostic-endpoint="" を使用してください。

詳細については、Determinate Systems のマニュアル を参照してください。

設定

Nix デーモンが起動時に起動するように、nix-daemon.service有効化します。

デーモンソケットにアクセスするために必要なユーザーを nix-users グループ に追加します。変更が有効になるためにセッションを再起動します。

チャンネル を追加し、更新します。

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

使用方法

ノート: 公式リポジトリから Nix をインストールした場合、~/.nix-profile/bin ディレクトリを手動で PATH に追加する必要があります。

シェルが設定された後、以下を実行することで hello が更新された PATH にインストールされます:

$ nix-env -iA nixpkgs.hello

バイナリ自体は /nix/store/[hash]-hello-[version]/bin/hello に位置します。

hello を実行して、正しい PATH にあることを確認します。動作すれば、以下で削除できます:

$ nix-env --uninstall hello

または、インストールされているプログラムのリストを確認できます:

$ nix-env --query

さらに、世代をリストすることもできます:

$ nix-env --list-generations

より詳細な情報については nix-env(1) を参照してください。

ヒントとコツ

最大ジョブ数

デフォルトでは、nix は一つのビルダーのみを使用します。以下の設定により、nix は CPU の数だけのジョブを使用することができます:

/etc/nix/nix.conf
max-jobs = auto

グラフィカルアクセラレーション

OpenGL および Vulkan アプリケーションを実行するには、NixGL を使用します。

デスクトップ統合

デスクトップ環境と Nix アプリケーションを統合するために、~/.nix-profile/share ディレクトリを $XDG_DATA_DIRS に追加します。例えば、export XDG_DATA_DIRS=$HOME/.nix-profile/share:$XDG_DATA_DIRS を使用します。

nix-shell の Zsh 統合

nix-shell はデフォルトで Bash を起動します。zsh-nix-shellAUR は、nix-shell 環境でデフォルトのシェルとして Zsh を使用することを可能にします。一部のプロンプトプラグイン、例えば zsh-theme-powerlevel10kAURzsh-pure-promptAUR は、nix-shell インジケーターを提供します。

コマンド補完

Zsh

nix-zsh-completionsAURnix-envnix-shell などの nix コマンドのための Zsh 補完を提供します。

トラブルシューティング

ファイルが多すぎます

一部のビルドでは以下のようなエラーが発生することがあります:

error: opening directory '/nix/store/...': Too many open files

nix-daemon.service編集してファイルの上限を増やします:

[Service]
LimitNOFILE=65536

root ユーザーチャネルに関する警告メッセージ

Nix を使用中にこのエラーが発生した場合:

warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels' does not exist, ignoring

root ユーザーはチャネルを更新する必要があります:

# nix-channel --update

ユーザー関連の Nix 検索パスエントリが存在しない、無視しています

warning: Nix search path entry '/nix/var/nix/profiles/per-user/<USER>/channels' does not exist, ignoring

FS#78828 を参照してください。または、問題が発生しない #Upstream installation script または #Zero to Nix installation script を使用できます。

エラー: ファイル 'nixpkgs' が Nix 検索パスに見つかりませんでした (これを $NIX_PATH または -I で追加してください)

FS#78828 を参照してください。または、問題が発生しない #Upstream installation script または #Zero to Nix installation script を使用できます。

サンドボックスビルドの問題

その他のサンドボックスの問題

error: while setting up the build environment: mounting /proc: Operation not permitted
error: program '/usr/bin/nix-env' failed with exit code 1
1: package 'utils' in options("defaultPackages") was not found
2: package 'stats' in options("defaultPackages") was not found
Error: .onLoad failed in loadNamespace() for 'utils', details:
 call: system(paste(which, shQuote(names[i])), intern = TRUE, ignore.stderr = TRUE)
 error: cannot popen '/nix/store/fnkvlbls29d01jcx3wsdnhykyrl7087r-which-2.21/bin/which 'uname' 2>/dev/null', probable reason 'Cannot allocate memory'

この問題は上流で知られています:#2311#3000、および #4636

警告: サンドボックスを無効にすることは一般的に推奨されておらず、ビルド環境が汚染され、さらにビルドエラーが発生する可能性があります。nixpkgs からの何でもサンドボックスでビルドされることを期待しています。

最も一般的な修正は、設定ファイルでサンドボックスを無効にすることです:

/etc/nix/nix.conf
# disable sandboxing
sandbox = false

その後、nix-daemon サービスを再起動します。

ロケール警告

Nix wikiexport LOCALE_ARCHIVE=/usr/lib/locale/locale-archive の実行を推奨しています。または、環境変数 LC_ALL=C をエクスポートします。

参照

翻訳ステータス: このページは en:Nix の翻訳バージョンです。最後の翻訳日は 2024-05-07 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。