2 पॉइंट द्वारा GN⁺ 2023-12-31 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Gentoo ने source-based distribution वाला अपना स्वभाव बनाए रखते हुए, धीमे हार्डवेयर और आसान installation के लिए आधिकारिक binary package download और direct installation उपलब्ध कराया है
  • उपलब्धता architecture के अनुसार अलग-अलग है; amd64 और arm64 पर 20GB से अधिक packages और रोज़ update होने वाले Gentoo stable packages मिल सकते हैं
  • नए stage installation में binary repository की settings शामिल हैं, और मौजूदा installation में /etc/portage/binrepos.conf/ में config file जोड़कर इसका उपयोग किया जा सकता है
  • आधिकारिक packages sign किए जा सकने वाले GPKG format में हैं और verification fail होने पर installation अस्वीकार कर दिया जाता है, लेकिन default settings में compatibility के लिए unsigned XPAK भी अनुमति पा सकता है
  • अगर profile defaults से अलग USE flag combinations इस्तेमाल किए जाते हैं, तो binary packages को वैसे ही उपयोग करना मुश्किल होगा; ज़रूरत के हिस्सों में local compilation के साथ mix करके चलाना होगा

Gentoo अब आधिकारिक binary packages उपलब्ध कराता है

  • Gentoo, Portage द्वारा लंबे समय से supported binary package feature को official download और direct installation के रूप में उपलब्ध कराता है
  • उद्देश्य धीमे hardware पर काम का समय कम करना और overall installation/update की सुविधा बढ़ाना है
  • यह पहले की तरह source-based distribution ही रहेगा, और source builds व binary packages को साथ में इस्तेमाल किया जा सकता है

Architecture के अनुसार उपलब्धता

  • अधिकांश architectures core system और weekly update scope तक सीमित हैं
  • amd64 और arm64 पर अधिक बड़ा package set उपलब्ध है
    • mirrors पर 20GB से अधिक packages उपलब्ध हैं
    • LibreOffice, KDE Plasma, Gnome, Docker आदि शामिल हैं
    • Gentoo stable packages रोज़ update होते हैं

Installation environment के अनुसार setup तरीका

  • मौजूदा Gentoo installation में binary packages इस्तेमाल करने के लिए /etc/portage/binrepos.conf/ में config file बनानी होगी
    • सामान्य प्रक्रिया के लिए Binary package quickstart देखा जा सकता है
    • अधिक विस्तृत settings binary package guide में संकलित हैं
  • नए stage-based installation में /etc/portage/binrepos.conf/gentoobinhost.conf पहले से शामिल है
    • ज़रूरत हो तो src-uri को local mirror की संबंधित directory URI से बदला जा सकता है
    • update example emerge -uDNavg @world है

amd64 और arm64 build criteria

  • amd64/binpackages/17.1/x86-64 के नीचे binary packages निम्न settings से compile किए गए हैं
    • CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
    • सभी amd64 / x86-64 machines पर काम करते हैं
  • amd64 packages की USE flag settings और versions stable package profiles से मेल खाते हैं
    • amd64/17.1/nomultilib
    • amd64/17.1/desktop/plasma/systemd
    • amd64/17.1/desktop/gnome/systemd
  • arm64/binpackages/17.0/arm64 के नीचे packages निम्न settings से compile किए गए हैं
    • CFLAGS="-O2 -pipe"
    • सभी arm64 / AArch64 machines पर काम करते हैं
  • arm64 packages की USE flag settings और versions भी stable package profiles के अनुरूप हैं
    • arm64/17.0
    • arm64/17.0/desktop/plasma/systemd
    • arm64/17.0/desktop/gnome/systemd
  • CPU-specific optimization चाहिए तो पहले की तरह खुद compile करना होगा

अन्य architectures और stage integration

  • अन्य architectures और ABI की binary package hosting stage builds से जुड़ी है
  • लगभग सभी stages के लिए ऐसी binary package hosting उपलब्ध है जिसमें केवल संबंधित stage की contents और settings शामिल हैं
  • इस scope में gcc या clang compiler और पूरा build toolchain शामिल है
  • फिलहाल इस scope को और बढ़ाने की कोई योजना नहीं है

Signature और verification method

  • आधिकारिक binary packages पर stage जैसी ही key से cryptographic signatures लागू हैं
    • signature key जानकारी Gentoo signatures में देखी जा सकती है
  • Portage दो तरह के binary package formats संभालता है
    • XPAK: पुराना format, signature support नहीं करता
    • GPKG: नया format, cryptographic signatures support करता है
  • सभी आधिकारिक Gentoo binary packages GPKG format में हैं
    • GPKG packages के signatures verify किए जाते हैं
    • verification fail होने पर installation अस्वीकार कर दिया जाता है
  • default settings में पुराने binary packages के साथ compatibility के लिए unsigned XPAK packages भी install हो सकते हैं
  • verified signatures को अनिवार्य करने के लिए make.conf में FEATURES="binpkg-request-signature" set करना होगा
    • इस स्थिति में केवल GPKG packages इस्तेमाल किए जा सकते हैं

Signature errors और self-made packages

  • अगर signature verify न हो पाने की error आए, तो root के रूप में Gentoo Trust Tool getuto चलाया जा सकता है
    • command example getuto है
    • यह Portage के लिए आवश्यक Gentoo Release Engineering keyring set करता है
  • अगर make.conf में FEATURES="binpkg-request-signature" active है, तो binary package download से पहले getuto automatic call होता है
    • यह key updates और revocations लाने के लिए होता है
  • self-made binary packages को Portage reject कर सकता है
    • यह FEATURES="binpkg-request-signature" का side effect है
    • self-made packages के लिए signing key set करनी होगी और /etc/portage/gnupg के anchors को उस key पर trust करना होगा

Mirrors, profiles और USE flag constraints

  • download धीमा हो तो University of Oregon के बजाय local mirror का उपयोग recommended है
    • /etc/portage/binrepos.conf की URI edit करना पर्याप्त है
    • cryptographic signatures के कारण local mirror का इस्तेमाल भी सुरक्षित है
  • profile defaults से अलग USE flag combinations इस्तेमाल करने पर संबंधित binary packages इस्तेमाल नहीं किए जा सकते
    • Portage binary packages और locally compiled packages को mix करके उपयोग कर सकता है
    • Gentoo का लक्ष्य पूरी तरह binary-only installation नहीं है
  • packages merged-usr systems पर भी इस्तेमाल किए जा सकते हैं
    • समस्या हो तो bug के रूप में report करना चाहिए
  • अन्य पुराने या नए profile versions के साथ इन्हें उपयोग नहीं किया जा सकता
    • इसी वजह से src-uri path में 17.1 जैसी profile version शामिल होती है
    • नया profile version आने पर अलग नया package directory उपलब्ध कराया जाएगा

~amd64 और issue reporting

  • ~amd64 binary packages उपलब्ध कराने की अभी कोई योजना नहीं है
    • इसके लिए कई rebuilds की जरूरत होगी
    • उपलब्ध कराए भी जाएँ तो technical कारणों से अलग URI चाहिए होगा
  • testing packages चाहिए हों तो stable को जितना संभव हो बनाए रखना और package.accept_keywords में locally add करना recommended है
    • कई binary packages का उपयोग जारी रखा जा सकेगा
    • बाकी को खुद compile करना होगा
  • Portage या किसी specific package से जुड़ी समस्या हो तो IRC, forums, mailing lists पर सलाह ली जा सकती है या bug submit किया जा सकता है
  • binary package support कुछ समय तक test किया गया है, लेकिन users बढ़ने पर edge cases आ सकते हैं

1 टिप्पणियां

 
GN⁺ 2023-12-31
Hacker News की राय
  • पहले ही साफ़ कर दूँ, मैं Gentoo का कट्टर फैन हूँ
    Gentoo की अपील इस बात में नहीं है कि सब कुछ source से compile होता है, बल्कि इसकी शानदार documentation और बहुत कम बाधाओं के साथ लगभग किसी भी hardware पर अपनी पसंद की चीज़ install करने की आज़ादी में है
    अगर आप 2008 के laptop पर Enlightenment + OpenRC + NetworkManager चलाना चाहते हैं, तो Gentoo install कर लीजिए; और अगर smart fridge के root filesystem में ZFS इस्तेमाल करना चाहते हैं, तो Gentoo से वह भी हो सकता है
    नए laptop पर stock Gnome + SystemD चलाना चाहें, तो वह भी संभव है
    binary packages देने का फैसला users को और ज़्यादा विकल्प देने के लिए है, जो दूसरी distributions द्वारा choice की freedom घटाने के उलट है
    Debian खुद को “universal operating system” कहता है, लेकिन उसने 32-bit x86 support बंद कर दिया, और वैकल्पिक init systems install तो किए जा सकते हैं पर काफी झंझट के साथ
    वहीं Gentoo आपको 17 से ज़्यादा stage 3 tarballs और 35 eselect profiles में से चुनने देता है
    निजी तौर पर मुझे सब कुछ source से compile करना और उससे मिलने वाली flexibility पसंद है, और modern hardware पर यह बिल्कुल भी तकलीफ़देह नहीं है
    अगर आप सहमत नहीं हैं, तो नए binary packages install कर सकते हैं
    Gentoo का selling point Portage नहीं, बल्कि हमेशा flexibility और community रहा है

    • यह कहना पूरी तरह सही नहीं है कि Debian ने 32-bit x86 support बंद कर दिया है
      release team meeting में निष्कर्ष कुछ ऐसा था कि किसी अनिश्चित future में 32-bit x86 के लिए installer और kernel support खत्म होने की काफ़ी संभावना है
      अभी दोनों अब भी उपलब्ध हैं और पूरी तरह supported हैं
      खासकर 32-bit/64-bit multi-architecture का उपयोग जारी रखा जा सकता है, इसलिए 32-bit x86 software भी चलाया जा सकता है
    • यह कहना थोड़ा अनुचित है कि दूसरी distributions सक्रिय रूप से choice की freedom खत्म कर रही हैं
      हर कोई सब कुछ support करना चाहता है, लेकिन distribution के तौर पर security और maintenance की गारंटी देने के लिए आखिरकार manage किए जा सकने वाले resources सीमित होते हैं
      कुछ चीज़ें छोड़नी ही पड़ती हैं
      किसी भी Linux distribution में आप अपनी पसंद की चीज़ install कर सकते हैं, लेकिन वास्तव में support कह सकने का दायरा हमेशा maintainers की संख्या से सीमित रहता है
    • कहा जा सकता है कि Debian भी Gentoo जितनी ही architectures support करता है
      https://buildd.debian.org/status/package.php?p=base-files&su...
      मुझे पता है क्योंकि मैं खुद Debian की कई कम-ज्ञात architectures को regular installation snapshots के साथ maintain करता हूँ
      https://cdimage.debian.org/cdimage/ports/snapshots/
      Debian में i386 और amd64 दोनों के लिए Hurd ports भी हैं
    • आजकल ऐसा लगता है कि Gentoo user base का एक हिस्सा Arch ले गया है
    • मैं Gentoo install नहीं कर पाया, खासकर BIOS या UEFI के लिए grub2 bootloader install करने वाले हिस्से में अटक गया
      ऐसा भी नहीं था कि मैंने musl या clang profile इस्तेमाल किया हो
      यही मेरा पहला impression रहा, इसलिए जब तक Gentoo या उसका कोई downstream fork installer नहीं देता, मैं इसे consider नहीं करूँगा
      जल्द ही Solus OS / Solus Linux install करके देखने वाला हूँ; package manager का पहला impression अच्छा था, और वह nix या guix जैसा तरीका नहीं है, लेकिन reproducible होने का दावा करता है
  • मेरे लिए Gentoo की बड़ी अपील Portage है
    यह सिर्फ़ build environment और dependency management से कहीं ज़्यादा देता है
    Ebuilds, यानी Gentoo packages, build की अलग-अलग edge cases को handle करने वाले बेहतरीन tools और Eclass के support से लैस होते हैं
    Ebuild develop करना किसी असली software project पर काम करने जैसा लगता है, और यह उन लोगों के लिए अच्छा है जो official repository में नहीं मौजूद packages के साथ experiment करना चाहते हैं
    संयोग से मैंने अभी-अभी ebuild testing के लिए unprivileged chroot manage करने वाला tool भी release किया है
    यह बदलाव Gentoo को बहुत से लोगों के लिए ज़्यादा accessible बना देगा, लेकिन शायद मेरे लिए नहीं है
    मेरी build settings, जैसे CFLAGS, official binaries से कभी match नहीं करेंगी, इसलिए अंततः मैं इसे इस्तेमाल नहीं करूँगा

    • package flags और features को customize करने वाली बात से सहमत हूँ
      production environment में Gentoo इस्तेमाल करते समय, unused software के साथ features और integration हटाना security posture का अहम हिस्सा बन गया था
      हालांकि मेरे पास हमेशा binaries बनाने के लिए dedicated build host रहा, Gentoo का binary support बहुत अच्छा नहीं था
      compiled artifacts को HTTP या NFS के जरिए बिना signature के serve करना ही लगभग सब कुछ था
      नए package format में cryptographic verification शामिल होगा, यह सुनकर सच में उत्साहित हूँ
      भले ही यह सिर्फ़ internal use के लिए serve किया जाए, यह feature शुरू से होना चाहिए था
    • कम performance वाले devices के लिए यह वाकई अच्छी खबर है
      जब आप अलग से binrepo setup नहीं करना चाहते, खासकर जब cross-compilation शामिल हो, लेकिन फिर भी मौजूदा Portage settings और custom ebuilds reuse करना चाहते हों, तब यह उपयोगी है
    • अगर आपने ebuild testing के लिए unprivileged chroot manage करने वाला tool release किया है, तो ChromeOS का तरीका देखना चाहिए
      ChromeOS bazel का उपयोग करके temporary chroot के अंदर ebuild चलाता है
      https://chromium.googlesource.com/chromiumos/bazel/+/refs/he...
      इससे यह guarantee की जा सकती है कि undeclared dependencies का इस्तेमाल नहीं होता
    • मेरे CFLAGS भी match नहीं करेंगे
      फिर भी plasma से जुड़े packages के लिए common binaries इस्तेमाल करने हेतु override script बनाने का मन हो रहा है
      जिन चीज़ों में speed मायने रखती है, उन्हें खुद build करूँ और GUI-side packages binaries के रूप में ले लूँ, तो build time बहुत बच सकता है
      नुकसान भी बहुत बड़ा नहीं लगेगा
    • अच्छा होगा अगर आप वह tool share कर सकें
      मुझे अपने sandbox project के लिए ऐसी चीज़ की सच में बहुत ज़रूरत थी
  • Gentoo की अवधारणा के बारे में कोई कुछ भी कहे, 17 साल की उम्र में software packaging, distributed compilation, compile-time optimization की बारीकियाँ और Linux kernel optimization सीखने की प्रक्रिया सचमुच मज़ेदार थी
    जहाँ तक याद है, community documentation भी काफ़ी अच्छा था
    मेरे भेजे हुए कुछ patches शायद अभी भी कुछ releases में कहीं मौजूद हों
    लेकिन जब मैंने देखा कि Slackware machine, Gentoo machine जितनी ही तेज़ चल रही है, तभी समझ आया कि तमाम tuning और optimization, और bleeding-edge software उतनी मेहनत के लायक नहीं थे
    कुछ खास apps में, जैसे render farm या cryptocurrency miner, custom compilation और tuning मदद कर सकते हैं, लेकिन games में हर distribution पर वही FPS मिल रहा था

    • CPU-specific optimization की अहमियत समय के साथ कभी बढ़ी, कभी घटी
      पहले lowest common denominator के लिए compile करने पर MMX या SSE तक शामिल नहीं होते थे, और CPU-bound कुछ algorithms में इससे बड़ा फर्क पड़ सकता था
      लेकिन runtime पर CPU features detect करके सबसे बेहतर version चलाना भी हमेशा संभव था, इसलिए compile-time feature selection ही एकमात्र तरीका नहीं था
      बाद में AMD Opteron आने पर सब एक नए baseline पर आ गए
      amd64 के लिए compile करने का मतलब फिर से एक खास CPU था, और उस समय तक उससे नए instructions अभी थे ही नहीं
      आज AMD64 के कई levels[1] हैं, जो SIMD जैसे खास workloads में मायने रख सकते हैं
      एक ज़्यादा साधारण और अक्सर दिखने वाला उदाहरण v2 में जोड़ा गया popcnt है; bitset जैसी चीज़ों में अकेले यह अच्छा है, लेकिन मेरे projects में पूरे program performance के लिहाज़ से v1 और v3 के बीच फर्क मुश्किल से नापा जा सका
      games के मामले में, शायद वे binary-only थे और पहले से lowest common denominator के हिसाब से compile किए गए थे, या runtime feature selection इस्तेमाल करते थे
      ऊपर से ज़्यादातर वैसे भी GPU bottleneck रहे होंगे
      [1] https://en.wikipedia.org/wiki/X86-64#Microarchitecture_level...
  • कुछ साल पहले न जाने क्यों, मैंने Gentoo system compile करने और उसे fine-tune करने में computer time और अपना time घंटों, बल्कि दिनों तक बर्बाद किया
    जबकि अगले ही दिन आई नई Ubuntu CD install करने के लिए मुझे उसे format करना ही था

    • अगर आपने कोई काम किया था और अब नहीं करते, तो इसका मतलब यह नहीं कि वह काम करना गलत था
      जो लोग कभी खुद kernel compile करते थे और अब नहीं करते, वे आज जिन चीज़ों में माहिर हैं, उसमें कम से कम कुछ योगदान इस बात का है कि उन्होंने कुछ समय के लिए वह सब किया था
      एक बार कर लेने के बाद अब उसे न करना ही समझदारी है
      “अगर मैं ज़्यादा समझदार होता तो उस पर समय बर्बाद नहीं करता” कहना, या नए लोगों का इसे उस तरह समझना, सही नहीं है
    • मेरे साथ भी ऐसा ही था, लेकिन इस प्रक्रिया में मैंने सचमुच बहुत कुछ सीखा
      आखिरकार थककर Arch पर चला गया, और हमेशा टूटे हुए packages से लड़ाई किए बिना लगभग वही सब हासिल कर लिया
      फिर भी random low-level issues से निपटते हुए जो knowledge मिली, वह आज भी लगातार काम आती है
    • मेरे साथ भी यही था
      फिर भी बहुत कुछ सीखा
      आजकल Linux मुझे अपनी superpower जैसा लगता है
      OS, VM, containers, Nix-shell, WSL2—सब Linux हैं
      किसी भी command line में आ जाऊँ, कुछ हद तक BSD समेत, तो आराम महसूस करता हूँ और problem solve कर सकता हूँ
      मुझे लगता है Gentoo के साथ बिताए अच्छे समय ने ही मुझे वहाँ तक पहुँचाया
    • Gentoo का सबसे बड़ा आकर्षण हमेशा USE flags था
      CentOS में command-line player mpg123 चलाने के लिए भी पूरा X install करने की मांग होती थी, लेकिन Gentoo में mpg123 का X integration बंद किया जा सकता था
      flags तो उसके ऊपर bonus थे
    • मैं भी एक समय operating system customization को लेकर obsessed था
      अब Debian install करता हूँ, रोज़ इस्तेमाल होने वाले कुछ programs डालता हूँ और बात खत्म
      किसी दूसरी machine पर भी अपना setup 20 मिनट के अंदर फिर से बना सकता हूँ
  • 2000s की शुरुआत में मैंने Gentoo काफी लंबे समय तक इस्तेमाल किया, और Linux machines के बारे में जो लगभग सब कुछ जानता हूँ, वह उसी अनुभव से सीखा
    USE flags में दिलचस्प बात यह थी कि इससे पता चलता था कि कोई package दूसरी libraries या packages के साथ कोई खास integration रखता है
    जब समझ आया कि SQLite3 binary अगर readline support के बिना link हो तो वह वैसा ही व्यवहार नहीं करती, तब मुझे कुल मिलाकर readline क्या है यह समझ आया
    दूसरी Linux systems में हमेशा शामिल दिखने वाली अनगिनत libraries के बारे में ऐसा बार-बार हुआ
    मेरी ज़िंदगी के सही समय पर मिला यह सचमुच एक बहुमूल्य learning tool था

  • थोड़ा अजीब लग रहा है
    कई comments कह रहे हैं कि उन्होंने Gentoo इस्तेमाल किया है या पहले इस्तेमाल करते थे
    लेकिन मैं अभी भी इसे daily driver और मुख्य server के तौर पर इस्तेमाल कर रहा हूँ
    सोचता हूँ, ऐसा क्या अलग है कि Gentoo मेरे लिए सबसे अच्छा है
    और binary packages चालू करने का मेरा इरादा नहीं है

    • आप अकेले नहीं हैं
      GPD Win 4, coreboot वाले Pixelbook, NAS, VPS वगैरह हर device पर Gentoo चला रहा हूँ
      वजहें मुझे ये लगती हैं
      1. अब तक जो भी इस्तेमाल किया, उनमें सबसे अच्छी documentation
      2. असीम customization की संभावना, जिससे system को जितना चाहें उतना minimal या maximal बना सकते हैं
      3. मेरे हिसाब से Portage overlay हमेशा AUR से बेहतर है
      4. init system खुद चुन सकते हैं
        SystemD चाहिए तो इस्तेमाल करें, OpenRC चाहिए तो तुरंत इस्तेमाल करें
      5. स्पष्ट रूप से परिभाषित मूल्यों वाली अच्छी community की ताकत को कम नहीं आँकना चाहिए
        Gentoo में मुझे सुरक्षित और सहज महसूस होता है
        क्योंकि मुझे पता है कि Linux में जिसे मैं सबसे ज़्यादा अहम मानता हूँ, उस freedom का Gentoo हमेशा सम्मान करेगा
        Gentoo किसी choose-your-own-adventure किताब जैसा है
        SystemD + Gnome + PulseAudio + binary packages इस्तेमाल करना चाहें तो कर सकते हैं, और OpenRC + Hyprland + Pipewire + netifrc की जगह NetworkManager इस्तेमाल करना चाहें तो भी कर सकते हैं
        Gentoo सब कुछ compile करने वाला distro नहीं, बल्कि सब कुछ चुनने वाला distro है
        यह announcement मेरे लिए relevant नहीं है, लेकिन users को ज़्यादा choices देता है
    • अगर NixOS नहीं आया होता तो शायद मैं अभी भी Gentoo इस्तेमाल कर रहा होता
      Gentoo भी अच्छा है, लेकिन NixOS system administrator के तौर पर जीना Gentoo system administrator से कहीं आसान है
    • तो फिर यह जानना चाहूँगा कि Gentoo आपके लिए सबसे अच्छा क्यों है
      जवाब देने पर बहस करने का इरादा नहीं है, सच में जिज्ञासा है
      मेरे मामले में Gentoo मेरे लिए क्यों fit नहीं था, यह कहूँ तो मैं personal server नहीं चलाता और काम पर cloud servers इस्तेमाल करता हूँ
      शायद Ubuntu-based या AWS-style होते हैं, लेकिन kernel compile नहीं करता
      desktop पर 10 साल से भी पहले एक दोस्त ने समझाया था कि “यह तुम्हारे hardware के हिसाब से compile होगा, इसलिए तेज़ होगा”, तब मैंने Gentoo try किया था
      install करके चलाने में बहुत समय बर्बाद किया, लेकिन मेरे किसी भी काम में यह साधारण Ubuntu से noticeably तेज़ नहीं था और setup में ही ज़्यादा समय लगा
      इसलिए मैंने छोड़ दिया
      और जो आम तौर पर सुनने को मिलता है कि “Gentoo configure करते हुए बहुत कुछ सीखा”, वह भी मेरे लिए सच नहीं था
      ज़्यादातर लोगों की तरह मैंने recipes follow कीं, ऐसे flags set किए जिन्हें समझता नहीं था और config files छेड़ीं, तो सुरक्षित तौर पर कहूँ तो मैंने कुछ नहीं सीखा
      बस procedure follow किया
      बेशक, मेरा अनुभव ऐसा ही था
    • शायद adult जैसी perseverance की वजह से
      ठीक-ठीक नहीं जानता, लेकिन मैं भी इसे 20 साल से इस्तेमाल कर रहा हूँ
    • बस यह जानना चाहता हूँ कि क्या ऐसी machines भी हैं जो बस ठीक से चलती रहती हैं
      weekly छेड़े जाने वाले daily driver या server नहीं, बल्कि कोई device जिसे बहुत पहले setup किया और उसके बाद से लगातार चलता आया हो
      यानी ऐसा system जिसमें साल में बस कुछ बार login किया जाता हो
      अपना पहला “production” system बनाते समय मैंने Gentoo छोड़ दिया था
      लोग उसे इस्तेमाल करने लगे थे, और इस मायने में वह “complete” था कि अब रोज़ या हर हफ्ते login करने की वजह नहीं बची थी
      security updates मैं फिर भी चाहता था, और बहुत कम बार नए features के लिए नए packages की ज़रूरत पड़ती थी, लेकिन मूल रूप से मुझे stable system चाहिए था
      Gentoo इस use case के लिए बेहद खराब fit था
      personal desktop पर भी मैं weekly update करता था, और लगभग हर बार emerge build failure होता था; ऐसा system जिसे कई महीनों तक update न किया जाए, और भी खराब होगा
      इसलिए Debian पर चला गया और अच्छा रहा
      खासकर unattended upgrades अच्छा लगा, और आखिर में सभी machines Debian पर shift कर दीं
      अगर आप Gentoo इस्तेमाल करते हैं, तो जानना चाहूँगा कि क्या ऐसी machines भी हैं जिन्हें weekly नहीं छेड़ते, कितनी बार update करते हैं, और updates पूरा करने के लिए कितनी बार manual intervention चाहिए होती है
  • बहुत कम, और 15 साल देर से
    15 साल से ज़्यादा पहले Gentoo से FreeBSD पर जाने की एक वजह यह थी कि Gentoo में सब कुछ compile करना पड़ता था, जबकि FreeBSD binary packages देता था
    आज यह इतना अहम नहीं हो सकता, लेकिन एक CPU core और 1GB RAM के दौर में यह game changer था

    • दुख की बात है कि यह पूरी तरह सही है
      Gentoo लंबे समय तक इस्तेमाल करने के बाद मैं कुछ सालों के लिए macOS पर चला गया, और उस समय Gentoo prefix इस्तेमाल किया, जो Homebrew से कहीं बेहतर था
      लगभग 10 साल पहले macOS के Gentoo prefix में upstream llvm चलाने के लिए मैंने patches जोड़े थे [1]
      GSoC reunion event में आखिरकार एक ऐसा व्यक्ति मिला जो मुझे maintainer permissions देना चाहता था, लेकिन बात अंत तक नहीं पहुँची
      उसने पहले ही चेतावनी दी थी कि यह काम जटिल होगा
      मैं लगातार कहता रहा कि prefix को भी binaries चाहिए
      सोचता हूँ कि अगर Mac पर Gentoo prefix Homebrew जितनी आसानी से packages install कर पाता, तो कैसा होता
      दुखद है, लेकिन Gentoo इसका अच्छा उदाहरण है कि कोई technically superior open source project भी अगर बुनियादी end-user convenience को नज़रअंदाज़ करे और अच्छी governance न हो, तो inferior solutions को पछाड़कर survive नहीं कर सकता
      मुझे लगता है कि opensolaris/illumos भी लगभग life support पर पहुँचने की वजह कुछ ऐसी ही है
      ज़िम्मेदार लोग elitism से आगे नहीं बढ़ पाए, और community participation के लिए kernel build में समझ से बाहर makefile/shell spaghetti की 100 layers से सरल कुछ चाहिए, यह फैसला नहीं कर पाए
      [1] https://github.com/fishman/timebomb-gentoo-osx-overlay/tree/...
    • क्या यह सचमुच बहुत देर से है?
      Gentoo हमेशा niche Linux community के अंदर भी niche रहा है, फिर भी लगता है कि यह मज़े से चलता आ रहा है
      इसमें समस्या क्या है?
  • यह सोचकर सिहरन होती है कि एक ही software को बार-बार बेवजह compile करने में कितना बिजली बिल और greenhouse gas निकली होगी

    • वेब से जुड़ने वाले अरबों devices पर वही JavaScript software लगातार बेवजह compile होने से जो energy और greenhouse gas बर्बाद होती है, उससे शायद कई orders of magnitude कम ही होगा
    • gaming जैसी activities की औसत power consumption से तुलना करें तो शायद यह कोई meaningful मात्रा नहीं होगी
    • शायद इतना ज़्यादा नहीं होगा
      Gentoo भी Red Hat या Ubuntu जितना व्यापक रूप से इस्तेमाल नहीं हुआ
      ऊपर से, अगर computer वैसे भी चालू था, तो CPU power usage rotary HDD या monitor वगैरह के मुकाबले rounding error जैसा ही है
    • hobby के हिसाब से देखें तो यह सबसे खराब चीज़ों से बहुत दूर है
      कुछ लोग kilowatt-class gaming PC पर दिन में 12 घंटे game खेलते हैं, या track पर कार चलाते हैं, या बहुत fuel खाने वाली boats में घूमते हैं
    • इसकी बहुत संभावना है कि यह Windows 10 users से 24 घंटे लगातार personal data इकट्ठा करने के लिए Microsoft जितनी power खर्च करता है, उसके 1% के भी बेहद छोटे हिस्से के बराबर हो
  • Gentoo को शानदार बनाने वाली बात यह है कि इसे शुरुआत से ही इस तरह design किया गया है कि मैं अपने system में चाही गई छोटी-सी tweak आसानी से जोड़ और maintain कर सकूं
    मैंने जितनी भी दूसरी distributions इस्तेमाल की हैं—सारी major distributions और कई छोटी distributions—वे default state में ज़्यादा अच्छा काम करती लगती हैं, लेकिन तय रास्ते से हटते ही भारी तकलीफ शुरू हो जाती है
    अच्छी तरह tuned Gentoo system बस अच्छे से चलता है™
    यहां “अच्छे से चलता है” का आपके लिए व्यक्तिगत तौर पर जो भी मतलब हो, उससे फर्क नहीं पड़ता
    यह Arch के upstream को overwrite करने का फैसला लेने पर होने वाला python 2to3 name collision हो सकता है, या SystemD द्वारा kernel mode में बहुत सारे गैर-जरूरी काम करने से पैदा होने वाली system core latency problem हो सकती है
    इसकी कई कमियों के बावजूद मैं Gentoo का बहुत संतुष्ट user हूं
    upstream binary packages उस freedom का बस एक और extension हैं
    कुछ major projects के binary versions पहले से थे, या आप अपना build server बना सकते थे, लेकिन अगर और binaries आसानी से इस्तेमाल किए जा सकें, तो हर छोटी चीज़ build करने के भारी time burden के बिना कहीं ज़्यादा लोग इसका फायदा उठा पाएंगे
    अगर किसी खास package के लिए ज़्यादा flexibility चाहिए—जैसे patches या use flags—तो वह अब भी संभव है और maintain करना भी आसान है
    यह बड़ी जीत है

  • एक समय Gentoo के लिए वाकई सही दौर था, जब वह बेहद smooth चल रहा था
    useflag न बहुत ज़्यादा थे, न बहुत कम, और वे दिन थे जब सर्दियों की ठंडी रातों में dorm room बहुत ठंडा होने पर Open Office को फिर से compile किया जाता था

    • शायद HN ही ऐसी जगह है जहां Gentoo की किसी भी state को बिना irony के “बस एकदम smoothly चला” कहकर याद किया जा सकता है
      यह बात प्यार से कह रहा हूं