GitHub-da arxiv yoxlama məbləğlərindəki dəyişikliklər səbəbindən qurulma sistemlərində uğursuzluqlar

GitHub buraxılış səhifələrində avtomatik yaradılan “.tar.gz” və “.tgz” arxivlərini yaratma üsulunu dəyişdi, bu da onların yoxlama məbləğlərində dəyişikliklərə və bütövlüyünü təsdiqləmək üçün GitHub-dan endirilmiş arxivləri əvvəlkilərlə müqayisə edən avtomatlaşdırılmış qurma sistemlərində kütləvi uğursuzluqlara səbəb oldu. .saxlanmış yoxlama məbləğləri, məsələn, paket metadatasında və ya qurma skriptlərində yerləşdirilir.

Buraxılış 2.38-dən başlayaraq Git alət dəstinə defolt olaraq gzip-in daxili tətbiqi daxil idi ki, bu da əməliyyat sistemləri arasında bu sıxılma metoduna dəstəyi birləşdirməyə və arxiv yaratma işini yaxşılaşdırmağa imkan verdi. GitHub öz infrastrukturunda git versiyasını yenilədikdən sonra dəyişikliyi qəbul etdi. Problem, daxili zlib-əsaslı gzip tətbiqi ilə yaradılan sıxılmış arxivlərin gzip yardım proqramı tərəfindən yaradılan arxivlərdən ikili fərqli olması ilə əlaqədar idi, bu da git-in müxtəlif versiyaları tərəfindən yaradılan arxivlər üçün fərqli yoxlama məbləğləri ilə nəticələndi. "git arxivi" əmri.

Müvafiq olaraq, GitHub-da git-i yenilədikdən sonra buraxılış səhifələrində bir qədər fərqli arxivlər göstərilməyə başladı, bu da köhnə yoxlama məbləğlərindən istifadə edərək yoxlanışdan keçmədi. Problem müxtəlif qurma sistemlərində, davamlı inteqrasiya sistemlərində və mənbə kodundan paketlərin qurulması alətlərində özünü göstərdi. Məsələn, mənbə kodları GitHub-dan endirilmiş təxminən 5800 FreeBSD portunun yığılması pozulub.

Qüsurlarla bağlı ilkin şikayətlərə cavab olaraq, GitHub əvvəlcə arxivlər üçün daimi yoxlama məbləğlərinə heç vaxt zəmanət verilmədiyinə istinad etdi. Təsirə məruz qalan qurma sistemlərinin funksionallığını bərpa etmək üçün müxtəlif ekosistemlərdə metaməlumatların yenilənməsi üçün çox böyük iş tələb olunacağı göstərildikdən sonra GitHub nümayəndələri fikirlərini dəyişdilər, dəyişikliyi geri götürdülər və arxiv yaratmaq üçün köhnə üsula qayıtdılar.

Git tərtibatçıları hələ bir qərara gəlməyiblər və yalnız mümkün hərəkətləri müzakirə edirlər. Nəzərə alınan seçimlərə standart gzip yardım proqramından istifadəyə qayıtmaq daxildir; köhnə arxivlərlə uyğunluğu qorumaq üçün “--stabil” bayrağının əlavə edilməsi; daxili icranın ayrıca arxiv formatına qoşulması; köhnə öhdəliklər üçün gzip yardım proqramından və müəyyən bir tarixdən başlayaraq öhdəliklər üçün daxili tətbiqdən istifadə; yalnız sıxılmamış arxivlər üçün format sabitliyinə zəmanət verir.

Qərar vermənin çətinliyi onunla izah olunur ki, xarici yardım proqramına zəngə qayıtmaq yoxlama məbləğinin dəyişməzliyi problemini tamamilə həll etmir, çünki xarici gzip proqramında dəyişiklik arxiv formatının dəyişməsinə də səbəb ola bilər. Hal-hazırda, defolt olaraq köhnə davranışı qaytaran (xarici gzip yardım proqramını çağırır) və sistemdə gzip yardım proqramı olmadıqda daxili tətbiqdən istifadə edən bir sıra yamaqlar nəzərdən keçirmək üçün təklif edilmişdir. Yamaqlar həmçinin sənədlərə əlavə edir ki, “git arxivi” çıxışının sabitliyinə zəmanət verilmir və format gələcəkdə dəyişə bilər.

Mənbə: opennet.ru

Добавить комментарий