GoboLinux, distro Linux eksperimental yang memakai sistem berkas sebagai basis data paket
(gobolinux.org)- Ini adalah distro eksperimental yang secara besar mengubah konvensi direktori distro Linux tradisional, sehingga konfigurasi sistem dipahami dengan berfokus pada direktori per program
- Alih-alih basis data paket terpisah, distro ini menjadikan sistem berkas itu sendiri sebagai basis data, dan program ditempatkan per versi di jalur seperti
/Programs/Nano/8.3 - Rilis terbaru 017.01 adalah pembaruan perbaikan bug yang hadir sekitar 5 tahun setelah rilis ISO sebelumnya, menangani beberapa masalah penting selama periode tersebut
- Pendiri Hisham Muhammad mundur setelah 25 tahun mengelola proyek, dan proyek ini kini diteruskan oleh pengguna GitHub
@fyrak1s - Dapat dijalankan langsung sebagai lingkungan Live atau diinstal ke hard drive, sehingga pengguna bisa benar-benar mencoba struktur sistem berkas yang berbeda dari distro umum
Cara menyusun paket dengan sistem berkas
- GoboLinux adalah distro Linux eksperimental yang mendefinisikan ulang seluruh hierarki sistem berkas
- Intinya adalah menggunakan sistem berkas sebagai basis data tanpa memiliki basis data paket terpisah
- Setiap program ditempatkan di direktori miliknya sendiri
- Contohnya adalah
/Programs/Nano/8.3,/Programs/GCC/14.2.0
- Karena strukturnya berbeda dari distro Linux pada umumnya, pengguna yang baru pertama kali mencobanya sebaiknya membaca dokumentasi terlebih dahulu
Rilis 017.01 dan pergantian pengelola proyek
- Versi saat ini adalah 017.01
- Merupakan lingkungan Live yang dapat dijalankan dari USB drive dan DVD
- Juga dapat diinstal ke hard drive
- ISO dapat diunduh dari Downloads
- v017.01 adalah pembaruan perbaikan bug yang dirilis setelah jeda sekitar 5 tahun
- Menangani beberapa masalah penting yang muncul sejak rilis ISO sebelumnya
- Perubahan lebih rinci dapat dilihat di release notes
- Pengelolaan proyek juga berubah
- Pendiri sekaligus pemimpin GoboLinux selama 25 tahun, Hisham Muhammad, resmi mundur
- Proyek akan terus berjalan di bawah pengelolaan
@fyrak1s - Lucas Correia Villa Real, dengan alias
paranoidd, telah memelihara GoboLinux bersama Hisham hingga Juni 2021
- Pusat komunitas terbagi ke chat, forum, dan wiki
- Zulip Chat dan kanal IRC
#gobolinuxdiirc.libera.chat - GoboLinux forum
- GoboLinux wiki
- Zulip Chat dan kanal IRC
1 komentar
Pendapat Hacker News
Jika Anda termasuk orang yang merasakan penolakan spontan yang kuat terhadap rancangan GoboLinux, dokumen berusia 20 tahun “I am not clueless”¹ memuat cukup banyak latar belakang dan logikanya
Rasa penolakan saya belum sepenuhnya hilang, tetapi tidak sekuat dulu ;)
¹ https://gobolinux.org/doc/articles/clueless.html
Ringkasnya kira-kira: “Kami tahu kami berbeda. Ini sangat sederhana. Mungkin terasa asing, tetapi mudah dipahami dan ditangani. Tidak harus dipakai. Kami menyukai ini dan puas dengannya”
make all programs relocatablepada tulisan yang ditautkan, disebutkan bahwa semua aplikasi harus ditulis ulang dengan memakailibprefix; saya penasaran apa yang dimaksud denganlibprefixdi siniPencarian web tidak menghasilkan sesuatu yang berguna
Misalnya, banyak reaksi pertama muncul dari penggunaan huruf kapital;
Programsdengan P besar mengingatkan padaProgram Filesdi Windows, sehingga memicu penolakan secara emosionalKalau harus mengetik
LibX11alih-alihlibx11, rasanya mungkin agak menyebalkan jugaFilesystem Linux biasanya membedakan huruf besar-kecil, tetapi nama paket kemungkinan akan menghindari duplikasi yang hanya berbeda kapitalisasi, dan kecil kemungkinan distro yang menargetkan lapisan ramah pengguna menaruh direktori di root yang hanya berbeda huruf besar-kecil
Meski begitu, kalau contohnya adalah
/packages/libx11/1.6.9,/packages/gcc/9.2.0, reaksi awal saya rasanya akan jauh lebih ringan, dan manfaatnya sama sekali tidak akan berkurang dengan penamaan seperti ituSungguh disayangkan ide GoboLinux tidak mengakar di komunitas Linux arus utama
Struktur filesystem Linux benar-benar berantakan
Membuatnya bekerja dengan benar selalu tidak sepele, dan membuatnya efisien bahkan lebih sulit
Baru dalam beberapa tahun terakhir saya merasa model ini benar-benar mendekati level yang dapat dipertahankan untuk sebagian besar distribusi perangkat lunak
Model GoboLinux mengharuskan direktori versi seperti
/Programs/Xorg/7.0dikelola secara manual, sedangkan Nix menghilangkan masalah itu dengan menentukan jalur instalasi paket dari hash resep build/homedan/tmpSisanya lebih mirip tumpukan barang campur aduk tempat apa pun bisa ditaruh di mana saja
GoboLinux adalah proyek pertama yang menunjukkan bahwa di Linux kita benar-benar boleh melakukan sesuatu sesuai keinginan
/optdan/srv, serta/usr/local/opttergantung selera, cukup banyak memberikan kelebihan seperti GoboLinux dalam mengelola komponen satu per satuDari sudut pandang distro, semuanya masuk akal dengan caranya sendiri
Jika mengetik
dpkg -S this-file, kita bisa cepat tahu mengapa sebuah file di dalam/usrada di sana, dan distro berperan memberi gambaran keseluruhanSaya penasaran bagian mana yang Anda anggap paling berantakan
Menarik bahwa mereka menjaga kompatibilitas dengan warisan Unix secara transparan dengan memetakan jalur tradisional ke jalur padanan GoboLinux
Tidak ada sihir khusus;
/binadalah tautan ke/System/Index/bin, dan/usr/binserta/usr/sbinjuga demikian, semua direktori “biner” menunjuk ke tempat yang samaKarena itu file tetap bekerja saat diakses lewat jalur standar mana pun, sehingga justru bisa lebih kompatibel daripada distro biasa, ketika file sebenarnya ada di
/usr/local/bin/footetapi skrip merujuk ke/usr/bin/foolalu rusakSaya bertanya karena kurang tahu: apakah macOS sampai batas tertentu bekerja seperti ini?
Saya sangat menyukai cara aplikasi selalu tampak seperti satu “file” yang dikelola dengan drag-and-drop
Saat mencoba memahami sesuatu berada di mana dan dipasang ke mana di Ubuntu, saya merasa seperti orang bodoh
Saya mengerti alasannya
Struktur direktori instalasi Linux rata-rata adalah labirin yang membingungkan bahkan bagi orang teknis, apalagi bagi pengguna umum yang menjadi target distro besar
Namun pada akhirnya itu menangani gejala, bukan penyebabnya, dan menurut saya lebih banyak distro Linux perlu serius memikirkan modernisasi struktur filesystem seperti Gobo
Saya juga ada keinginan untuk mencobanya sendiri
Tujuannya adalah membuat struktur yang cukup masuk akal dan menjelaskan dirinya sendiri, mengarahkan pemula menjauh dari area berbahaya, serta tetap aman meski file manager hampir tidak menyembunyikan apa pun
~/LibraryKasus seperti launcher Minecraft, ketika semua hal termasuk world dan file simpanan berada di dalam bundle, jadi menarik
~/Librarydan/LibraryDi macOS pun tidak jarang kita harus mengikuti instruksi penghapusan manual beberapa langkah untuk menghapus sebagian aplikasi
Ini khususnya penting kalau aplikasinya menambahkan item login
Add/Remove Programs di Windows setidaknya menyediakan titik pusat untuk menjalankan uninstall, dan sebagian besar aplikasi mengikutinya dengan benar
Apakah hal yang sama tidak bisa dilakukan dengan
dpkg?Saya kurang suka nama direktori pertama diawali dengan huruf kapital
Saat menelusuri path, rasanya seperti pekerjaan tambahan, dan harus menekan Shift bersama huruf atau angka setiap kali itu cukup merepotkan dalam penggunaan command line sehari-hari
/Programsmemerlukan jumlah penekanan tombol yang persis sama dengan/usrCukup slash, huruf kecil p, lalu Tab
Ia tidak memaksa pengguna mengorbankan usability demi menghemat tick dan memori berharga milik PDP-11
Selalu lucu melihat para penggemar “case-sensitive itu terbaik!” melewatkan fakta bahwa itu hanya hasil dari keterbatasan sistem aslinya
Itu bukan fitur
Lagi pula bagian ini dibahas secara eksplisit
Cukup
set completion-ignore-case Onsaja hidup jadi jauh lebih baikKarena meskipun tidak memakai GoboLinux, Anda jadi tidak perlu menekan Shift sekali untuk setiap nama file yang diawali huruf kapital
Atau silakan saja terus hidup seperti tahun 1977
VT100 Anda, aturan Anda
Belakangan saya melihat komentar seperti “kenapa untuk navigasi biasa tidak memakai bash apa adanya saja dan malah memasang shell lain”; itu berarti dia bahkan tidak benar-benar memahami shell-nya sendiri
Lagi pula shell apa pun bisa menyediakan autocomplete yang mengabaikan kapitalisasi, dan Fish melakukannya secara bawaan
Terasa seperti Windows
Proyek ini punya potensi besar untuk mengurangi beban kognitif kita
Semoga berhasil
Sunting: ternyata ini proyek berusia 20 tahun
https://github.com/gobolinux/Recipes/commits/master/
Saking masuk akalnya sampai bikin terharu
Urusan deduplikasi beberapa salinan library, kalau memang benar-benar diperlukan, biar filesystem yang menanganinya
Pada akhirnya itu duplikasi di tingkat file, jadi harus diselesaikan di tingkat itu
Aplikasi closed source yang sangat buruk mengharapkan terlalu banyak dari sistem pengguna
Klien Steam adalah contohnya: ia menyediakan skrip
bash, bukan skripsh; sangat mengasumsikan tata letak file ala Debian/Ubuntu karena kebutuhan kontainer userspace mount di Linux; dan bahkan menuntut berbagai opsi aneh khusus GNU dari beberapa perintahLibrary 32-bit juga banyak
Meski begitu, tampaknya ABI masih mereka kendalikan, mungkin dengan memakai direktif
.symverdari binutils gasSetidaknya kekacauan saat ini sedang dijejalkan Steam ke tenggorokan kita, dan sulit dihindari kecuali distribusinya memang tidak untuk bermain game
Bahkan di kelompok gamer, cukup banyak yang kemungkinan punya PC khusus gaming terpisah
Saya ingin seseorang yang jauh lebih pintar daripada saya menjelaskan kenapa ini lebih baik daripada distribusi seperti snap/Flatpak atau NixOS, atau apakah memang lebih baik
Dari tampilan luar, tanpa pemahaman mendalam, cara ini terlihat paling sederhana
Tentu saja ini saya katakan dengan asumsi pengetahuan saya terbatas
Ada alasan mengapa Flatpak dan NixOS lebih kompleks
Misalnya, mereka tidak menyimpan dependensi dengan versi yang persis sama secara berulang di disk
Saya memakai tanda kutip karena ada isu keamanan
NixOS merusak kompatibilitas dengan program yang sudah ada, sedangkan Gobo tidak
Namun repositori paket NixOS jauh lebih terkelola dibanding Gobo, sementara pihak Gobo tidak lengkap dan tertinggal bertahun-tahun
Meski begitu, semua yang disebutkan di sini masih tertinggal dari cara Android menyimpan aplikasi
Di Android, tiap aplikasi bisa didistribusikan sebagai satu file yang mudah disebarkan, tersandbox dengan benar, dan memiliki direktori sendiri
Hal lain yang terlewat oleh pendekatan-pendekatan lain: tiap aplikasi punya subdirektori di bawah direktori aplikasi untuk menyimpan state-nya sendiri, dan juga dipisahkan per pengguna
Para pengembang GoboLinux benar-benar membuat penataan filesystem yang dapat dipahami manusia menjadi “cerdas”
Menurut saya, konvensi UNIX kuno yang digunakan saat ini cukup membingungkan di era ketika kita tidak lagi memiliki batasan seperti batas nama 8.3, kekurangan ruang penyimpanan, atau masalah file lebih dari 1GB
Dulu saya menjalankan GoboLinux 012–015 selama beberapa tahun di server yang meng-hosting perangkat lunak version control, dan secara umum sangat bagus
Kendalanya adalah jika paket yang dibutuhkan tidak ada, kita harus membuat recipe
Bahasa penulisan recipe GoboLinux sendiri mudah dipahami, tetapi satu paket sering bergantung pada belasan atau puluhan library, jadi saya menghabiskan banyak waktu untuk melacaknya, mencocokkan versi, mencari URL library dan paket, lalu membuat recipe lagi
Pada akhirnya saya pindah ke Debian, tetapi sampai sekarang saya masih agak tersentak ketika melihat file konfigurasi ada di
/etcdan binary masuk ke/usr/binatau/usr/local/binSaya termasuk yang menganggap systemd merepotkan dan seperti gurita
Sering kali saya memakai
finduntuk mencari file.serviceterkait, tidak bisa percaya bahwa semuanya ada di satu tempat, dan command line-nya juga tidak intuitifSebaliknya, di Gobo kumpulan skrip untuk mengelola service sangat sederhana dan mudah ditangani
Meski begitu, kemudahan untuk langsung memasang apa yang dibutuhkan dengan
apt getataudpkg -imengalahkan desain cerdas GoboLinux yang jauh lebih masuk akalSekarang jumlah distribusi Linux yang didukung sudah berkurang dari pilihan yang dulu tak terhitung banyaknya; hampir selalu Debian atau Ubuntu disertakan secara default, jadi kecil kemungkinan tidak bisa memasang paket atau program meskipun di luar repositori
macOS juga jelas memakai pendekatan yang agak mirip dengan GoboLinux, dan karena itu sebelum versi-versi terbaru yang cukup tidak ramah pengguna, macOS cukup mudah ditangani dari command line
Misalnya, USB drive ada di
/Volumes, dan file konfigurasi program ada di bawah~/Librarysystemctl status foosaja akan memberi tahu secara tepat file apa saja yang terlibat mulai dari baris keduaMisalnya, output
systemctl status getty@tty1.servicemenampilkan sesuatu sepertiLoaded: loaded (/lib/systemd/system/getty@.service; enabled; preset: enabled), sehingga/lib/systemd/system/getty@.servicelangsung bisa diketahui