Der er god sandsynlighed for at jeg kunne finde på at lave min egen Linux distro, der er skruet sammen sådan som jeg synes at et styresystem skal skrues sammen.
Den bliver baseret på Devuan, som er et fork af Debian.
For at det skal gå godt skal jeg have noget software som laver alt det kedelige manuelle arbejde, da computere ikke bliver trætte af at gentage det samme arbejde igen og igen, 24/7/365.
Det hedder automation, hvilket også er det jeg har en specialisering i fra min ingeniør uddannelse.
Jeg vil rigtig gerne have PC-BSDs unikke pakke system, pbi, Push Button Installer.
Mere om PBI:
- EasyPBI, et program der gør det nemt at lave en pbi pakke
http://wiki.pcbsd.org/index.php/EasyPBI - http://wiki.pcbsd.org/index.php/Installing_Applications_and_Keeping_Up-to-Date/10.0
- AppCafe
http://wiki.pcbsd.org/index.php/AppCafe%C2%AE/10.0
Jura: Bemærk at der et (R). Det betyder at jeg må finde et andet navn til den, når nu det er sådan at "AppCafe" er et registreret varemærke. - Package Manager
http://wiki.pcbsd.org/index.php/Package_Manager/10.0 - Update Manager
http://wiki.pcbsd.org/index.php/Update_Manager/10.0 - pc-updatemanager, CLI udgaven af UpdateManager
http://wiki.pcbsd.org/index.php/Pc-updatemanager/10.0 - pkgng and pc-metapkgmanager
http://wiki.pcbsd.org/index.php/Pkgng_and_pc-metapkgmanager/10.0 - PBI Manager
http://wiki.pcbsd.org/index.php/PBI_Manager/10.0
PBI manager svarer nogenlunde til apt-get, men den gør det på en måde som jeg bedre kan lide:- Self-Contained - alt-i-en pakke, og ikke en zillion afhængigheder.
Der forekommer heller ikke rekursive afhængigheder, som betyder: Afhængigheder der har afhængigheder som har afhængigheder osv. - Upgrade deltas - er en pakke kun ændret 5% , så du ikke en hente en helt ny(=100%) pakke, men kun forskellen imellem de 2 versioner af en pakke.
Eksempel
En ny Firefox browser er udkommet, og et download af browseren som om den var en nyinstallation er 25 MB=100%, og ændringen fra sidste version er 5%. Du skal så kun downloade: 5% af 25 MB = 25 x 5/100 [MB] = 1,25 MB - Library and file sharing - Et hash-dir deler filer imellem flere programmer. Et softwarebibliotek (lib*.so) i en mappe hvor en pbi er installeret erstattes af et hardlink til fællesarkivet af lib*.so filer. Hardlinks gør brug af en filsystem funktionalitet til at lave ref counting af hvor mange programmer der bruger en lib*.so fil. Enhver lib*.so med en ref count på 1 bruges ikke af et program og slettes af pbid, som er en service, der har til opgave at oprette hardlinks erstatninger og fjerne lib*.so filer fra fællesarkivet, der har en ref count på 1.
Er ref count=2, så bruges filen af 1 program, og er ref count=3, så bruges filen af 2 programmer etc. - Repository management - Man kan lave sine egne pakke arkiver, og kigge dem igennem
- Digitally signed PBIs - Hvert pakke arkiv har en public-key, som også er installeret på brugerens computer. Installationsprogrammet kan derfor verificere at en pbi rent faktisk tilhører det pakke arkiv den er i.
- Root password not required - sudo behøves ikke(*), men man kan godt bruge sudo, hvis man vil lave en system-wide installation for alle brugere. Hvis sudo ikke bruges, så installeres et program i brugerens egen ~/bin mappe.
(*)Hvis du har fået lov af superbrugeren root. - Implementation - "Package Manager" er bare en bunke shell scripts i PC-BSD - men jeg kunne godt finde på at lave dem om til et Go program: pbictrl som er i /usr/local/sbin/ mappen
- Self-Contained - alt-i-en pakke, og ikke en zillion afhængigheder.
- I PC-BSD baseres pbi pakker på det der hedder ports. For min distro vil build serveren bruge Devuan pakke arkiverne, som har *deb filer. Et git repo a la PC-BSDs indeholder informationer som build serveren skal bruge til at bygge pbi arkiverne: https://github.com/pcbsd/pbi
- Jeg overvejer om pbictrl skal være en service i stedet. Det skal så være et Plan9 9P.200u type af software bibliotek, som er en filsystem server. Det betyder at en funktion i pbictrl så bliver til en fil i et filsystem, som man så kan åbne og hvis man så skriver til filen, så køres funktionen, hvis man har de rigtige rettigheder.
Det rigtig smarte er at hvert eneste programmeringssprog, og alle shells kan åbne filer og skrive til dem. - pbictrl som et Plan9 9P200.u software bibliotek kan også kaldes fra en anden computer. Hvis man så wrapper 9P200.u trafikken ind i en certifikat beskyttet SSH tunnel, så kan man fjernadministrere computeren - evt. fjernadministrere mange computere samtidigt.
/Lars