GNU Guix
![]() | |
Geliştirici(ler) | GNU Tasarısı |
---|---|
İlk yayınlanma | 22 Kasım 2012 (11 yıl önce) (2012-11-22) |
Güncel sürüm | 1.1.0 / 15 Nisan 2020 (4 yıl önce) (2020-04-15)[1] |
Programlama dili | Guile Scheme, C++ (Nix çekirdeği) |
Tür | Paket yönetim sistemi |
Lisans | GNU Genel Kamu Lisansı |
Resmî sitesi | gnu.org/software/guix |
Kod deposu |
![]() |
GNU Guix, GNU için bir paket yöneticisidir. Nix paket yöneticisini ve Guile Şeması uygulama programlama arayüzlerini taban almıştır. Tümüyle özgür yazılımdır.[2][3]
Tarihçesi
- GNU Guix tasarısı Haziran 2012'de bir GNU Guile programcısı olan Ludovic Courtès tarafından başlatılmıştır.[4]
- GNU Tasarısı Kasım 2012'de GNU Guix'in ilk sürümünü duyurmuştur.
- 20 Ağustos 2015'te Guix'in GNU Hurd'a uyarlandığı duyurulmuştur[5] ve Hurd'ün ilk yerli paket yöneticisi olmuştur.[6]
Özellikler
- Guix kullanılırken her paket kendi dizinindeki bir paket deposunda son bulur,
/gnu/store/xxx-package-1.2
gibi.xxx
bir base32 değeridir. (Guix bu dosya isimlerini kısaltmak için bir Emacs eklentisiyle birlikte gelir.) - Her kullanıcı bir profile sahiptir ve bu profiller hangi paketlerin kullanılacağını işaret eder. Profiller ayrı ayrı kullanıcıların ana dizininde depolanır,
$HOME/.guix-profile
gibi.
- Örneğin,
orhan
GCC 4.7.2'yi yükler. Bunun sonucunda, kendi dizininde oluşan/home/orhan/.guix-profile/bin/gcc
dosyası/gnu/store/...-gcc-4.7.2/bin/gcc
'yi işaret eder. Aynı makinede,inci
de GCC 4.8.0 yüklemiştir.inci
'nin profili/gnu/store/...-gcc-4.8.0/bin
'i işaret etmektedir. Yani, GCC'nin her iki sürümü herhangi bir çatışma olmadan aynı sistem üzerinde bulunabilir.
guix package
komutu paketleri yönetmek için merkezi bir araçtır. Kullanıcı bazlı profiller üzerinde çalışır ve sıradan kullanıcı yetkileriyle birlikte kullanılabilir.
- Bu komut; kurma, silme ve yükseltme işlemlerinin tümünü gerçekleştirebilir. Belirtilen süreç başarılı olsa da olmasa da her bir yürütme aslında bir işlemdir. Böylelikle, eğer işlem sırasında
guix package
süreci sonlandırılırsa ya da işlem sırasında elektrik kesintisi yaşanırsa kullanıcı profili bir önceki duruma döner ve sistem kullanır halde kalır.
- Herhangi bir paket işlemi geri döndürülebilir. Örnek olarak, eğer bir yükseltme ciddi hatalar barındıran bir paketi yüklediyse, kullanıcı kendi profilinin gayet iyi çalışan bir önceki durumuna geri dönebilir. Benzer olarak, genel sistem yapılandırması da transaksiyonel yükseltme ve geri almaya dahildir.
- Paket deposundaki tüm bu paketler bir çöp yığını halini alabilir. Guix hangi paketin hala kullanıcı profilleri ile ilişkilendirildiğini bulur ve ilişkilendirilmeyen paketleri siler. Kullanıcılar profillerinin eski sürümlerini silebilir ve bunlarla bağıntılı olan eski paketler de silinmek için işaretlenebilir.
- Sonuçta, Guix tam anlamıyla işlevsel bir paket yöneticisidir. Her
/gnu/store
paket dizin ismi; derleyici, kütüphaneler, inşa betikleri gibi bu paketi inşa etmede kullanılan gereksinimlere yazılan girdilerin özetinden oluşur. Bu, belirlenen paket kurulumunun kullanıcının dağıtımın mevcut durumuna uygunluğunu denetleyebilmesini sağlar. Ayrıca bu, inşanın yeniden üretilebilirliğinin azami düzeye çıkmasına yardımcı olur. - Bir
/gnu/store
öğesi için önceden derlenmiş ikili dosyanın harici bir kaynakta bulunması halinde Guix sadece indirir ve verileri dışa çıkartır, bunun dışında yerel olarak, bir paketi kaynağından inşa edebilir. - İnşa ortamında denetim özelliği geliştiriciler için oldukça kullanışlıdır.
guix environment
komutu paket geliştiricilerinin paketleri için doğru inşa ortamını hızlıca kurmalarını sağlar, bu özellik sayesinde her geliştirici ayrı ayrı paket bağımlılıklarını kendi profiline kurmak zorunda kalmaz.[7]
Guix System Distribution
Guix tasarısı ayrıca Guix System Distribution'ı geliştirir. Bu dağıtım Linux-libre çekirdeğini ve GNU Shepherd başlatma sistemini kullanır ve tümüyle yüklenebilir bir GNU sistemidir.
Kaynakça
- ^ Courtès, Ludovic; Bakke, Marius. "GNU Guix 1.1.0 released". 15 Nisan 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Nisan 2020.
- ^ Ludovic Courtès (2013). "Functional Package Management with Guix". Madrid, İspanya: European Lisp Symposium. 10 Ekim 2015 tarihinde kaynağından arşivlendi.
- ^ "Introducing GNU Guix". 13 Mayıs 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ocak 2016.
- ^ "Re: A GNU Distribution". 13 Mayıs 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ocak 2016.
- ^ "[GSoC update] Porting Guix to GNU/Hurd". 3 Kasım 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ocak 2016.
- ^ "GNU Guix Package Manager Ported To GNU Hurd". www.phoronix.com. Phoronix. 25 Eylül 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ocak 2016.
- ^ "GNU Guix Reference Manual: Features". www.gnu.org. GNU. 24 Temmuz 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ocak 2016.