-
Notifications
You must be signed in to change notification settings - Fork 0
using nixos
nix-env
コマンドでパッケージを検索できます。
$ nix-env -qaP 'firefox'
正規表現も使えます
$ nix-env -qaP 'fire.*'
nox
というパッケージ検索インストールヘルパーがあります。
nix-env
よりは使いやすいのでメインで使うのはおすすめです。
$ nox firefox
Nixではマルチユーザパッケージインストールが可能のため、パッケージインストールには2つの方法があります。
NixOSの宣言型設定を活かすやシングルユーザの場合はシステムプロフィールにインストールがおすすめです。
一般Linuxディストリビューションと同様にコマンドを実行してパッケージをインストールする。
$ nix-env -i firefox
- メリット: 一般ユーザがインストールできる
- デメリット: 宣言型ではない
/etc/nixos/configuration.nix
でシステムレベルでインストールするパッケージを指定できます。
該当設定項目はenvironment.systemPackages
となります。
environment.systemPackages = with pkgs; [
firefox
termite
wget
];
パッケージを追加した後はnixos-rebuild switch
で設定を適用し、パッケージをインストールします。
$ nixos-rebuild switch
- メリット: root権限が必要
- デメリット: 宣言型である
NixはNixストアで利用しているチャンネルに合っているnixpkgsをもっていますので、 パッケージアップデートをするは2ステップです。
- チャンネルをアップデートして、ストア内のnixpkgsをアップデートする
- パッケージをアップデートする
$ nix-channel --update
チャンネルはグローバルとユーザにそれぞれ定義されています。 利用チャンネルを確認するには
$ nix-channel --list
ユーザパッケージは
$ nix-env -u
グローバルパッケージは
$ nixos-rebuild switch
で更新できます。
※nixos-rebuild switch
はconfiguration.nix
を再評価しますので、パッケージ以外にサービスやモジュールを同時にアップデートします。
nix-shell
で簡単にパッケージを試す事ができます。
$ nix-shell -p qutebrowser
$ qutebrowser
※ -p
の後に複数のパッケージを指定できます。
Nixの構造関係で直接にパッケージをアンインストールする事はできません。 アンインストールするためにはパッケージをアンリンクしてから、ガーベージコレクションを実行します。
ユーザプロフィールにインストールしたパッケージなら
$ nix-env -e firefox
グローバルプロフィールにインストールされたパッケージはconfiguration.nix
のenvironment.systemPackages
から削除してから
$ nixos-rebuild switch
NixOSのロールバック機能のために以前のプロフィールジェネレーションに利用されているパッケージが必要です。 古いプロフィールジェネレーションを削除することで、NixOSは不要なパッケージを判断して、ストアから削除します。
$ nix-collect-garbage --delete-older-than 14d
--delete-older-than
の14d
は14日以上の古いプロフィールジェネレーション削除し、不要パッケージをストアから削除します。
使い方によってNixストアは大きくなりやすいので、定期的にガーベージコレクションを行いたいです。