削除された内容 追加された内容
Somme4096 (会話 | 投稿記録)
編集の要約なし
編集の要約なし
 
(4人の利用者による、間の28版が非表示)
1行目:
{{Infobox OS
{{Infobox OS|name=NixOS|title=|logo=File:NixOS_logo.svg|logo size=220px|logo caption=|logo alt=NixOS のロゴ。テキスト付きの。|screenshot=|caption=|developer=NixOS contributors
| name = NixOS
<br>NixOS Foundation<ref>{{cite web |url=https://nixos.org/community/ |title=Community - nixos.org |access-date=2022-09-23 |archive-url=https://archive.today/20220923195051/https://nixos.org/community/ |archive-date=2022-09-23 |url-status=live}}</ref><ref>{{cite web |url=https://github.com/NixOS/nixos-foundation |title=NixOS/nixos-foundation - Github |website=[[GitHub]] |access-date=2022-09-23 |archive-url=https://archive.today/20220923194605/https://github.com/NixOS/nixos-foundation |archive-date=2022-09-23 |url-status=live}}</ref>|source model=[[オープンソース]]|kernel type=[[モノリシックカーネル|モノリシック]] [[Linuxカーネル]]|supported platforms=[[i686]], [[x86-64]], [[ARM architecture|AArch64]]|ui=|family=[[Linux]] ([[Unix-like]])|released=0.1 / {{Start date and age|2003|June|03|df=yes}}|latest release version={{Wikidata|property|preferred|references|P348|P548=Q2804309}}|latest release date={{Start date and age|{{Wikidata|qualifier|single|P348|P548=Q2804309|P577}}}}|latest preview version={{Wikidata|property|preferred|references|P348|P548=Q51930650}}|latest preview date={{Start date and age|{{Wikidata|qualifier|single|P348|P548=Q51930650|P577}}}}|working state=継続中|license=[[MIT License|MIT]]<ref>{{cite web|url=https://github.com/NixOS/nixpkgs/blob/master/nixos/COPYING |title=nixpkgs/COPYING at master · NixOS/nixpkgs · GitHub |publisher=Github.com |access-date=2015-09-19}}</ref><ref group="note" name="other licenses"/>|marketing target=汎用|programmed in=Nix言語<ref group="note" name="other programming languages"/>|package manager=[[Nix (パッケージ管理システム)|Nix]]|website={{URL|https://nixos.org/}}}}NixOSは、[[Nix (パッケージ管理システム)|Nixパッケージマネージャー]]をベースとした[[FLOSS|フリー(自由)かつオープンソース]]のLinuxディストリビューションである。NixOS のアップグレードはアトミックに行われ<ref>{{Cite web |url=https://www.howtogeek.com/what-is-an-immutable-linux-distro/ |title=What Is an Immutable Linux Distro, and Should You Use One? |date=6 December 2023 |access-date=2023-12-07 |archive-url=https://archive.today/20231207004143/https://www.howtogeek.com/what-is-an-immutable-linux-distro/ |archive-date=2023-12-07 |publisher=HowToGeek.com |url-status=live}}</ref> 、[[宣言型プログラミング|宣言的に]]に環境構築を行えるシステムにより高い再現性と移植性を担保している。<ref>{{Cite web |url=http://distrowatch.com/table.php?distribution=nixos |title=DistroWatch.com: NixOS |publisher=Distrowatch.com |access-date=2015-09-19}}</ref>
| title =
| logo = {{Wikidata logo}}
| logo size = 220px
| logo caption = NixOS のロゴ
| logo alt = NixOS のロゴ。NixOSは黒文字のアルファベット。左端には「Y」に似たロゴが6つあり、濃い緑色が3つ、薄い緑色が3つ交互に円を組んでいます。
| screenshot = NixOS 21.11 GNOME main menu - English.png
| screenshot_size = 300px
| screenshot_alt = 英語版NixOS 21.11 GNOMEのメインメニューを表示しており、横8個、縦が3個のアイコンが並んでいます。
| caption = 英語版NixOS 21.11 GNOMEのメインメニューです。
| developer=NixOS contributors<br>NixOS Foundation<ref>{{cite web |url=https://nixos.org/community/ |title=Community - nixos.org |access-date=2022-09-23 |archive-url=https://archive.today/20220923195051/https://nixos.org/community/ |archive-date=2022-09-23 |url-status=live}}</ref><ref>{{cite web |url=https://github.com/NixOS/nixos-foundation |title=NixOS/nixos-foundation - Github |website=[[GitHub]] |access-date=2022-09-23 |archive-url=https://archive.today/20220923194605/https://github.com/NixOS/nixos-foundation |archive-date=2022-09-23 |url-status=live}}</ref>
| working state = 開発中(活動中)
| source model = [[オープンソース]]
| supported platforms = [[i686]], [[x86-64]], [[ARM architecture|AArch64]]
| family = [[Linux]] ([[Unix系]])
| released = 0.1 / {{Start date and age|2003|06|03|df=yes}}
| latest release version = {{Wikidata|property|preferred|references|P348|P548=Q2804309}}
| latest release date = {{Start date and age2|{{Wikidata2|qualifier|single|raw|P348|P548=Q2804309|P577}}}}
| latest preview version = {{Wikidata|property|preferred|references|P348|P548=Q51930650}}
| latest preview date = {{Start date and age|{{Wikidata|qualifier|single|P348|P548=Q51930650|P577}}}}
| kernel type = [[モノリシックカーネル|モノリシック]]([[Linuxカーネル]])
| ui = ?
| license = [[MIT License|MIT]]
<ref>{{cite web|url=https://github.com/NixOS/nixpkgs/blob/master/nixos/COPYING |title=nixpkgs/COPYING at master · NixOS/nixpkgs · GitHub |publisher=Github.com |access-date=2015-09-19}}</ref>
<ref group="note" name="other licenses"/>
| marketing target = 汎用( General purpose )
| programmed in = Nix言語<ref group="note" name="other programming languages"/>
| language = 日本語・英語など
| language count = 2以上
| language footnote = 日本語環境はインストール時に設定可能。なお、日本語入力関連は自力で構築する。
| package manager = [[Nix (パッケージ管理システム)|Nix]]
| website = {{URL|1=https://nixos.org/}}
| support_status = サポート中です。
}}
 
'''NixOS''' は、[[Nix (パッケージ管理システム)|Nixパッケージマネージャー]]をベースとした[[FOSS|自由かつオープンソース]]のLinuxディストリビューションである。NixOS はシステムの更新をアトミックに行い<ref>{{Cite web |url=https://www.howtogeek.com/what-is-an-immutable-linux-distro/ |title=What Is an Immutable Linux Distro, and Should You Use One? |date=6 December 2023 |access-date=2023-12-07 |archive-url=https://archive.today/20231207004143/https://www.howtogeek.com/what-is-an-immutable-linux-distro/ |archive-date=2023-12-07 |publisher=HowToGeek.com |url-status=live}}</ref> 、[[宣言型プログラミング|宣言的]]に環境構築を行えるシステムにより高い再現性と移植性を担保している。<ref>{{Cite web |url=http://distrowatch.com/table.php?distribution=nixos |title=DistroWatch.com: NixOS |publisher=Distrowatch.com |access-date=2015-09-19}}</ref>
NixOSはNixパッケージマネージャーを通じて[https://github.com/NixOS/nixpkgs NixPkgs]を主とした複数のパッケージリポジトリにあるパッケージを利用する。パッケージ構成および設定は特別に設計された[[遅延評価]]を行う[[関数型プログラミング]]言語である[[Nix (パッケージ管理システム)|Nix言語]]を通じて定義される。
 
NixOSはNixパッケージマネージャーを通じて[https://github.com/NixOS/nixpkgs NixPkgs]を主とした複数のパッケージリポジトリを利用できる。パッケージ構成および設定は特別に設計された[[遅延評価]]を行う[[関数型プログラミング]]言語である[[Nix (パッケージ管理システム)|Nix言語]]を通じて定義される。
2003年、Nix はEelco Dolstra氏率いる研究プロジェクトとして立ち上げられた。信頼性の高い[[デプロイ]]手段の探求を目的としたこの研究はDolstra氏の博士論文 ''T he Purely Functional Software Deployment Model'' に結実し、宣言的かつ純粋関数的に行う、全く新しいソフトウェア構成へのアプローチを提示した。ユトレヒト大学のEelco Visser氏により監修された彼の研究は、Nixの理論的基礎を築いた<ref name="original-paper">{{Cite book |first=Eelco |last=Dolstra |title=Software Configuration Management |chapter=Integrating Software Construction and Software Deployment |series=Lecture Notes in Computer Science |volume=2649 |pages=102–117 |year=2003 |doi=10.1007/3-540-39195-9_8 |isbn=978-3-540-14036-8 |chapter-url=https://nixos.org/~eelco/pubs/iscsd-scm11-final.pdf |archive-url=https://web.archive.org/web/20190421081837/https://nixos.org/~eelco/pubs/iscsd-scm11-final.pdf |url-status=dead |archive-date=2019-04-21}}</ref>。
 
== 歴史 ==
2006年、Armijn Hemel氏はNixの思想をLinuxディストリビューションに統合する試みを同氏の修士論文として提出し、NixOSのプロトタイプ実装を併せて公開した。<ref>{{Cite web |author=Dolstra |first=Eelco |title=Purely Functional System Configuration Management |url=https://www.usenix.org/legacy/event/hotos07/tech/full_papers/dolstra/dolstra_html/ |access-date=2024-03-04 |website=www.usenix.org}}</ref>
Nixは2003年、エルコ・ドルストラ(Eelco Dolstra)率いる研究プロジェクトとして立ち上げられた。信頼性の高い[[デプロイ]]手段の探求を目的としたこの研究の成果は、ドルストラの博士論文 ''The Purely Functional Software Deployment Model'' にまとめられ、宣言的かつ純粋関数的に扱う、全く新しいソフトウェア構成へのアプローチを提示した。ユトレヒト大学のエルコ・フィッセルにより監修されたDolstraの研究は、Nixの理論的基礎を築いた<ref name="original-paper">{{Cite book |first=Eelco |last=Dolstra |title=Software Configuration Management |chapter=Integrating Software Construction and Software Deployment |series=Lecture Notes in Computer Science |volume=2649 |pages=102–117 |year=2003 |doi=10.1007/3-540-39195-9_8 |isbn=978-3-540-14036-8 |chapter-url=https://nixos.org/~eelco/pubs/iscsd-scm11-final.pdf |archive-url=https://web.archive.org/web/20190421081837/https://nixos.org/~eelco/pubs/iscsd-scm11-final.pdf |url-status=dead |archive-date=2019-04-21}}</ref>。
 
2006年、アルミン・ヘメル(Armjin Hemel)はNixの思想をLinuxディストリビューションに統合する試みを行い、NixOSのプロトタイプ実装が同氏の修士論文の一部として初めて公開された。<ref>{{Cite web |author=Dolstra |first=Eelco |title=Purely Functional System Configuration Management |url=https://www.usenix.org/legacy/event/hotos07/tech/full_papers/dolstra/dolstra_html/ |access-date=2024-03-04 |website=www.usenix.org}}</ref>
2015年、NixOSとそのエコシステムの開発への継続的な支援、ならびに純粋関数的なソフトウェアデプロイモデルを実装するプロジェクトを支援する目的で NixOS Foundation が[[オランダ]]にて設立された。<ref>{{Cite web |url=http://nixos.org/nixos/foundation.html |title=Stichting NixOS Foundation |publisher=Nixos.org |access-date=2015-09-19}}</ref>
 
2015年、純粋関数的なソフトウェアデプロイモデルを実装するプロジェクトの支援、ならびにNixOSとそのエコシステムの開発への継続的な支援を提供する目的で、NixOS Foundation が[[オランダ]]にて設立された。<ref>{{Cite web |url=http://nixos.org/nixos/foundation.html |title=Stichting NixOS Foundation |publisher=Nixos.org |access-date=2015-09-19}}</ref>
 
== Wikiの沿革 ==
コミュニティによる最初の NixOS wiki は2010年から2011年頃に立ち上げられた。ドキュメントの一元化および共同での知見の共有を目標として掲げていたが、wikiの維持に対するコミュニティの関心が減っ薄れていくにつれ古く不正確な情報が多くを占めているようになった。
 
2015年11月、ロク・ガルバス(Rok Garbas氏Galbas)は彼のトーク番組である ''Make Nix Friendlier for Beginners'' にてwikiの頽廃した現状を指摘し、コミュニティに大きな議論の波を引き起こした。この時多くの開発者がNix*のパッケージニュアルが公式ネージャーのドキュメントのためのより良いリポジサイリであるの統合を主張したが、終いにこの対応が取られ一方でことはなかった。<ref>{{Cite web |author=Garbas |first=Rok |title=Make Nix Friendlier for Beginners |url=https://media.ccc.de/v/nixcon2015-3-MakeNixfriendlierforBeginners#t=1365 |date=2015 |publisher=media.ccc.de |access-date=2024-12-31}}</ref>
 
2016年中旬、モデレーション不足によってwikiはスパムボットで溢れかえった状態となり、同年8月編集ロックダウンにつな行われた。ロックダウン解除を議論するため GitHub issue が2017年2月に開かれたが、論争は解決策をもたに至ないまま終了した。最終的に、2017年5月にてwikiは恆久的に運用停止することとなり、[[Archive.org]] に内容がアーカイブとして保存公開された。<ref>{{Cite web |url=https://archive.org/details/wiki-nixos.org |title=NixOS Wiki Archive |access-date=2024-01-01}}</ref>
 
wikiWikiの不在という状況改善す埋めるため、Jörg Thalheim (Mic92) 氏は2017年4月に''nixos-users wikiGitHub Wiki''GitHub上に立ち上げた。GitHub wiki プラットフォームの編集・加筆を迅速に行える特性によりコミュニティの参入は容易に編集った可能な一方で目次や検索機能などのや目次といった基本的な機能に欠けていた。直後、Tristan Helmich (fadenb) 氏はGitHub wikiのことがユーザー体験の低さを理由つながり代替とMediaWikiベースのwikiがTristan Helmich (fadenb) によって立ち上げられた。''nixos-users GitHub Wiki''のコンテンツはFelix Richter (makefu) 氏がの内容をfadenb氏のプラットフォームよりMediaWiki側へと移行し、された。<ref>{{Cite web |author=Helmich |first=Tristan |title=MediaWiki for NixOS |url=https://nixos.wiki |access-date=2024-01-01}}</ref>
 
2024年1月、新たにしく公式wikiをち上げるための取り組み運動が開始され、現在使用されているwikiインスタンスWiki誕生発足した。この「復活」は、NixOSユーザーのために正確かつ統一されたされたドキュメントを維持するというコミュニティの尽力を反映した結果意志の表れとされた。<ref>{{Cite web |title=NixOS Wiki: History |url=https://wiki.nixos.org/wiki/NixOS_Wiki:History |website=NixOS Wiki |access-date=2024-11-28}}</ref>
 
== バージョン歴史 ==
118 ⟶ 154行目:
|-
|}
NixOS は一年に二回、それぞれ5月末と11月末に安定版のリリースを行っている。<ref>{{Cite web |url=https://nixos.org/governance.html |title=Governance |publisher=Nixos.org |archive-url=https://web.archive.org/web/20200816224244/https://nixos.org/governance.html |access-date=2020-08-28 |archive-date=2020-08-16}}</ref><ref>{{Cite web |url=https://github.com/NixOS/rfcs/blob/master/rfcs/0080-nixos-release-schedule.md |title=Nix RFCS (Request for Comments) |website=[[GitHub]] |date=17 December 2021 |access-date=2024-12-31}}</ref><ref>{{Cite web |url=https://nixos.org/blog/announcements |title=Release Announcements |publisher=Nixos.org |access-date=2023-12-09}}</ref>
 
== 機能 ==
124 ⟶ 160行目:
 
=== 宣言的な構成 ===
NixOSでは、カーネルからアプリケーション、システムパッケージ、設定ファイルに至るまでをも含むオペレーティングシステム全体が、Nix言語で書かれた記述に基づいてNixパッケージマネージャーによって構成管理される。新しいバージョンの構成の反映は古いバージョンの上書きを伴わない。<ref>{{Cite conference|url=https://edolstra.github.io/pubs/hotos-final.pdf|archive-url=https://web.archive.org/web/20200710064409/https://edolstra.github.io/pubs/hotos-final.pdf|archive-date=2020-07-10|access-date=2023-07-19|title=Purely Functional System Configuration Management|first1=Eelco|last=Dolstra|first2=Armijn|last2=Hemel|conference=11th USENIX workshop on Hot topics in operating systems|date=2007-05-07|place=San Diego, California, USA|conferenceurl=https://www.usenix.org/conference/hotosxi|publisher=USENIX Association}}</ref>
 
NixOSのシステムは、グローバルな設定ファイル(通常<code>/etc/nixos</code>に存在する)に、 ユーザー自身が望む機能の仕様を記述することで設定され構成できる。例として、下記はSSHデーモンを実行するミニマルなマシンの設定である。<ref>{{Cite web |url=http://nixos.org/nixos/about.html |title=About NixOS |publisher=Nixos.org |access-date=2015-09-19}}</ref><syntaxhighlight lang="nix">
{
boot.loader.grub.device = "/dev/sda";
132 ⟶ 168行目:
services.sshd.enable = true;
}
</syntaxhighlight>設定ファイルを変更した後、<code>nixos-rebuild</code>コマンドを使用してシステム構成を(設定ファイルに基づいて)更新できる。このコマンドの実行パッケージのダウンロードとインストール、追加の設定ファイルの生成など、新しいバージョンのシステム構成作成反映するために必要なすべての操作を自動的に行う。
 
=== アトミックで信頼性の高いアップデート ===
Nix言語の[[関数型プログラミング|純粋関数]]的な特性により、システムの状態すでにどのようなパッケージやファイルがあろうとかかわらず同じ設定ファイル評価すれば常に同じ結果が得をもたれる
 
NixOSはシステム構成の管理にトランザクション的なアプローチを取っ採用しており、アップグレードなどの構成変更をアトミックに行う。例として、システム構成の更新が停電などによって中断されたとしても、システムは変更する前、もしくは完全に更新された状態を一貫に保つ。<ref>{{Cite conference|url=https://edolstra.github.io/pubs/atomic-hotswup2008-final.pdf|archive-url=https://web.archive.org/web/20211113223110/https://edolstra.github.io/pubs/atomic-hotswup2008-final.pdf|archive-date=2021-11-13|access-date=2023-07-19|title=Atomic Upgrading of Distributed Systems|first1=Sander|last=van der Burg|first2=Eelco|last2=Dolstra|first3=Merijn|last3=de Jonge|conference=1st International Workshop on Hot Topics in Software Upgrades|date=2008-10-20|place=Nashville, Tennessee, USA|conferenceurl=https://dl.acm.org/doi/proceedings/10.1145/1490283|publisher=Association for Computing Machinery|isbn=978-1-60558-304-4|doi=10.1145/1490283.1490294}}</ref>
 
=== Rollbacksロールバック ===
システム更新の結果が望ましいものではなかった場合、<code>nixos-rebuild switch --rollback</code>コマンドを利用して古いバージョンの構成にロールバックできる。すべてのシステム構成のバージョンはブート時のメニューに表示され、例えば新しい構成バージョンのシステムが起動できない場合、古い構成バージョンに切り替えて起動することができる。
If, after a system update, the new configuration is undesirable, it can be [[ロールバック|rolled back]] using a special command (<code>nixos-rebuild switch --rollback</code>). Every system configuration version automatically shows up in the system boot menu. If the new configuration crashes or does not boot properly, an older version can be selected. Rollbacks are lightweight operations that do not involve files being restored from copies.<ref>{{Citation|title=NixOS Manual - Rolling Back Configuration Changes|url=https://nixos.org/manual/nixos/stable/#sec-rollback|publisher=Nixos.org}}</ref>
 
=== システム構成の再現性<ref>{{Citation|title=NixOS Manual - Rolling Back Configuration Changes|url=https://nixos.org/manual/nixos/stable/#sec-rollback|publisher=Nixos.org}}</ref> ===
=== Reproducible system configurations ===
NixOSの宣言的な構成方法により、システム設定を容易に別のマシンで再現することができる。設定ファイルを別のマシンにコピーし、更新コマンドを実行するだけで、(ユーザーデータなどNixパッケージマネージャによって管理されていない部分を除いて)全く同じシステム構成(カーネル、アプリケーション、システムサービスなどを含む)を再現できる。
NixOS's declarative configuration model makes it easy to reproduce a system configuration on another machine. Copying the configuration file to the target machine and running the system update command generates the same system configuration (kernel, applications, system services, and so on) except for parts of the system not managed by the package manager, such as user data.
 
=== ソースコードビルドとバイナリキャッシュの併用 ===
=== Source-based model with binary cache ===
The Nix build language used by NixOS specifies how to build packages from source. This makes it easy to adapt the system to user needs. However, building from source being a slow process, the package manager automatically downloads pre-built binaries from a cache server when they are available. It is possible to disable the binary cache and force building from source by using におけるパッケージのインストールは、ソースからパッケージをビルドする手順の記述を評価することで行われる。この設計はユーザーによる柔軟なカスタマイズを容易にするが、記述を更新するごとにパッケージを再ビルドする必要が生じ、多量の時間がかかってしまう。そこで、リモートパッケージリポジトリにあらかじめ全パッケージのビルド結果をキャッシュし、パッケージのインストール時に利用可能なビルド結果がある場合、それを直接ダウンロードして利用できる方法が導入されている。ビルド設定の変更、または<code>--option substitute false</code> as an argument. Changing any of the build options from the defaults will also cause packages to be built from source. This gives the flexibility of a source-based package management model, with the efficiency of a binary model.をインストール時の引数として指定した場合、パッケージはソースからビルドされる。これらの措置により、Nixはソースベースの柔軟性とバイナリベースの効率性を両立しているといえる。<ref>{{Cite conference|url=https://edolstra.github.io/pubs/secsharing-ase2005-final.pdf|archive-url=https://web.archive.org/web/20211113230423/https://edolstra.github.io/pubs/secsharing-ase2005-final.pdf|archive-date=2021-11-13|access-date=2023-07-19|title=Secure Sharing Between Untrusted Users in a Transparent Source/Binary Deployment Model|first1=Eelco|last=Dolstra|conference=20th IEEE/ACM International Conference on Automated Software Engineering|date=2005-11-07|place=Long Beach, California, USA|conferenceurl=https://dl.acm.org/doi/proceedings/10.1145/1101908|publisher=Association for Computing Machinery|isbn=978-1-58113-993-8|doi=10.1145/1101908.1101933}}</ref>
 
=== Consistency一貫性 ===
Nixパッケージマネージャーは、実行中のシステムがシステムの論理と一致していることを保証する。言い換えれば、パッケージの操作が行われた際、関連するすべてのパッケージも再ビルドされる。例えばカーネルを変更したとすると、関連するカーネルモジュールがすべて再ビルドされる。同様に、ライブラリがアップグレードされると、そのライブラリに(静的にリンクされているパッケージをも含めて)関連する全てのパッケージが、新しいバージョンのライブラリを使うように再ビルドされる。
The Nix package manager ensures that the running system is consistent with the logical specification of the system, meaning that it will rebuild all packages that need to be rebuilt. For instance, if the kernel is changed, then the package manager will ensure that external kernel modules will be rebuilt. Similarly, when a library is updated, it ensures that all the system packages use the new version, even packages statically linked to it.
 
=== ユーザー間におけるパッケージ管理 ===
=== Multi-user package management ===
NixOSでは、個別のユーザーがパッケージをインストールするのに特権を必要としない。全システム共通のプロファイル以外に、ユーザー別にそれぞれ独自のプロファイルが割り当てられているため、たとえ同じパッケージの違うバージョンを複数のユーザーがインストールしていたとしても、これらのパッケージは共存できる。複数のユーザーが同じバージョンの同パッケージをインストールしようとすると、パッケージのダウンロードおよびビルドは一回だけ行われる。
There is no need for special privileges to install software in NixOS. In addition to the system-wide profile, every user has a dedicated profile in which they can install packages. Nix also allows multiple versions of a package to coexist, so different users can have different versions of the same package installed in their respective profiles. If two users install the same version of a package, only one copy will be built or downloaded. Nix's security model ensures that this is secure, because only the users explicitly trusted by the system configuration are allowed to use build parameters that would allow them to control the content of a derivation's output (such as adding impurities to the sandbox, or using an untrusted substituter).{{要説明|date=July 2023}}<sup class="noprint Inline-Template " style="margin-left:0.1em; white-space:nowrap;">&#x5B;''<nowiki><span title="Substituter hasn't been defined here. (July 2023)">clarification needed</span></nowiki>''&#x5D;</sup> Without those parameters, paths can only be substituted from a substituter trusted by the system, or a local sandboxed build which is implicitly trusted.
 
Nixはこの操作が安全であることを保証している。なぜなら、システム設定によって明示的に信頼されたユーザーだけが derivationの生成結果を制御できるビルドパラメーター(ビルドサンドボックスに不純物を追加したり、信頼されていないSubstituterー追加のNixストアーを利用するなど)の使用を許可されているからである。そのようなパラメーターが含まれていない場合、ユーザーはビルドにシステムより信頼されたsubstituter、もしくは暗黙的に信用されるローカルのサンドボックス化されたビルド環境のみ使用できる。
 
== 実装 ==
NixOS is based on the はパッケージ管理に[[Nix (パッケージ管理システム)|Nix package manager]], which stores all packages in isolation from each other in the package store.を利用している。すべてのパッケージは独立した状態でNixストアに保存される。
 
インストールされたパッケージは、ビルド過程に入力されたすべての情報に基づいて一意なハッシュ値を与えられる。ビルド手順を変更すると異なるハッシュ値が生成され、異なったパッケージとしてNixストアにインストールされる。この仕組みは設定ファイルの管理にも使用され、設定の更新が過去の設定履歴を上書きしないための措置として導入されている。
Installed packages are identified by a cryptographic hash of all input used for their build. Changing the build instructions of a package modifies its hash, and that will result in a different package being installed in the package store. This system is also used to manage configuration files, ensuring that newer configurations do not overwrite older ones.
 
An implication of this is that この特異なパッケージ管理方法により、NixOS does not follow theのディレクトリ設計は [[Filesystem Hierarchy Standard]]. The only exceptions are that a に準拠していない。唯一の例外は、<kbdcode>/bin/sh</kbdcode> symlink is created to the version of [[がNixストアにインストールされたbash]] in the Nix store (e.g. へのシンボリックリンクとして存在していることである(例:<code>/nix/store/s/5rnfzla9kcx4mj5zdc7nlnv8na1najvg-bash-4.3.43/</code>), and while NixOS does have an )。システムワイドの設定ファイルを保持する<kbdcode>/etc</kbdcode> directory to keep system-wide configuration files, most files in that directory are symlinks to generated files in ディレクトリは存在こそするが、その内容のほとんどは<kbdcode>/nix/store</kbdcode>, such as に存在するビルド生成物へのシンボリックリンクである(例:<code>/nix/store/s2sjbl85xnrc18rl4fhn56irkxqxyk4p-sshd_config</code>. Not using global directories such as )。これは、複数のバージョンのパッケージが共存できるように、<kbdcode>/bin</kbdcode> is part of what allows multiple versions of a package to coexist.のようなグローバルディレクトリを回避したためである。
 
== 反響 ==
2015年にDistroWatch WeeklyでNixOS 15.09をレビューしたジェシー・スミス(Jesse Smith)はこう書いている:
Jesse Smith, reviewing NixOS 15.09 for DistroWatch Weekly in 2015, wrote:
 
 {{quote|I very much like the way NixOS takes the worry out of upgrading packages by placing each change in its own "generation" and I found, from the end user's point of view, NixOS worked just the same as any other Linux distribution. Setting up NixOS is not for beginners, and I do not think NixOS is intended to be used as a general purpose desktop operating system. But what NixOS does do is give us a useful playground in which to examine the Nix package manager and I think this is very interesting technology which deserves further exploration and adoption by additional distributions.}}
 {{quote|NixOSは、システムの変更をいわば「世代」ごとに分けることで、パッケージアップグレードの際の心配をなくしているところがとても気に入っています。エンドユーザーからすると、NixOSの動作は他のLinuxディストリビューションとそう変わりません。NixOSは初心者向けではありませんし、汎用のオペレーティングシステムとして使われることも意図されていないと思いますが、Nixという非常に興味深い技術を検証するためのプレイグラウンドとしては充分に機能しています。この技術はさらなる探索とより多くのディストリビューションによる採用に値すると考えています。}}
A 2022 review of NixOS 21.11 "Porcupine" in Full Circle magazine concluded:
 
 {{quote|Overall NixOS Gnome 21.11 impresses as serious, neat and elegant. If you are a fan of the unmodified Gnome desktop, then you will find a lot to like here. The downside of this distribution is the steep learning curve for package management, including updates and the like. No matter which distribution you come from, you will have much to learn to be able to make Nix work well for you on the command-line.<ref>{{cite web|url= https://dl.fullcirclemagazine.org/issue186_en.pdf|title= Review - NixOS|access-date= 28 October 2022|last= Hunt|first= Adam|work= [[Full Circle magazine]]|date= 28 October 2022|archive-url= https://web.archive.org/web/20221028212552/https://dl.fullcirclemagazine.org/issue186_en.pdf|archive-date= 28 October 2022|url-status= live}}</ref>}}
2022年に書かれた''Full Circle''紙の NixOS 21.11 "Porcupine"レビュー記事はこう結んでいる:
NixOS 22.11 "Raccoon" reviewed by Liam Proven at The Register:
 
 {{quote|Compared to reports of NixOS from just two or three years ago, we found it was very simple to get it installed and working. This suggests that the tools are maturing well and reaching a certain level of polish, but from a first-time perspective we have no prior baseline to compare against. This is very much not a traditional distro, or even a traditional Unix, but it works and we can see the appeal.<ref>{{cite web|url= https://www.theregister.com/2022/12/13/nixos_2211_raccoon/|title=NixOS 22.11 'Raccoon': Like a proof of concept you can do things with OSes
 
 
{{quote|NixOS Gnome 21.11からは、律儀かつ克明、エレガントな印象を受けた。あなたがGnomeデスクトップのファンなら、気に入るものがたくさん見つかるだろう。このディストリビューションの欠点は、アップデートなどを含むパッケージ管理の学習曲線が険しいことだ。どのディストリビューションから来たとしても、Nixをうまく扱えるようになるまでには、学ぶことがたくさんあるはずだ。<ref>{{cite web|url= https://dl.fullcirclemagazine.org/issue186_en.pdf|title= Review - NixOS|access-date= 28 October 2022|last= Hunt|first= Adam|work= {{日本語版にない記事リンク|Full Circle Magazine|en|Full Circle Magazine}}|date= 28 October 2022|archive-url= https://web.archive.org/web/20221028212552/https://dl.fullcirclemagazine.org/issue186_en.pdf|archive-date= 28 October 2022|url-status= live}}</ref>}}
 
The Register のリーアム・プルーヴン(Liam Proven)による NixOS 22.11「Raccoon」のレビュー:
 
 
 
{{quote|ほんの2、3年前のNixOSの評価と比較すると、インストールして動作させるのは非常に簡単であることがわかった。このことは、ツールが順調に成熟し、特定の水準に達したことを示唆しているが、初めて使う立場からすると、比較できる事前の基準線がない。これは伝統的なディストリビューションでは決してなく、伝統的なUnixですらないが、うまく動作している上、独特の魅力を私たちは見出した。
<ref>{{cite web|url= https://www.theregister.com/2022/12/13/nixos_2211_raccoon/|accessdate=2024-12-31|title=NixOS 22.11 'Raccoon': Like a proof of concept you can do things with OSes
|last=Proven|first=Liam}}</ref>}}
NixOS 23.11 "Tapir" reviewed by Jesse Smith at [[DistroWatch]]:
 {{quote|NixOS is a rare gem in that I don't think I ran into any errors while I was using it. The distribution was stable, it worked well with my hardware, and I didn't run into a single issue while running it. I feel NixOS is well worth a try, especially if you're a system administrator and want to deploy (or maintain) identical distributions across multiple machines.<ref>{{cite web|url= https://distrowatch.com/weekly.php?issue=20240401#nixos|title=NixOS 23.11
|last=Smith|first=Jesse}}</ref>}}
 
[[DistroWatch]] のジェシー・スミスによるNixOS 23.11 「Tapir 」のレビュー:
== Notes ==
{{Reflist|group="note"|refs=<ref name="other licenses">Various other licenses are used for software included with NixOS, for example the [[Linux kernel]] is licensed under the [[GNU General Public License|GNU GPL]] version 2.0 (as of December 2023)</ref>
 
 
<ref name="other programming languages">Various other programming languages are used throughout NixOS (as of December 2023).</ref>}}
<references group="note" responsive="1"><ref name="other licenses" /> <ref name="other programming languages" /></references>
 
{{quote|NixOSは、私が使っている間にどんなエラーにも遭遇しなかったという点で、稀有な逸品と言えましょう。動作は安定しており、私のハードウェアとうまく動作し、実行中は一つたりとも問題に遭遇しませんでした。あなたがシステム管理者で、複数のマシンに同一のディストリビューション環境をデプロイ(またはメンテナンス)したいのであれば、NixOSは試してみるだけの価値があると思います。<ref>{{cite web|url= https://distrowatch.com/weekly.php?issue=20240401#nixos|accessdate=2024-12-31|title=NixOS 23.11
== See also ==
|last=Smith|first=Jesse}}</ref>}}
 
== 関連項目 ==
* [[GNU Guix|GNU Guix System]] – an operating system built on [[GNU Guix]] that is inspired by Nix
 
* [[GNU Guix|GNU Guix System]] – [[GNU Guix]]をベースに構築された[[オペレーティングシステム]]。Nixにインスパイアされている。
== References ==
 
== 脚注 ==
===注釈===
{{Reflist|group="note"|refs=<ref name="other licenses">NixOSに含まれているソフトウェアの中には異なるライセンスを持つものもある。例えば、[[Linuxカーネル]]は[[GNU GPL]]v2でライセンスされている。(2025年一月時点)</ref>
 
<ref name="other programming languages">NixOSは複数の言語で書かれている。(2025年一月時点)</ref>}}
===出典===
{{Reflist|30em}}
 
== External links外部リンク ==
 
* {{Official website|https://nixos.org/}} {{En icon}}
* [https://wiki.nixos.org Official Wiki公式wiki] {{En icon}}
* [https://wiki.nixos.org/wiki/NixOS_Wiki/ja NixOS Wiki] {{Ja icon}}
{{Linux-distro}}{{Linux}}
 
<nowiki>
[[Category:2003年のソフトウェア]]
[[Category:OSのセキュリティ技術]]
[[Category:ソースベースのLinuxディストリビューション]]
[[Category:未査読の翻訳があるページ]]</nowiki>