İlk olarak, bir ön çıkar çatışması reddi: Ben uzun zamandır GoboLinux geliştiricisiyim.
İkincisi, önceden bir etki alanı uzmanlığı iddiası: Uzun zamandır GoboLinux geliştiricisiyim.
Mevcut kullanımda birkaç farklı yapı vardır. GoboLinux'ta bir tane var ve GNU Stow , Homebrew vb. Araçlar oldukça benzer bir şey kullanıyor (özellikle kullanıcı programları için). NixOS ayrıca programlar ve yaşam felsefesi için standart dışı bir hiyerarşi kullanır. Aynı zamanda oldukça yaygın bir LFS deneyidir.
Bunların hepsini tanımlayacağım ve daha sonra pratikte nasıl çalıştığı ("fizibilite") hakkındaki deneyimlerden yorum yapacağım. Kısa cevap, evet, uygulanabilir olduğu, ancak gerçekten istemelisiniz .
GoboLinux
GoboLinux'un tarif ettiğinize çok benzeyen bir yapısı var. Yazılımın altında /Programs
: /Programs/ZSH/5.0.8
ZSH 5.0.8'e ait tüm dosyaları normal bin
/ lib
/ ... dizinlerinde bulunur. Sistem araçları /System/Links
, /usr
¹ üzerinde eşlenen hiyerarşi altındaki dosyalara sembolik bağlantılar oluşturur . PATH
Değişken sadece tek bir birleşik yürütülebilir dizinini içeren ve LD_LIBRARY_PATH
kullanılmaz. Yazılımın birden fazla sürümü aynı anda bir arada bulunabilir, ancak belirli bir isim ( bin/zsh
) ile sadece bir dosya bir kerede aktif olarak bağlanacaktır. Diğerlerine tam yollarından erişebilirsiniz.
Uyumluluk sembolik bir dizi de bu yüzden, mevcut /bin
ve /usr/bin
benzeri birleşik yürütülebilir dizinine bağlanır ve. Bu çalışma zamanında yazılım için hayatı kolaylaştırır. Bir çekirdek düzeltme eki olan GoboHide, bu uyumluluk semboliklerinin dosya listelerinden gizlenmesini sağlar (ancak yine de geçilebilir).
Contra başka cevap, sen yok GoboHide tamamen kozmetik ve çekirdek general² kullanıcı tarafından uzay yollarında bağlı değildir: çekirdek kodunu değiştirmek gerekir. GoboLinux ısmarlama bir init sistemine sahiptir, ancak bunun için de gerekli değildir.
Tagline her zaman "dosya sistemi paket yöneticisidir" olmuştur, ancak sistemde oldukça sıradan paket yönetimi araçları bulunmaktadır. Sen kullanarak her şeyi yapabilirsiniz cp
, rm
ve ln
olsa.
GoboLinux'u kullanmak istiyorsanız, çok açığız. Yine de küçük bir geliştirme ekibi olduğunu ve kimsenin daha önce kullanmak istememesi durumunda, istediğiniz bazı yazılımların paketlenmemiş olduğunu göreceksiniz. İyi haber şu ki, sistem için bir program oluşturmak genellikle oldukça kolaydır (standart bir "tarif" yaklaşık üç satır uzunluğundadır); Kötü haber şu ki, bazen aşağıda daha fazlasını anlatacağım, rahatsız edici derecede karmaşık.
Yayınlar
Birkaç "yayın" var. Linux.conf.au 2010'da genel olarak her şeyi kapsayan ve videoda bulunan bir bütün olarak sistemde bir sunum yaptım : ogv mp4 (ayrıca yerel Linux Avustralya aynanızda ); Ayrıca notlarımı nesire yazdım . Bazı itirazlara ve sorunlara yönelik GoboLinux web sitesinde ünlü " Ben clueless değilim " de dahil olmak üzere birkaç eski belge vardır . Bugünlerde hepimizin daha az gung-ho olduğunu düşünüyorum ve gelecekteki bir sürümün sembolik bağlantılar için temel konum olarak kabul edileceğinden şüpheleniyorum ./usr
NixOS
NixOS her kurulu programı kendi dizinine koyar /nix/store
. Bu dizinlere şunun gibi bir şey isimlendirilmiştir /nix/store/5rnfzla9kcx4mj5zdc7nlnv8na1najvg-firefox-3.5.4/
- bu programa giden tüm bağımlılıkları ve konfigürasyon kümesini temsil eden bir şifreleme karma vardır. Bu dizinde, yerel olarak az ya da çok normal konumlara sahip tüm ilişkili dosyalar bulunur.
Aynı zamanda aynı anda birden fazla versiyona sahip olmanıza ve bunlardan herhangi birini kullanmanıza izin verir. NixOS, yeniden üretilebilen konfigürasyonla ilişkili bütün bir felsefeye sahiptir: temelde baştan beri içine yapılandırılmış bir konfigürasyon yönetim sistemi vardır. Yüklü programların doğru dünyasını kullanıcıya sunmak için bazı çevresel manipülasyonlara dayanır.
LFS
Linux üzerinden geçmek oldukça kolay. Scratch From ve tam olarak istediğiniz hiyerarşiyi kurun: sadece dizinleri hazırlayın ve doğru yere kurulacak her şeyi yapılandırın. GoboLinux deneyleri yapmak için bunu birkaç kez yaptım ve normal LFS'den çok daha zor değil. Bu durumda uyumluluk simgelerini yapmanız gerekir; Aksi takdirde, büyük ölçüde daha zordur, ancak sendika bağlantılarının dikkatli kullanılması, gerçekten istemeniz durumunda muhtemelen bundan kaçınabilir.
Bir noktada tam olarak bu konuda bir LFS İpucu olduğunu hissediyorum , ancak şimdi bulamıyorum.
Fizibilite Üzerine
FHS ile ilgili olan şey, bir standart olması, çok yaygın olması ve yazıldığı zaman mevcut kullanımı geniş ölçüde yansıtmasıdır. Çoğu kullanıcı, esasen o düzeni takip etmeyen bir sistemde asla bulunmaz. Bunun sonucu olarak, pek çok yazılımın, genellikle istemeden tamamen kimsenin farketmediği gizli bağımlılıklar vardır.
Bütün o senaryolar #!/bin/bash
? Orada Bash yoksa iyi değil. GoboLinux'un bütün bu uyumluluk semboliklerine sahip olmasının nedeni budur; bu sadece pratik. Pek çok yazılım, standart olmayan bir düzen altında derleme zamanında veya çalışma zamanında işlevini yerine getirmiyor ve daha sonra genellikle müdahaleci bir şekilde düzeltmek için düzeltme eki gerekiyor.
Temel Autoconf programınız, genellikle nerede söylediğiniz yere kendini mutlu bir şekilde kurar ve doğru geçiş sürecini otomatikleştirmek oldukça kolaydır --prefix
. Diğer yapı sistemleri, kasıtlı olarak hiyerarşi içinde pişirme veya taşınabilir olmayan bir yapılandırma yazmak için önde gelen yazarlar tarafından her zaman çok hoş değildir. CMake, ikinci kategoride önemli bir suçlu. Bunun anlamı, eğer bu dünyada yaşamak istiyorsanız, başkalarının yapılı sistemlerinde çok fazla titizlikle çalışmak için hazırlıklı olmanız gerektiğidir. Derleme sırasında oluşturulan dosyaları dinamik olarak yamalamak zorunda kalmak çok zordur.
Çalışma zamanı yine başka bir konudur. Birçok programda, kendi dosyalarının veya bir başkasının dosyalarının, kendilerine göre veya kesinlikle nerede bulundukları konusunda varsayımlar vardır. Tutarlı bir görünüm sunmak için sembolik bağları kullanmaya başladığınızda, birçok program bunları ele alan hatalara sahiptir (veya bazen sizin için yararsız olabilecek doğru davranışlar olabilir). Örneğin, bir araç yanında veya içinde yürütülebilir dosyayı foobar
bulmayı bekleyebilir . Bağlantısını okuyor olup olmamasına bağlı olarak, bunlar iki farklı yer olabilir ve ikisi de yine doğru olmayabilir.baz
../sbin
Kombine bir problem ise /usr/share
dizindir. Tabii ki paylaşılan dosyalar için, ancak her programı kendi ön ekine koyduğunuzda, artık paylaşılmıyorlar. Bu, standart ikonları ve benzerlerini bulamayan programlara götürür. GoboLinux bu konuyu oldukça çirkin bir şekilde ele aldı: inşa sırasında, $prefix/share
bir $prefix/Shared
bağlantı oldu ve bağlantı kurulduktan sonra share
bunun yerine global dizine işaret edildi . Şimdi derleme zamanı sanal alan ve dosya hareketi share
(ve diğer dizinleri) ile uğraşmak için kullanır , ancak okuma bağlantılarından kaynaklanan çalışma zamanı hataları yine de bir sorun olabilir.
Birden çok programın süitleri başka bir sorundur. GoboLinux hiçbir zaman GNOME'u tam olarak çalışmadı ve NixOS'un da inandığını sanmıyorum.
Yani, evet, bu uygulanabilir , ancak:
- Sadece işleri yapmak için çok fazla iş var.
- Bazı yazılımlar hiçbir zaman çalışmayabilir.
- İnsanlar sana komik bakacaklar.
Bunların hepsi sizin için sorun olabilir veya olmayabilir.
14 Sürüm 14.01 /System/Index
, doğrudan üzerine haritalanan kullanır /usr
. Gelecekteki bir sürümün Bağlantılar / Dizin hiyerarşisini bırakabileceğini /usr
ve pano boyunca kullanabileceğini düşünüyorum .
² /bin/sh
Varsayılan olarak var olması gerekir .