Distribuce a provoz aplikací se stavovým úložištěm v systému Nix

Loading...
Thumbnail Image

Date

Authors

Štěpánek, Libor

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.

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

DOI

Collections

Endorsement

Review

Supplemented By

Referenced By

Citace PRO