Nix
#NixOS
code:install
# sudoが必要
sudo curl -L https://nixos.org/nix/install | sh
#pathを通す
. /home/ec2-user/.nix-profile/etc/profile.d/nix.sh
Nix Expression Language
pure, lazy, functional language
宣言型DSL
Package Manager
アップグレード時、パッケージは上書きされない。ロールバックが可能。
パッケージが互いに依存しない
容量は多くとる
マニュアル
リポジトリ
パッケージはここで検索
https://search.nixos.org/packages
-----------------
/nix/store以下にインストールされる
コンパイラが参照しない
独立
/nix/store/b6gvzjyb2pg0kjfwrjmg1vfhh54ad73z-firefox-33.1/
-------------------------------------
Cheatsheet
https://nixos.org/nix/manual/#ch-main-commands
nix-collect-garbage
profileに参照されないパッケージの削除
nix-env -qaP 'fire.*'
パッケージを検索
.が必要
https://nixos.org/nixos/manual/index.html#sec-ad-hoc-packages
nix-env -iA thunderbird
インストール
nix-env -e thunderbird
アンインストール
nix-channel --update nixos
NixOS channelを最新バージョンにアップデート
nix-channel --update
channel全体のアップデート?
nix-env -u '*'
新しいバージョンが存在するすべてのパッケージをアップグレード
nix-env --rollback
ロールバック
nix-collect-garbage
未使用のパッケージが全て削除される。
ロールバックできなくなるはず。
nix-env -q
インストール済みのパッケージを表示
Channel
nix-channel --list
channelリストを表示
nix-channel --add https://nixos.org/channels/nixpkgs-unstable <name>
nix-channelを追加 <name>は任意の名前
channels status
------------------
profile
https://nixos.org/nix/manual/#sec-profiles
Transparent source/binary deployment
キャッシュを参照する。ハッシュ値
haskell
https://www.srid.ca/1948201.html