Distribuce a provoz aplikací se stavovým úložištěm v systému Nix
Loading...
Date
Authors
Štěpánek, Libor
Advisor
Referee
Mark
B
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
ORCID
Abstract
Cíl této práce je poskytnout způsob tvorby balíčků pro Nix a NixOS, který umožní provozovat aplikace, které vyžadují práva zápisu do svého instalačního adresáře, což Nix Store neumožňuje. Zároveň je cílem navrhnout způsob provozu aplikací pro operační systém Windows za pomocí nástroje pro kompatibilitu WINE, a demonstrovat jej na referenční implementaci. Cíle je dosaženo za pomoci kombinace konceptu namespace a vrstvených souborových systémů (overlayfs), které v kombinaci umožní simulovat práva k zápisu do Nix Store. Libovolný balíček lze za pomocí funkce v programovacím jazyce Nix přetvořit na meta-balíček, který obsahuje potřebné skripty k vytvoření tohoto prostředí. Zároveň je možné specifikovat další derivace jako závislosti. Windows aplikace v referenční implementaci jsou získány za pomocí manifest souborů WinGetu, a stejná funkce je použita k vytvoření vyžadovaného zapisovatelného prostředí. Výsledek práce umožňuje používat další podmnožinu aplikací, které nebyly vytvořeny s cílem použitelnosti v rámci Nixu nebo NixOS.
The goal of this thesis is to provide a way to package and run arbitrary applications using the Nix package manager under NixOS, in cases where said applications require write access to their installation directory, which the Nix Store does not allow. At the same time, it aims to propose a way to package Windows applications for the use with the WINE compatibility layer, and to demonstrate this approach on a reference implementation. This is achieved using a combination of namespaces and overlayfs mounts under FUSE, which together create a runtime environment simulating write access to the store. An arbitrary Nix derivation may be passed to a function, which creates a meta-derivation with all the necessary scripts. It is also possible to specify other derivations to act as dependencies. The Windows applications for the reference are taken from the manifest files of WinGet and use the same function to create a simulated writable environment. The result makes it possible to use another subset of applications, which have not been created with the use under Nix or NixOS in mind.
The goal of this thesis is to provide a way to package and run arbitrary applications using the Nix package manager under NixOS, in cases where said applications require write access to their installation directory, which the Nix Store does not allow. At the same time, it aims to propose a way to package Windows applications for the use with the WINE compatibility layer, and to demonstrate this approach on a reference implementation. This is achieved using a combination of namespaces and overlayfs mounts under FUSE, which together create a runtime environment simulating write access to the store. An arbitrary Nix derivation may be passed to a function, which creates a meta-derivation with all the necessary scripts. It is also possible to specify other derivations to act as dependencies. The Windows applications for the reference are taken from the manifest files of WinGet and use the same function to create a simulated writable environment. The result makes it possible to use another subset of applications, which have not been created with the use under Nix or NixOS in mind.
Description
Citation
ŠTĚPÁNEK, L. Distribuce a provoz aplikací se stavovým úložištěm v systému Nix [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025.
Document type
Document version
Date of access to the full text
Language of document
en
Study field
Informační technologie
Comittee
doc. RNDr. Milan Češka, Ph.D. (předseda)
Ing. Zbyněk Křivka, Ph.D. (člen)
Ing. Zdeněk Materna, Ph.D. (člen)
doc. Ing. Jan Kořenek, Ph.D. (člen)
Ing. Jaroslav Rozman, Ph.D. (člen)
Date of acceptance
2025-06-16
Defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.
Result of defence
práce byla úspěšně obhájena
