
આર્ક લિનક્સમાં પેકેજ મેનેજમેન્ટ ઘણા વર્ષોથી ફરતું રહ્યું છે પેકમેન અને લિબાલ્પીએમપરંતુ તાજેતરમાં એક એવી પહેલ સામે આવી છે જે શરૂઆતથી જ પરિસ્થિતિ બદલી રહી છે.: પ્રોજેક્ટ ALPMName રસ્ટમાં લખાયેલ. આ સાધનોનો નવો સમૂહ તે ફક્ત પહેલાથી અસ્તિત્વમાં છે તે જ નકલ કરતું નથી, પરંતુ પેકેજો, ભંડારો અને સહીઓથી સંબંધિત દરેક વસ્તુનું વર્ણન, ચકાસણી અને સ્વચાલિતકરણ કેવી રીતે થાય છે તે ફરીથી વ્યાખ્યાયિત કરવાનો પ્રયાસ પણ કરે છે.
ALPM પ્રોજેક્ટ ફક્ત "પેક-મેન રિપ્લેસમેન્ટ" બનવાથી દૂર, એક બની ગયો છે સંપૂર્ણ પેકેજ મેનેજમેન્ટ ફ્રેમવર્ક આર્ક અને તેના જેવા વિતરણો માટે. તેમાં ઔપચારિક સ્પષ્ટીકરણો, રસ્ટ લાઇબ્રેરીઓ, કમાન્ડ-લાઇન ઉપયોગિતાઓ, પાયથોન બાઈન્ડિંગ્સ, અત્યંત લવચીક લિન્ટિંગ સિસ્ટમ અને ક્રિપ્ટોગ્રાફિકલી સહી કરેલ કલાકૃતિઓની ચકાસણી માટે એક નવું મોડેલ પણ શામેલ છે. આ બધું ખૂબ જ સ્પષ્ટ ધ્યાન સાથે: સુરક્ષા, પ્રજનનક્ષમતા અને આધુનિક વિકાસકર્તા સાધનો.
ALPM શું છે અને આર્ક લિનક્સમાં તે શા માટે મહત્વપૂર્ણ છે?
આ શબ્દ ALPM (આર્ક લિનક્સ પેકેજ મેનેજમેન્ટ) તે આર્ક લિનક્સમાં સંપૂર્ણ પેકેજિંગ પ્રક્રિયાનો સંદર્ભ આપે છે: અપસ્ટ્રીમ પ્રોજેક્ટ્સમાંથી સ્ત્રોતો મેળવવા, તેમને બનાવવા (જ્યારે યોગ્ય હોય), પરિણામોને ચોક્કસ પેકેજ ફોર્મેટમાં જૂથબદ્ધ કરવા (alpm-પેકેજઅને તે પેકેજો વિતરણના વપરાશકર્તાઓને વિતરિત કરો. બાઈનરી પેકેજો માટે વપરાયેલ ફોર્મેટ ખુલ્લું છે, જાહેરમાં દસ્તાવેજીકૃત અને ફરીથી વાપરી શકાય તેવું અન્ય વિતરણો અથવા પ્લેટફોર્મમાં.
આ ઇકોસિસ્ટમમાં, આપણે સ્પષ્ટપણે અનેક પ્રકારના ભંડારો વચ્ચે તફાવત કરી શકીએ છીએ. એક આલ્પમ-સોર્સ-રેપો તે સોર્સ કોડ રિપોઝીટરી (સામાન્ય રીતે ગિટ રેપો) છે જેમાં સ્ક્રિપ્ટો હોય છે PKGBUILD અને, વૈકલ્પિક રીતે, એક ફાઇલ એસઆરસીઆઈએનએફઓ PKGBUILD માંથી મેળવેલા મેટાડેટા સાથે. તે સ્ત્રોતમાંથી, એક અથવા વધુ પેકેજ ફાઇલો બનાવવામાં આવે છે. alpm-પેકેજબીજી ચરમસીમાએ છે અલ્પ-રેપો, જે પૂર્વ-નિર્મિત પેકેજો, તેમના સહીઓ અને ડેટાબેઝ ફાઇલો સાથે બાઈનરી રીપોઝીટરી (ઉદાહરણ તરીકે, વેબ દ્વારા સેવા આપતી ડિરેક્ટરી) છે. આલ્પમ-રેપો-ડીબી જે રેપોની સ્થિતિનું વર્ણન કરે છે.
વચ્ચે જોડાણ alpm-source-repo, alpm-package અને alpm-repo-db તે મેટાડેટા ફાઇલોના નેટવર્ક પર આધારિત છે: PKGBUILD અને SRCINFO શરૂઆતમાં, બિલ્ડિનફો, પીકેજીએનફો અને એએલપીએમ-એમટીઆરઇ પેકેજની અંદર, અને પછીથી alpm-repo-desc અને alpm-repo-ફાઇલો રીપોઝીટરી ડેટાબેઝમાં. બદલામાં, જ્યારે પેકેજ સિસ્ટમ પર ઇન્સ્ટોલ થાય છે, ત્યારે સ્થાનિક ડેટાબેઝ અલ્પ-ડીબી (libalpm/pacman દ્વારા સંચાલિત) તેની પોતાની ફાઇલોનો સમૂહ સંગ્રહિત કરે છે. alpm-db-desc અને alpm-db-ફાઇલો, દરેક ઇન્સ્ટોલ કરેલા પેકેજની સ્થિતિ જાળવી રાખવી.
ALPM પેકેજ જીવનચક્ર: PKGBUILD થી સિસ્ટમ સુધી
તે બધા એક માં શરૂ થાય છે PKGBUILD સાથે alpm-source-repoઆ સ્ક્રિપ્ટ બિલ્ડ પર્યાવરણને વ્યાખ્યાયિત કરે છે: સ્ત્રોતો, સંકલન અને રનટાઇમ નિર્ભરતાઓ, બિલ્ડ પગલાં, પરીક્ષણ અને ઇન્સ્ટોલેશન, તેમજ નામ, સંસ્કરણ, વર્ણન, URL, લાઇસન્સ અને જૂથો જેવા મૂળભૂત મેટાડેટા. PKGBUILD નું એક લાક્ષણિક ઉદાહરણ એક જ ડેટા ફાઇલ બનાવી શકે છે અને તેને નીચે ઇન્સ્ટોલ કરી શકે છે / usr / શેર અને રૂપરેખાંકન ફાઇલ રજીસ્ટર કરો / વગેરે.
તે PKGBUILD માંથી એક ફાઇલ જનરેટ થાય છે. એસઆરસીઆઈએનએફઓ જે ઘોષણાત્મક રીતે સંબંધિત મેટાડેટા માહિતી (pkgbase, pkgname, સંસ્કરણ, લાઇસન્સ, આર્કિટેક્ચર, URL, વગેરે) એકત્રિત કરે છે. આ રજૂઆત એવી રીતે ડિઝાઇન કરવામાં આવી છે કે AUR અથવા ઓટોમેશન સ્ક્રિપ્ટ્સ જેવા સાધનો PKGBUILD ને એક્ઝિક્યુટ કર્યા વિના સરળતાથી માહિતી વાંચી શકે છે, જે માટે ચાવીરૂપ છે. સુરક્ષા અને સ્થિર વિશ્લેષણ.
બાંધકામ પ્રક્રિયા સામાન્ય રીતે આના દ્વારા ગોઠવવામાં આવે છે makepkgજે PKGBUILD બેશ સ્ક્રિપ્ટો પર આધાર રાખે છે. આદર્શરીતે, બિલ્ડ એવા વાતાવરણમાં થવું જોઈએ અલગ અને પુનઃઉત્પાદનક્ષમ (chroots, કન્ટેનર, અથવા વર્ચ્યુઅલ મશીનો) જેમાં ફક્ત જરૂરી નિર્ભરતાઓ હોય છે. એકલા Makepkg અત્યંત સ્વચ્છ વાતાવરણની ગેરંટી આપતું નથી, તેથી Arch ઉપયોગ કરે છે... pkgctl, જે ક્લીન ક્રુટ્સનો ઉપયોગ કરીને જનરેટ કરે છે systemd-nspawn અને તેમની અંદર makepkg લોન્ચ કરે છે. આ આશ્ચર્ય ઘટાડે છે અને પ્રજનનક્ષમતામાં સુધારો કરે છે.
ના તબક્કા દરમિયાન ડાઉનલોડ અને ચકાસણીસ્ત્રોતો (સ્થાનિક, દૂરસ્થ, અથવા સંસ્કરણ નિયંત્રણ સિસ્ટમોમાં) ડાઉનલોડ કરવામાં આવે છે અને લૉક કરેલા ચેકસમ (PKGBUILD માં વ્યાખ્યાયિત) સામે તપાસવામાં આવે છે. આ માત્ર એ સુનિશ્ચિત કરવામાં મદદ કરે છે કે સ્ત્રોતોમાં કોઈ ફેરફાર કરવામાં આવ્યો નથી, પરંતુ તે પાયાના પથ્થરોમાંનો એક છે. પુનઃઉત્પાદનક્ષમ રચનાઓ અને સામે સ્પષ્ટ બચાવ સપ્લાય ચેઇન હુમલાઓવધુમાં, દરેક મૂળ લેખકને પ્રમાણિત કરવા માટે ક્રિપ્ટોગ્રાફિક સહી સાથે રાખી શકાય છે.
ઘણા કિસ્સાઓમાં તેમની જરૂર પડે છે સ્ત્રોતોમાં ફેરફાર કમ્પાઇલ કરતા પહેલા: ભૂલો સુધારવા માટે પેચ, ચોક્કસ આર્કિટેક્ચર માટે ગોઠવણો, અથવા સિસ્ટમમાં સોફ્ટવેરને વધુ સારી રીતે એકીકૃત કરવા માટે ફેરફારો. આ બધું સામાન્ય રીતે ડાઉનલોડ અને ચકાસણી પછી તૈયારીના તબક્કામાં કરવામાં આવે છે.
ના મંચ બિલ્ડ કરો તે બાયનરી, અનુવાદો અને અન્ય કલાકૃતિઓનું નિર્માણ કરવાનું સંચાલન કરે છે: PKGBUILD માં જાહેર કરાયેલ નિર્ભરતાઓનો ઉપયોગ કરીને યોગ્ય સંકલન સિસ્ટમ (મેસોન, cmake, ઓટોટૂલ્સ, ભાષા-વિશિષ્ટ સાધનો, વગેરે) નો ઉપયોગ કરવામાં આવે છે. પછી, લક્ષ્ય વાતાવરણમાં આઉટપુટ યોગ્ય રીતે કાર્ય કરે છે તેની ખાતરી કરવા માટે ઉપલબ્ધ પરીક્ષણો ચલાવવામાં આવે છે.
છેલ્લે, ના તબક્કામાં કામચલાઉ વૃક્ષની અંદર સ્થાપનબધી જનરેટેડ ફાઇલો ખાલી ડિરેક્ટરીમાં કોપી કરવામાં આવે છે જે લક્ષ્ય સિસ્ટમના રુટનું અનુકરણ કરે છે. ALPM-વિશિષ્ટ મેટાડેટા ફાઇલો પણ અહીં બનાવવામાં આવે છે. બિલ્ડિનફો (બાંધકામ વાતાવરણનું વિગતવાર વર્ણન), પીકેજીઆઈએનએફ (પેકેજ મેટાડેટા, જેમ કે સંસ્કરણ, કદ, નિર્ભરતાઓ, અથવા લાઇસન્સ) અને ALPM-MTRE (મોડ્સ, માલિકો, ચેકસમ, વગેરે સાથે ફાઇલ ટ્રી). જો PKGBUILD એક જ બેઝમાંથી બહુવિધ પેકેજો જનરેટ કરે છે, તો બહુવિધ આઉટપુટ ડિરેક્ટરીઓ બનાવવામાં આવે છે, અને alpm-પેકેજ તેમાંના દરેક માટે.
દરેક આઉટપુટ ડિરેક્ટરી જનરેટ કરે છે a ALPM પેકેજ ફાઇલજે મૂળભૂત રીતે એક વૈકલ્પિક રીતે સંકુચિત ટાર ફાઇલ છે જેમાં ડેટા ટ્રી, મેટાડેટા ફાઇલો (BUILDINFO, PKGINFO, ALPM-MTREE) અને, જો લાગુ પડે, તો ઇન્સ્ટોલેશન સ્ક્રિપ્ટ હોય છે. .ઇન્સ્ટોલ કરો (alpm-install-scriptlet). આ પેકેજોને વિવિધ તકનીકોનો ઉપયોગ કરીને અનકમ્પ્રેસ અથવા કોમ્પ્રેસ કરી શકાય છે: .gz, .bz2, .xz, .zst, .lz4, .lzo, .lz, .lrz, .Zવગેરે, ની ગોઠવણી પર આધાર રાખીને makepkg.conf ડાઉનલોડ કરો (ચલો COMPRESSBZ2, COMPRESSGZ, COMPRESSZST, PKGEXT, વગેરે).
એકવાર બન્યા પછી, પેકેજ હોઈ શકે છે અલગ સહીઓનો ઉપયોગ કરીને OpenPGP સાથે સહી કરેલસહી એ બીજી ફાઇલ છે જે પ્રત્યય ઉમેરે છે .sig પેકેજ નામ પર (ઉદાહરણ તરીકે, shadow-4.18.0-1-x86_64.pkg.tar.zst.sig). આ પેકેજ મેનેજરને પેકેજરના OpenPGP પ્રમાણપત્રનો ઉપયોગ કરીને પછીથી અધિકૃતતા ચકાસવાની મંજૂરી આપે છે.
ALPM પેકેજનું આંતરિક માળખું અને સંબંધિત ફોર્મેટ
ALPM-આધારિત પેકેજો સ્પષ્ટપણે વચ્ચે તફાવત કરે છે મેટાડેટા, સ્ક્રિપ્ટો અને ડેટા ફાઇલોટાર આર્કાઇવની રૂટ ડિરેક્ટરીમાં હંમેશા ત્રણ ફાઇલો હોવી જોઈએ: .બિલ્ડિનફો, .મટ્રી (એટલે કે, ALPM-MTREE) અને .પીકેજીએનએફઓઆ તત્વો બિલ્ડ પર્યાવરણ, દરેક પેકેજ્ડ ફાઇલના લક્ષણો અને સામાન્ય પેકેજ માહિતીનું વર્ણન કરે છે, અને બિલ્ડ પર્યાવરણને ફરીથી બનાવવા અને ઇન્સ્ટોલેશનને ચકાસવા બંનેને મંજૂરી આપે છે.
તે જરૂરી ફાઇલો ઉપરાંત, એક સ્ક્રિપ્ટ હોઈ શકે છે .ઇન્સ્ટોલ કરો જે તરીકે કામ કરે છે alpm-ઇન્સ્ટોલ-સ્ક્રિપ્ટલેટઆ સ્ક્રિપ્ટ ચોક્કસ સમયે ક્રિયાઓ કરે છે (ઇન્સ્ટોલેશન પહેલાં/પોસ્ટ, અપડેટ અથવા અનઇન્સ્ટોલેશન) અને તે એક મહત્વપૂર્ણ બિંદુ છે જ્યાં વિતરણો સામાન્ય રીતે દુરુપયોગ અથવા અસુરક્ષિત પ્રથાઓને રોકવા માટે ચોક્કસ નીતિઓ અને લિન્ટ્સ લાગુ કરે છે.
બાકીની સામગ્રીમાં ફાઇલોનો સમાવેશ થાય છે સિસ્ટમના મૂળમાંથી કાઢવામાં આવતો ડેટા પેકેજ ઇન્સ્ટોલ કરતી વખતે. માન્ય પાથની કોઈ સ્પષ્ટ સૂચિ નથી, પરંતુ શ્રેષ્ઠ પ્રથાઓ systemd ફાઇલ હાયરાર્કી સ્ટાન્ડર્ડને અનુસરવાની ભલામણ કરે છે અને ફાઇલસિસ્ટમ હાયરાર્કી સ્ટાન્ડર્ડકોઈપણ કિંમતે એવી ડિરેક્ટરીઓને સ્પર્શ કરવાનું ટાળો જેમાં વપરાશકર્તા ડેટા હોય (ઉદાહરણ તરીકે, /home માં કંઈ નથી). સામાન્ય રીતે, પેકેજમાંની બધી ફાઇલો અને ડિરેક્ટરીઓ રૂટની માલિકીની હોવાનું માનવામાં આવે છે, સિવાય કે વિતરણ નીતિ અન્યથા જણાવે.
ALPM સાથે સંકળાયેલા ફોર્મેટનું કાળજીપૂર્વક દસ્તાવેજીકરણ કરવામાં આવ્યું છે: ALPM-MTRE, BUILDINFO, PKGBUILD, PKGINFO, SRCINFO, alpm-db, alpm-db-desc, alpm-db-ફાઇલ્સ, alpm-પેકેજ, alpm-પેકેજ-રિલેશન, alpm-પેકેજ-સોર્સ-ચેકસમ, alpm-repo, alpm-repo-db, alpm-repo-desc, alpm-repo-ફાઇલ્સ, alpm-સોર્સ-રેપો, alpm-સ્પ્લિટ-પેકેજઅન્ય બાબતોમાં. સ્પષ્ટીકરણોનો આ આખો પરિવાર પેકેજનું વર્ણન કેવી રીતે કરવામાં આવે છે, તેની અખંડિતતા કેવી રીતે ચકાસવામાં આવે છે, નિર્ભરતા કેવી રીતે ઉકેલાય છે, અને બાઈનરી રિપોઝીટરીઝ અને સિસ્ટમની સ્થાનિક સ્થિતિ બંને કેવી રીતે રજૂ થાય છે તે વ્યાખ્યાયિત કરે છે.
સ્થાનિક ડેટાબેઝ, ભંડાર અને પેકમેન કેવી રીતે કાર્ય કરે છે
ક્લાયંટ સિસ્ટમમાં, પેકમેન અને લિબાલ્પીએમ તેઓ સામાન્ય રીતે સ્થિત ડેટાબેઝનું સંચાલન કરે છે /var/lib/પેકમેન. આ ફોલ્ડરની અંદર એક સબડિરેક્ટરી છે સ્થાનિક અને ઘણી સબડિરેક્ટરીઝ સમન્વયપ્રથમ સિસ્ટમ પર ઇન્સ્ટોલ કરેલા બધા પેકેજો વિશે માહિતી સંગ્રહિત કરે છે, જ્યારે સમન્વયન ડિરેક્ટરીઓમાં રૂપરેખાંકિત રિમોટ રિપોઝીટરીઓના સંકુચિત ડેટાબેઝ હોય છે.
સ્થાનિક ડેટાબેઝમાં દરેક એન્ટ્રી એ પેકેજ દીઠ એક ડિરેક્ટરી છે, જેનું નામ જોડાય છે નામ અને સંસ્કરણતેમને અલગ કરવા માટે, એક નાજુક પરંપરાનો ઉપયોગ કરવામાં આવે છે: વ્યક્તિ શોધે છે ઉપાંત્ય સ્ક્રિપ્ટ નામમાં (કારણ કે છેલ્લું સામાન્ય રીતે આર્કિટેક્ચરને અલગ કરે છે), જે પોતે જ વારસાગત જટિલતાનો ખ્યાલ આપે છે. દરેક પેકેજ ડિરેક્ટરીમાં ત્રણ મુખ્ય ફાઇલો હોય છે: ડેસ્ક, ફાઇલો અને એમટ્રીપહેલા બે %FIELD% માર્કર્સ સાથે કી બ્લોક ફોર્મેટનો ઉપયોગ કરે છે, જ્યારે ત્રીજું gzip-compressed mtree છે.
ફાઇલ desc તેમાં પેકેજ મેટાડેટા શામેલ છે: નામ, સંસ્કરણ, આધાર, વર્ણન, URL, આર્કિટેક્ચર, બિલ્ડ અને ઇન્સ્ટોલેશન તારીખો, પેકેજર, ઇન્સ્ટોલ કરેલ કદ, ઇન્સ્ટોલેશન કારણો, લાઇસન્સ, માન્યતા પ્રકાર, નિર્ભરતાઓ, વગેરે. ફાઇલ ફાઈલો તેમાં સિસ્ટમ પર પેકેજ દ્વારા સંચાલિત ફાઇલોની યાદી શામેલ છે. ફાઇલ વૃક્ષ તે તે ફાઇલો (અને બિલ્ડમાંથી કેટલીક વધારાની ફાઇલો) ને કદ, ચેકસમ, પરવાનગીઓ અને સમય જેવી વિસ્તૃત માહિતી સાથે ફરીથી સૂચિબદ્ધ કરે છે.
સ્થાનિક ડેટાબેઝને કાર્યક્ષમ રીતે ક્વેરી કરવા માંગતા વ્યક્તિના દ્રષ્ટિકોણથી, ડિઝાઇનમાં કેટલીક ખામીઓ છે: ઇન્સ્ટોલ કરેલી ફાઇલ હજુ પણ સાચી છે કે કેમ તે તપાસવા માટે, તમારે ફાઇલો અને mtree બંને વાંચો અને સહસંબંધિત કરોપાથને સામાન્ય બનાવવું (કારણ કે તે અલગ રીતે રજૂ થઈ શકે છે) અને ફિલ્ટરિંગ તત્વો મહત્વપૂર્ણ છે. ઘણા પેકેજો ધરાવતી સિસ્ટમો પર, આમાં હજારો નાની ફાઇલો ખોલવાનો સમાવેશ થાય છે, જેના પરિણામે અસંખ્ય સિસ્ટમ કોલ્સ અને લાંબા વાંચન સમય થાય છે. રસ્ટમાં આ જટિલતાઓનું અન્વેષણ કરનારા વિકાસકર્તાઓએ નોંધ્યું છે કે જ્યારે સીધી સ્ટ્રિંગ્સની તુલના કરીને પ્રક્રિયાને ઝડપી બનાવવી શક્ય છે, ત્યારે આ નાજુક હોઈ શકે છે અને માન્ય પાથને બાકાત રાખી શકે છે.
આટલી જટિલતા હોવા છતાં, સ્થાનિક ડેટાબેઝ alpm-db તે ખૂબ જ મહત્વપૂર્ણ છે: તે પ્રતિબિંબિત કરે છે કે દરેક પેકેજનું કયું સંસ્કરણ ઇન્સ્ટોલ કરેલું છે, તેમાં કઈ ફાઇલો છે, કઈ રૂપરેખાંકન ફાઇલોને બેકઅપ તરીકે ગણવામાં આવે છે (MD5 ચેકસમ સાથે), અને તે મૂળ ALPM-MTREE ની નકલ જાળવી રાખે છે, જે ગુમ થયેલ અથવા સુધારેલી ફાઇલોને શોધવાની મંજૂરી આપે છે.
બાઈનરી રિપોઝીટરીઝ બાજુએ, a અલ્પ-રેપો તે અનન્ય પેકેજો (નામ અને સંસ્કરણ દ્વારા), તેમના હસ્તાક્ષરો અને ડેટાબેઝ ફાઇલને જોડે છે. આલ્પમ-રેપો-ડીબીબાદમાં, દરેક પેકેજનું વર્ણન a દ્વારા કરવામાં આવ્યું છે આલ્પ-રેપો-ડેસ્ક જે PKGINFO, સહી અને પેકેજ ફાઇલ (કદ, ચેકસમ, વગેરે) માંથી ડેટા ઉમેરે છે, અને આલ્પમ-રેપો-ફાઇલો જેમાં રૂટની યાદી શામેલ છે. સાધનો જેમ કે રેપો ઉમેરો આ ફાઇલો મેનેજ કરવામાં આવે છે, અને બહુવિધ જાળવણીકારો સાથે વધુ જટિલ વાતાવરણ માટે, આર્ક પર આધાર રાખે છે ડીબીસ્ક્રિપ્ટ્સ, જે સત્તાવાર રિપોઝના સંચાલનને સ્વચાલિત કરે છે.
પેકમેન, તેના ભાગ માટે, ફાઇલો ડાઉનલોડ કરે છે આલ્પમ-રેપો-ડીબી દરેક રૂપરેખાંકિત રીપોઝીટરી માટે, તે તેના સમાવિષ્ટોની સ્થાનિક ડેટાબેઝ સાથે તુલના કરે છે અને, જો તે નવા સંસ્કરણો શોધે છે, તો અનુરૂપ પેકેજો ડાઉનલોડ અને ઇન્સ્ટોલ કરે છે. દરેક ઇન્સ્ટોલેશનમાં ત્રણ મૂળભૂત પગલાં શામેલ છે: પાછલા સંસ્કરણમાંથી ફાઇલો દૂર કરવી, નવા સંસ્કરણમાંથી ફાઇલો ઉમેરવી, અને માહિતી અપડેટ કરવી. અલ્પ-ડીબીઆ બધું બિલ્ડ અને ઇન્સ્ટોલેશન તબક્કા દરમિયાન જનરેટ થયેલા મેટાડેટા દ્વારા સપોર્ટેડ છે.
રસ્ટ ચિત્રમાં પ્રવેશ કરે છે: ALPMનું આધુનિકીકરણ અને મર્યાદાઓને દૂર કરવી
તાજેતરના વર્ષોમાં, સમુદાયના એક ભાગ દ્વારા રસ દાખવવામાં આવ્યો છે રસ્ટમાં libalpm અને pacman ના તર્કને ફરીથી અમલમાં મૂકવુંઆ ખાસ કરીને સમૃદ્ધ પ્રકારના મોડેલ, વધુ મેમરી સલામતી અને વધુ સારા એબ્સ્ટ્રેક્શનનો લાભ લેવા માટે ઉપયોગી છે. રસ્ટમાંથી સીધા libalpm ને લપેટવાનો પ્રયાસ કરવો એ મામૂલી વાત નથી: C લાઇબ્રેરીમાં પ્રગતિ, ડાઉનલોડ્સ અને અન્ય ઇવેન્ટ્સ માટે કોલબેક સાથે લાંબા ગાળાના API છે જેને રસ્ટમાં સંપૂર્ણપણે સુરક્ષિત રેપરમાં સ્વીકારવાનું મુશ્કેલ બની જાય છે.
આનાથી કેટલાક વિકાસકર્તાઓએ પ્રસ્તાવ મૂક્યો છે કે રસ્ટમાં ALPMનો સંપૂર્ણ અમલીકરણમહત્વાકાંક્ષી ધ્યેયો સાથે: સુરક્ષિત અને ઝડપી બનવું, libalpm ના વર્તનનું અનુકરણ કરવું, વધુ અભિવ્યક્ત API પ્રદાન કરવું, અને ક્રોસ-પ્લેટફોર્મ (વિન્ડોઝ સહિત) બનવું. જો તે પ્રાપ્ત થાય, તો તે ચોકલેટી જેવા સાધનો અથવા આર્ક પેકેજ ફોર્મેટ પર આધારિત વધુ વપરાશકર્તા મૈત્રીપૂર્ણ પેકેજ મેનેજર બનાવવાનો દરવાજો ખોલશે, હાલના C API ની મર્યાદાઓ વિના.
સંશોધન કાર્ય ખાસ કરીને આ પર ધ્યાન કેન્દ્રિત કર્યું છે સ્થાનિક ડેટાબેઝની ઍક્સેસ અને /var/lib/pacman ડિરેક્ટરીઓ વાંચવા, desc/files/mtree ફોર્મેટનું વિશ્લેષણ કરવા અને તેમને સલામત પ્રકારો સાથે પ્રદર્શિત કરવા માટે રસ્ટ લાઇબ્રેરીઓનું નિર્માણ. નોંધપાત્ર સુધારાઓમાંનો એક છે પેકેજોનો આળસુ ભારબધા પેકેટો અને તેમના મેટાડેટાને એકસાથે વાંચવાને બદલે (જો ફાઇલો અને mtree ને સંપૂર્ણ રીતે ક્રોસ-રેફરન્સ કરવામાં આવે તો તેમાં થોડી મિનિટો લાગી શકે છે), વાંચન ખરેખર જરૂરી ન થાય ત્યાં સુધી વિલંબિત થાય છે, જેનાથી એક અથવા થોડા પેકેટોનું મોટા દંડ વિના નિરીક્ષણ કરી શકાય છે.
તે જ સમયે, ALPM પ્રોજેક્ટે પોતે એક અભિગમ પસંદ કર્યો છે નીચેથી ઉપર, ફરીથી વાપરી શકાય તેવી લાઇબ્રેરીઓ પર ધ્યાન કેન્દ્રિત કર્યુંમૂળભૂત ક્રેટ્સ બનાવવામાં આવ્યા છે જેમ કે આલ્પ-પ્રકારોજે ઘણા ફોર્મેટ દ્વારા શેર કરેલા નીચા-સ્તરના પ્રકારોને વ્યાખ્યાયિત કરે છે, અને અલ્પ-સામાન્યજે સામાન્ય લક્ષણો અને ઉપયોગિતાઓ પ્રદાન કરે છે. કસ્ટમ ફોર્મેટનું વિશ્લેષણ કરવા માટે, પાર્સર કોમ્બીનેટર લાઇબ્રેરી પસંદ કરવામાં આવી છે. ઊપણી, જેના પર તે બનેલ છે આલ્પમ-પાર્સર્સ, આર્ક પેકેજ ઇન્ફ્રાસ્ટ્રક્ચરનો ઉપયોગ કરતી આ બધી એડહોક ફાઇલોને મેનેજ કરવા માટે ફરીથી વાપરી શકાય તેવા સાધનોનો સમૂહ.
બીજો આવશ્યક ભાગ છે અલ્પ-સોલ્વ, સામાન્ય પુસ્તકાલય પર આધારિત નિર્ભરતા રીઝોલ્યુશન માટે એક નવો અભિગમ હું સંકલ્પ કરું છુંઅહીં, ઉદ્દેશ્ય લિબાલ્પમના વારસા કરતાં વધુ આધુનિક, ચોક્કસ અને એક્સ્ટેન્સિબલ મોડેલ સાથે રિઝોલ્યુશનના તર્ક પર પુનર્વિચાર કરવાનો છે, જે હંમેશા મજબૂત પ્રકારો પર આધારિત હતો.
આ લાઇબ્રેરી રિપોઝીટરી પેકેજો અને ડેટાબેઝમાં કમ્પ્રેશનને હેન્ડલ કરવા માટે બનાવવામાં આવી છે. આલ્પમ-કોમ્પ્રેસ, જે ફાઇલો દ્વારા ઉપયોગમાં લેવાતા વિવિધ કમ્પ્રેશન અલ્ગોરિધમ્સને વિસ્તૃત રીતે સારાંશ આપે છે alpm-પેકેજ y આલ્પમ-રેપો-ડીબીઅને પેકેજોને જાતે હેન્ડલ કરવા માટે, ક્રેટ alpm-પેકેજ તે તમને પૂર્વ-તૈયાર ઇનપુટ ડિરેક્ટરીઓમાંથી પેકેજો બનાવવાની અને તે જ સમયે, ડેટા ફાઇલો પર સરળતાથી પુનરાવર્તન કરવાની અને માન્ય મેટાડેટા કાઢવાની મંજૂરી આપે છે.
પેકેજિંગ સાથેની એક ક્લાસિક સમસ્યા એ છે કે બિલ્ડ પ્રક્રિયામાં રૂટની માલિકીની ફાઇલો બનાવવાની જરૂર છે. (ઉદાહરણ તરીકે, જ્યારે /usr, /etc, વગેરેનું અનુકરણ કરતા ટ્રીમાં ઇન્સ્ટોલ કરતી વખતે), પરંતુ તમે સમગ્ર પ્રક્રિયાને સુપરયુઝર વિશેષાધિકારો સાથે ચલાવવા માંગતા નથી. આ દૃશ્ય માટે, પ્રોજેક્ટ ઓફર કરે છે મૂળ વગરનું, એક લાઇબ્રેરી જે બેકએન્ડનો ઉપયોગ કરીને "રુટ તરીકે" આદેશો ચલાવવા માટે સામાન્ય એબ્સ્ટ્રેક્શન પ્રદાન કરે છે જેમ કે નકલી મૂળ o રૂટલેસકીટબાદમાં, તેને પણ એકીકૃત કરવાની યોજના છે. લિબક્રુન KVM દ્વારા ઉન્નત આઇસોલેશન પૂરું પાડવા માટે, એવા સંદર્ભોમાં પણ જ્યાં fakeroot અથવા rootlesskit ની મર્યાદાઓ હોય છે.
ALPM ની આસપાસના સ્પષ્ટીકરણો, દસ્તાવેજીકરણ અને ટૂલિંગ
ગુણવત્તામાં સૌથી મહત્વપૂર્ણ છલાંગોમાંની એક છે સ્પષ્ટીકરણોનું વ્યાપક ઔપચારિકરણ જે વિવિધ ફોર્મેટ અને પ્રક્રિયાઓને વ્યાખ્યાયિત કરે છે: alpm-db, alpm-repo, alpm-package, alpm-package-version, alpm-package-name, alpm-architecture, વગેરે. આ દસ્તાવેજીકરણ તમને દરેક ફાઇલ શું કરે છે તે સમજવાની મંજૂરી આપે છે, પરંતુ C કોડ અથવા સ્કેટર્ડ સ્ક્રિપ્ટોને ટ્રેક કર્યા વિના રસ્ટ, પાયથોન અથવા અન્ય ભાષાઓમાં પાર્સર અને વેલિડેટર બનાવવા માટે એક મજબૂત પાયા તરીકે પણ કામ કરે છે.
આ સ્પષ્ટીકરણો પેકેજ તરીકે પણ વિતરિત કરવામાં આવે છે અલ્પ-ડોક્સજેથી કોઈપણ ડેવલપર અથવા જાળવણીકાર તેમને સ્થાનિક રીતે ઇન્સ્ટોલ અને ઍક્સેસ કરી શકે. વધુમાં, પ્રોજેક્ટ એ જાળવે છે અપડેટેડ વેબ દસ્તાવેજીકરણ જ્યાં સામાન્ય સ્થાપત્ય, દરેક ફાઇલની ભૂમિકા અને તેમની વચ્ચેના સંબંધને સુલભ રીતે સમજાવવામાં આવે છે. ઉદાહરણ તરીકે, alpm(7) દસ્તાવેજ, આર્કમાં પેકેજ મેનેજમેન્ટની દુનિયા માટે એક પ્રકારનો ઉચ્ચ-સ્તરીય પ્રવેશદ્વાર છે.
આ દસ્તાવેજી આધાર પર ઘણા ચોક્કસ સાધનો બનાવવામાં આવ્યા છે. ક્રેટ અલ્પ્મ-એસઆરસીઇન્ફો તે PKGBUILD માંથી SRCINFO ફાઇલોનું વિશ્લેષણ, માન્યતા અને નિર્માણ કરવા માટે લાઇબ્રેરી અને CLI પ્રદાન કરે છે. PKGBUILD ફાઇલો ગતિશીલ તર્ક સાથે બેશ સ્ક્રિપ્ટો હોવાથી, મનસ્વી કોડ ચલાવ્યા વિના યોગ્ય SRCINFO ફાઇલો જનરેટ કરવી એ મામૂલી વાત નથી. તેથી, તે પ્રોજેક્ટને પૂરક બનાવે છે. alpm-pkgbuild-bridge, ક્રેટ alpm-pkgbuild અને alpm-srcinfo માં એક અનુવાદ સ્તર જે ડેટાના વિશ્વસનીય અને સુરક્ષિત પ્રતિનિધિત્વ માટે પરવાનગી આપે છે.
તેવી જ રીતે, આલ્પમ-બિલ્ડઇન્ફો તે મેનેજ કરવા માટે લાઇબ્રેરી અને કમાન્ડ-લાઇન ટૂલ પૂરું પાડે છે બિલ્ડિનફોઆ ફોર્મેટ બિલ્ડ પર્યાવરણનું વર્ણન કરે છે અને બિલ્ડ્સને બિટ-બાય-બિટ રિપ્લે કરવા માટે જરૂરી છે. આ ટૂલ તમને પેકેજોમાં સમાવિષ્ટ BUILDINFO ફાઇલોનું વિશ્લેષણ, માન્યતા અને જનરેટ કરવાની મંજૂરી આપે છે.
ફોર્મેટ ALPM-MTRE તે ક્રેટ દ્વારા સંચાલિત થાય છે અલ્પ-એમટ્રીજે આ ફાઇલોને પાર્સિંગ, માન્ય કરવા અને જનરેટ કરવાની મંજૂરી આપે છે. કારણ કે તે libarchive mtree ફોર્મેટનો સબસેટ છે અને વધુ એક ધાતુભાષા જ્યારે તે એક સરળ ડેટા ફોર્મેટ છે, લેખન bsdtar પર આધાર રાખે છે, પરંતુ માન્યતા અને વાંચન તર્ક રસ્ટમાં રહે છે. ત્યાં રહેલી માહિતી ચકાસવા માટે સેવા આપે છે કે ઇન્સ્ટોલ કરેલી ફાઇલોના ગુણધર્મો (પરવાનગીઓ, માલિકો, ચેકસમ) અપેક્ષા મુજબ રહે છે.
સામાન્ય પેકેજ મેટાડેટા માટે, ક્રેટ alpm-pkginfo તે PKGINFO ફોર્મેટને આવરી લે છે: ડિપેન્ડન્સીઝ, alpm-પેકેજ-રિલેશનશિપ્સ, પેકેજ નામ, સંસ્કરણ, આર્કિટેક્ચર, લાઇસન્સ, કદ, વગેરે. અહીંથી, મેટાડેટાનું મજબૂત રીતે ટાઇપ કરેલું પ્રતિનિધિત્વ પ્રાપ્ત થાય છે જે અગાઉ સાદા ટેક્સ્ટમાં વેરવિખેર હતું.
સિસ્ટમનો ડેટાબેઝ, અલ્પ-ડીબી, તે નામના ક્રેટ દ્વારા વ્યવહાર કરવામાં આવે છે: અલ્પ-ડીબીઆ તમને વિશ્લેષણ, માન્ય અને જનરેટ કરવાની મંજૂરી આપે છે alpm-db-desc અને alpm-db-ફાઇલો, અને ACID ગુણધર્મો સાથે એક્સેસ મોડેલ તરફ કામ કરે છે, જે એવી એપ્લિકેશનોમાં સંકલિત કરવા માટે રચાયેલ છે જેને સુસંગતતા ગેરંટી સાથે ડેટાબેઝ વાંચવા અથવા હેરફેર કરવાની જરૂર છે.
અન્ય સંવેદનશીલ ફોર્મેટ એ ELF ફાઇલોથી સંબંધિત છે, ખાસ કરીને સોનેમ્સ જેનો ઉપયોગ દ્વિસંગી નિર્ભરતા વ્યક્ત કરવા માટે થાય છે. ક્રેટ અલ્પ-સોનેમ તે ફોર્મેટમાંથી માહિતીનું સંચાલન અને નિષ્કર્ષણ પર ધ્યાન કેન્દ્રિત કરે છે અલ્પ્મ-સોનામેવ2 (વધુ આધુનિક) અને, સામાન્ય રીતે, બાઈનરી અને ELF લાઇબ્રેરીઓમાં વ્યાખ્યાયિત સોનેમ. આ વાસ્તવિક રનટાઇમ ડિપેન્ડન્સીને પેકેજ સંબંધો સાથે જોડવાનું સરળ બનાવે છે જે પછી PKGINFO અને અન્ય માળખામાં દેખાય છે.
રિપોઝીટરી ડેટાબેઝ માટે, ક્રેટ આલ્પમ-રેપો-ડીબી ફાઇલોનું સંચાલન કરે છે alpm-repo-desc અને alpm-repo-ફાઇલોઅને તેને બનાવવા, વાંચન, લેખન અને સંકોચનને સમર્થન આપવા માટે વિસ્તૃત કરવામાં આવી રહ્યું છે આલ્પમ-રેપો-ડીબી પૂર્ણ, તેમજ એન્ટ્રીઓનો ઉમેરો, અપડેટ અને કાઢી નાખવા. મધ્યમ ગાળામાં, તે એવા સાધનો માટે એક મુખ્ય ઘટક બનશે જે લેગસી સ્ક્રિપ્ટો પર આધાર રાખ્યા વિના પ્રોગ્રામેટિકલી રિપોઝીટરીઝનું સંચાલન કરવા માંગે છે.
પરીક્ષણ સ્થળ તરીકે, પ્રોજેક્ટ પણ જાળવી રાખે છે ડેવ-સ્ક્રિપ્ટ્સવાસ્તવિક ડેટા સાથે એકીકરણ ચકાસવા માટે રચાયેલ રીલીઝ વિનાનો ક્રેટ: સત્તાવાર સ્ત્રોતો અને AUR માંથી રિપોઝીટરીઝ ડાઉનલોડ કરો, બાઈનરી રિપોઝીટરીઝ મેળવો, અને તમને ચકાસવાની મંજૂરી આપો કે ALPM લાઇબ્રેરીઓ વાસ્તવિક પેકેજોના મોટા જથ્થા સામે યોગ્ય રીતે વર્તે છે.
લિંટિંગ, પાયથોન એકીકરણ અને આંતરરાષ્ટ્રીયકરણ
આટલા બધા સ્પષ્ટીકરણો અને પુસ્તકાલયોના આધાર સાથે, કુદરતી આગળનું પગલું એ છે કે ALPM-કેન્દ્રિત લિંટિંગ ફ્રેમવર્કક્રેટ આલ્પ-લિન્ટ તે આ સિસ્ટમના મુખ્ય ભાગ તરીકે કાર્ય કરે છે, જેને CLI કહેવાય છે આલ્પ-લિન્ટ(1) અને નવા નિયમો ઉમેરવા માટે એક વિસ્તૃત સ્થાપત્ય. વિચાર એ છે કે એક જ કેન્દ્રીય બિંદુ જે પેકેજ મેનેજમેન્ટના તમામ પાસાઓને માન્ય કરી શકે છે: alpm-source-repo (PKGBUILD, SRCINFO, પેચો) ની સામગ્રીથી લઈને સંપૂર્ણ alpm-પેકેજ અથવા તો રેપોના ઘટકો સુધી.
જોકે હાલમાં લિન્ટની સંખ્યા ઓછી છે, આ પ્રોજેક્ટ પ્રોત્સાહન આપે છે રસ્ટ જાળવણીકારો અને વિકાસકર્તાઓ તેમના વિસ્તરણમાં સહયોગ કરવો. ધ્યેયોમાં alpm-lint ને સત્તાવાર આર્ક બિલ્ડ ટૂલ્સમાં એકીકૃત કરવાનો સમાવેશ થાય છે જેથી મેન્યુઅલ સમીક્ષાઓ પર ખૂબ આધાર રાખ્યા વિના પેકેજ ગુણવત્તામાં સુધારો થાય. દરેક લિન્ટ નિયમ વિગતવાર દસ્તાવેજીકૃત થયેલ છે, અને એક સમર્પિત વેબસાઇટ છે જે કોડ દસ્તાવેજીકરણમાંથી જનરેટ થયેલા તમામ લિન્ટ્સ અને તેમના અર્થોની યાદી આપે છે.
પાયથોન પ્રોજેક્ટ્સમાં તેને અપનાવવાની સુવિધા આપવા માટે, ટીમે વિકસાવ્યું છે પાયથોન-આલ્પમઆ ભાષામાં પાર્સર અને ચકાસાયેલ પ્રકારોને ખુલ્લા પાડતા બંધનો. મુખ્ય સંભવિત ગ્રાહક છે ઓરવેબઆર્ક યુઝર રિપોઝીટરીનું સંચાલન કરતી FastAPI એપ્લિકેશન હાલમાં SRCINFO માટે મૂળ પાયથોન લાઇબ્રેરીનો ઉપયોગ કરે છે. python-alpm સાથે, તમને ALPM પ્રોજેક્ટના બાકીના ભાગો દ્વારા ઉપયોગમાં લેવાતી સમાન રસ્ટ લાઇબ્રેરીઓના આધારે વધુ મજબૂત પાર્સિંગ મળે છે.
આ બંધનો પહેલાથી જ PyPI માં ઉપલબ્ધ છે, અને તેમને AURweb માં એકીકૃત કરવા માટે કામ ચાલી રહ્યું છે, ધીમે ધીમે અગાઉના ઉકેલોને બદલીને. આગળની યોજનાઓમાં python-alpm ના કવરેજને વિસ્તૃત કરવાનો સમાવેશ થાય છે જેથી અન્ય જરૂરિયાતોને સમાવી શકાય, જેમ કે... સાથે એકીકરણ. આર્ચીનસ્ટોલ અથવા અન્ય સેવાઓ જે પેકેટ ઇન્ફ્રાસ્ટ્રક્ચર પર ખૂબ આધાર રાખે છે.
આ માટે આંતરરાષ્ટ્રીયકરણપ્રોજેક્ટે માળખું અપનાવ્યું છે અસ્ખલિત અનુવાદયોગ્ય ટેક્સ્ટ અને ભૂલ સંદેશાઓનું સંચાલન કરવા માટે. ક્રેટ ફ્લુઅન્ટની ટોચ પર બનાવવામાં આવ્યો હતો. ફ્લુન્ટ-i18nજે પ્રોજેક્ટની લાઇબ્રેરીઓ અને CLI માં તેનો ઉપયોગ સરળ બનાવે છે. અનુવાદોનો ઉપયોગ કરીને સંકલન કરવામાં આવે છે વેબલેટસંદેશાઓને અન્ય ભાષાઓમાં અનુવાદિત કરવા માંગતા યોગદાનકર્તાઓ માટે સ્પષ્ટ માર્ગદર્શિકા સાથે. વિચાર એ છે કે અંતિમ વપરાશકર્તાઓ અને સિસ્ટમ સંચાલકો બંને જેઓ અંગ્રેજીમાં અસ્ખલિત નથી તેઓ તેમની ભાષામાં સ્પષ્ટ અને ઉપયોગી સંદેશાઓ મેળવી શકે છે.
VOA: રાજ્ય કીરિંગ્સ પર આધાર રાખ્યા વિના કલાકૃતિઓની ચકાસણી
ALPM પ્રોજેક્ટ જે અન્ય મહત્વપૂર્ણ મોરચાને સંબોધે છે તે છે પેકેટો અને અન્ય કલાકૃતિઓનું ક્રિપ્ટોગ્રાફિક ચકાસણીપરંપરાગત રીતે, આર્ક ઉપયોગ કરે છે GnuPG પર આધારિત OpenPGP અને કેન્દ્રીય કીરીંગ પેકેજો અને રિપોઝીટરી મેટાડેટા બંને ચકાસવા માટે. જોકે, આ મોડેલમાં ઘણી સમસ્યાઓ છે: કીરીંગ છે સંદર્ભથી સ્વતંત્ર (ઉપયોગના આધારે સહીઓના વિવિધ સેટ વચ્ચે તફાવત કરતું નથી), GnuPG અને તેના ચોક્કસ વર્તન સાથે જોડાયેલ છે, છે રાજ્યભર્યું (એજન્ટ અને સ્ટેટ મેનેજમેન્ટની જરૂર છે) અને, સૌથી ઉપર, GnuPG IETF-સંચાલિત OpenPGP ધોરણથી દૂર થઈ ગયું હોવાથી તે સમસ્યારૂપ બન્યું છે.
2024 પહેલા પણ, એક વિકલ્પ શોધવામાં આવી રહ્યો હતો: મોનોલિથિક કીરીંગનો ઉપયોગ કરવાને બદલે, એ "વેરિફાયર" સાથે ડિરેક્ટરી વંશવેલોશરૂઆતમાં ફક્ત OpenPGP માટે ડિઝાઇન કરવામાં આવ્યું હતું, પરંતુ ટૂંક સમયમાં તેને ટેકનોલોજી-અજ્ઞેયવાદી અભિગમ સુધી વિસ્તૃત કરવામાં આવ્યું. આ વિચારમાંથી, સ્પષ્ટીકરણનો જન્મ થયો. OS આર્ટિફેક્ટ્સની ચકાસણી માટે ફાઇલ હાયરાર્કી (VOA), જે OpenPGP પ્રમાણપત્રો, જાહેર SSH કીઝ અથવા X.509 પ્રમાણપત્રોને સ્પષ્ટ વૃક્ષમાં કેવી રીતે ગોઠવવા તે વર્ણવે છે જે દર્શાવે છે કે કલાકૃતિઓને માન્ય કરતી વખતે દરેક વેરિફાયરનો ઉપયોગ કયા સંદર્ભમાં થવો જોઈએ.
આ સ્પષ્ટીકરણનું પ્રારંભિક સંસ્કરણ, OpenPGP માટે સ્પષ્ટ સમર્થન સાથે, 2025 માં પ્રકાશિત થયું હતું, અને અન્ય બેકએન્ડ્સ (SSH, X.509, મિનિસાઇન, સિગ્નાઇ) માટેના ડ્રાફ્ટ્સ રિફાઇનમેન્ટ માટે બાકી છે. સમાંતર રીતે, રસ્ટમાં સંદર્ભ અમલીકરણ VOA પ્રોજેક્ટ દ્વારા, અનેક વિશિષ્ટ ક્રેટ્સ સાથે.
ક્રેટ વોઆ-કોર તે ટેકનોલોજીને ધ્યાનમાં લીધા વિના, VOA પદાનુક્રમની સામાન્ય પ્રક્રિયાનું સંચાલન કરે છે. તે તેના પર બનેલ છે. વોઆ-ઓપનપીજીપીજે OpenPGP સાથે કોંક્રિટ વેરિફિકેશન લાગુ કરે છે. આ લાઇબ્રેરી ઘણા વેરિફિકેશન મોડેલ્સને સપોર્ટ કરે છે: એક "સાદો" મોડ જ્યાં આર્ટિફેક્ટ્સ ફક્ત ઉપલબ્ધ વેરિફાયર (વપરાશકર્તા ID માં ફિંગરપ્રિન્ટ્સ અથવા ડોમેન દ્વારા ફિલ્ટર કરી શકાય છે) સાથે ચકાસવામાં આવે છે, એક મોડ જે સરળ "વિશ્વાસના પાયા" જ્યાં ચકાસણીકર્તાઓને ઓછામાં ઓછી સહીઓની સંખ્યા ધરાવતા એન્કરના સમૂહ દ્વારા પ્રમાણિત કરવા આવશ્યક છે, અને એક પદ્ધતિ "વિશ્વાસનું વેબ" વ્યાપક જે વધુ જટિલ અને વિકેન્દ્રિત ટ્રસ્ટ રૂપરેખાંકનો માટે પરવાનગી આપે છે.
બધા કિસ્સાઓમાં તમે કેટલાને ગોઠવી શકો છો સ્વતંત્ર ડેટા કંપનીઓ કોઈ આર્ટિફેક્ટને માન્ય ગણવા માટે આ જરૂરી છે. આર્ક લિનક્સના ચોક્કસ કિસ્સામાં, આજે ઉપયોગમાં લેવાતું વાસ્તવિક મોડેલ એ જેવું જ છે સિંગલ-લેવલ વેબ ઓફ ટ્રસ્ટમાસ્ટર કી (ટ્રસ્ટ એન્કર) તરીકે કાર્ય કરતા પ્રમાણપત્રોનો સમૂહ છે, અને પેકેજર પ્રમાણપત્રોમાં archlinux.org ડોમેન હેઠળ વપરાશકર્તા ID હોવા જોઈએ અને આમાંથી ત્રણ કે તેથી વધુ માસ્ટર કી દ્વારા સહી થયેલ હોવા જોઈએ. voa-openpgp સાથે, આ નીતિ ટ્રસ્ટ એન્કર મોડનો ઉપયોગ કરીને જરૂરી પ્રમાણપત્રોની રૂપરેખાંકિત સંખ્યા સાથે શ્રેષ્ઠ રીતે વ્યક્ત કરવામાં આવે છે.
એકીકરણ આ સાથે પૂર્ણ થયું છે વોઆ-કન્ફિગજે વિતરણ- અથવા સંદર્ભ-વિશિષ્ટ ચકાસણી નીતિઓનું વર્ણન કરવા માટે રૂપરેખાંકન ફોર્મેટ (voa(5)) વ્યાખ્યાયિત કરે છે, જેમાં વેરિફાયર અને ટ્રસ્ટ એન્કર કેવી રીતે પસંદ કરવામાં આવે છે તેનો સમાવેશ થાય છે. એક ઉદાહરણ આર્ક રૂપરેખાંકન ફાઇલ છે, જે જાહેર કરે છે કે openpgp ટેકનોલોજી માટે, નીચે મુજબ જરૂરી છે: માન્ય ડેટા સહી, કે વેરિફાયર પાસે archlinux.org ડોમેન સાથે યુઝર આઈડી અને માસ્ટર કીના ઓછામાં ઓછા ત્રણ પ્રમાણપત્રો હોવા જોઈએ, જેમના ફિંગરપ્રિન્ટ્સ સ્પષ્ટ રીતે સૂચિબદ્ધ છે.
ક્રેટ વોઆ તે VOA ગ્રાહકો માટે ઉચ્ચ-સ્તરીય API અને સંચાલકો માટે CLI પ્રદાન કરે છે. આદેશ સાથે voa રૂપરેખાંકન બતાવો આપેલ સંદર્ભમાં (દા.ત., "આર્ચ") કઈ સેટિંગ્સ લાગુ કરવામાં આવે છે તેનું તમે નિરીક્ષણ કરી શકો છો, અને VOA વેરિફાઇ ઇન્સ્ટોલ કરેલ વેરિફાયર હાયરાર્કીનો ઉપયોગ કરીને ફાઇલોને તેમના અલગ કરેલા હસ્તાક્ષરો સાથે ચકાસી શકાય છે. પરિણામો JSON માં પણ પરત કરી શકાય છે, જે ઓટોમેટેડ પાઇપલાઇન્સમાં એકીકરણની સુવિધા આપે છે.
આ બધું વ્યવહારિક રીતે કાર્ય કરવા માટે, એક પેકેજ છે જેમ કે voa-વેરિફાયર્સ-આર્ચ જે આર્ક લિનક્સ દ્વારા ઉપયોગમાં લેવાતા VOA વેરિફાયર્સને ઇન્સ્ટોલ કરે છે. ઇન્સ્ટોલેશન પછી, ઉદાહરણ તરીકે, તમે .pkg.tar.zst ફાઇલ અને તેની .sig ફાઇલ બંનેનો ઉલ્લેખ કરીને પેકમેન કેશમાંથી પેકેજ ચકાસી શકો છો, અને VOA પુષ્ટિ કરશે કે સહી ગોઠવેલી નીતિ અનુસાર માન્ય છે.
સમાંતર રીતે, પ્રોજેક્ટ દ્વારા સ્થિતિની તપાસ કરવામાં આવી છે વિવિધ અમલીકરણોમાં વેબ ઓફ ટ્રસ્ટ અને નિષ્કર્ષ કાઢ્યો છે કે વિશ્વાસની ગણતરી કરતી વખતે લેગસી સોલ્યુશન્સમાં ગંભીર મર્યાદાઓ હોય છે. આ વિશ્લેષણમાંથી, એક નવું પાથફાઇન્ડિંગ અલ્ગોરિધમ ઉભરી આવ્યું છે જેને બર્બ્લોમબર્બ્લોમ ખાસ કરીને પ્રમાણપત્ર ગ્રાફમાં સામાન્ય, મજબૂત અને કાર્યક્ષમ રીતે ટ્રસ્ટ સ્કોર્સની ગણતરી કરવા માટે રચાયેલ છે. વધુ મજબૂત અને અનુમાનિત વેબ ઓફ ટ્રસ્ટ પહોંચાડવા માટે 2026 સુધીમાં બર્બ્લોમને VOA અમલીકરણમાં એકીકૃત કરવાનો હેતુ છે.
ભંડોળ, આંકડા અને ભાવિ કાર્ય રેખાઓ
આ બધા પ્રયાસોને નોંધપાત્ર રીતે વેગ મળ્યો છે સોવરિન ટેક ફંડ (STF) ફાઇનાન્સિંગ2024 અને 2025 ની વચ્ચે, આનાથી લગભગ 15 મહિના સુધી ALPM પ્રોજેક્ટ પર ઊંડાણપૂર્વક કામ કરવાની મંજૂરી મળી. આ સમય દરમિયાન, છ મુખ્ય સીમાચિહ્નો પૂર્ણ થયા, જેમાં સ્પષ્ટીકરણોના ઔપચારિકકરણ અને મુખ્ય પુસ્તકાલયોના નિર્માણથી લઈને અદ્યતન ક્રિપ્ટોગ્રાફિક ચકાસણી, ડેટાબેઝ મેનેજમેન્ટ અને ડેવલપર ટૂલિંગનો સમાવેશ થાય છે.
આંકડાઓ પોતે જ બોલે છે: બહુવિધ યોગદાનકર્તાઓ તરફથી સેંકડો પ્રતિબદ્ધતાઓ, રસ્ટ કોડની હજારો લાઇનો, સ્ક્રિપ્ટો, દસ્તાવેજીકરણ અને ગોઠવણી ફાઇલો વિશાળ કાર્યસ્થળમાં ફેલાયેલી છે. પ્રોજેક્ટની ફિલસૂફી સ્પષ્ટ છે: આર્ક લિનક્સથી આગળ મૂલ્યનું સર્જન, જેનરિક સોલ્યુશન્સ પૂરા પાડે છે જેનો ઉપયોગ અન્ય મફત સોફ્ટવેર વિતરણો અને પ્રોજેક્ટ્સ દ્વારા ખૂબ સાંકડી જગ્યા સાથે જોડાયેલા વિના ફરીથી કરી શકાય છે.
STF ભંડોળ સમાપ્ત થઈ ગયું હોવા છતાં, ALPM નો રોડમેપ હજુ પણ જીવંત છે. લિન્ટ્સના સમૂહને નોંધપાત્ર રીતે વિસ્તૃત કરો alpm-lint માં અને સત્તાવાર બિલ્ડ ટૂલ્સમાં તેના સીધા એકીકરણનો અભ્યાસ કરો. ઓફર કરવાની શક્યતા libalpm સાથે સુસંગત C-API નવી રસ્ટ લાઇબ્રેરીઓ પર આધારિત, જોકે હાલમાં ગ્રાહકો માટે પ્રાથમિકતા એ છે કે તેઓ સીધા જ ઝીણા અને સારી રીતે ટાઇપ કરેલા ALPM API નો ઉપયોગ કરે.
દ્વિસંગી ભંડારોના ક્ષેત્રમાં, હેતુ માટે સપોર્ટ પૂર્ણ કરવાનો છે આલ્પમ-રેપો-ડીબી રીપોઝીટરી ડેટાબેઝના સમગ્ર જીવનચક્રને આવરી લેવા માટે: બનાવટ, વાંચન, કમ્પ્રેશન, અપડેટિંગ અને એન્ટ્રીઓ કાઢી નાખવી. તે જ સમયે, માટે એક સ્તર ઉમેરવાનું છે ઉપકરણોનું સુરક્ષિત ડાઉનલોડ alpm-repo થી, OpenPGP (અને ભવિષ્યમાં, અન્ય બેકએન્ડ્સ) નો ઉપયોગ કરીને પેકેજ અને ડેટાબેઝ ચકાસણી માટે VOA સિસ્ટમને ચુસ્તપણે સંકલિત કરી રહ્યું છે.
એકીકરણ અંગે, એક ઉદ્દેશ્ય છે python-alpm ને વિસ્તૃત કરવાનું ચાલુ રાખો વધુ ઉપયોગના કેસોને આવરી લેવા માટે, ખાસ કરીને archinstall જેવી એપ્લિકેશનો કે જેને પેકેજ ઇન્ફ્રાસ્ટ્રક્ચરમાં લવચીક અને વિશ્વસનીય ઍક્સેસની જરૂર હોય છે. રસ્ટ/પાયથોન ક્રોસઓવરમાં રસ ધરાવતા ડેવલપર્સને બંને ટેકનોલોજીનો એકસાથે ઉપયોગ સરળ બનાવવા માટે સહયોગ કરવા માટે પણ પ્રોત્સાહિત કરવામાં આવે છે.
સુરક્ષિત પ્રકારો, મજબૂત વિશ્લેષકો અને ચકાસણી અને આંતરરાષ્ટ્રીયકરણ સાધનોના આ સમગ્ર માળખાને કારણે, સમુદાય પાસે હવે નિર્માણ માટે વધુ મજબૂત પાયો છે નવી વિશિષ્ટ પેકેજ મેનેજમેન્ટ એપ્લિકેશનોવધુ વપરાશકર્તા-મૈત્રીપૂર્ણ ફ્રન્ટએન્ડ્સથી લઈને ઓડિટિંગ ટૂલ્સ, ડિપ્લોયમેન્ટ ઓટોમેશન, ડિપેન્ડન્સી વિશ્લેષણ અને CI/CD સિસ્ટમ ઇન્ટિગ્રેશન સુધી, આ સુધારેલ ALPM ઇકોસિસ્ટમ સતત અપારદર્શક લેગસી વિગતો સાથે સંઘર્ષ કર્યા વિના પ્રયોગ કરવા, સુધારવા અને સૌથી ઉપર ઉપયોગી વસ્તુઓ બનાવવા માટે અત્યંત ફળદ્રુપ જમીન બની ગઈ છે. આર્ક લિનક્સ, રસ્ટ, અથવા સપ્લાય ચેઇન સુરક્ષા સાથે સંકળાયેલા કોઈપણ માટે, આ સુધારેલ ઇકોસિસ્ટમ સતત અપારદર્શક લેગસી વિગતો સાથે સંઘર્ષ કર્યા વિના પ્રયોગ કરવા, સુધારવા અને સૌથી ઉપર ઉપયોગી વસ્તુઓ બનાવવા માટે અપવાદરૂપે ફળદ્રુપ જમીન બની ગઈ છે.