Opublikowano wydanie narzędzi do zarządzania pakietami APT 2.9.15 (Advanced Package Tool). Gałąź 2.9.x jest wersją eksperymentalną i jest wykorzystywana do rozwijania funkcji przyszłej stabilnej wersji APT 3.0, która po stabilizacji zostanie zintegrowana z Debian Testing i wejdzie w następne istotne wydanie Debiana, a także zostanie dodana do bazy pakietów Ubuntu.
Kluczową zmianą w nowej wersji było ostateczne zakończenie używania narzędzia apt-key do zarządzania kluczami wykorzystywanymi do weryfikacji podpisów cyfrowych pakietów. Narzędzie apt-key zostało kilka lat temu uznane za przestarzałe ze względu na odejście od starego modelu weryfikacji integralności pakietów, w którym używano wspólnego magazynu kluczy (/etc/apt/trusted.gpg) i brakowało powiązania kluczy z repozytoriami, tzn. klucz dodany dla jakiegoś zewnętrznego repozytorium pasował do weryfikacji pakietów we wszystkich repozytoriach. Metoda zastępująca apt-key zakłada podział magazynów kluczy dla każdego repozytorium (/etc/apt/trusted.gpg.d/ lub /etc/apt/keyrings/).
Inne zmiany:
- Na liście ścieżek do wywołania gpg dodano napisaną w języku Rust aplikację gpg-sq, która przyjmuje te same argumenty co narzędzie gpg, ale imituje jej działanie poprzez Sequoia, implementację OpenPGP w języku Rust. Wywołanie gpg-sq ma wyższy priorytet niż gpg, tzn. aby używać gpg-sq zamiast gpg, wystarczy zainstalować odpowiedni pakiet.
- Przypisano typy kluczy do rozszerzeń plików: rozszerzenie „.asc” jest powiązane z kluczy ascii-armored, „.gpg” – zawsze z kluczami binarnymi, a wszystkie pozostałe rozszerzenia plików spowodują błąd „Klucz(e) w pierścieniu kluczy... są ignorowane, ponieważ plik ma nieobsługiwany typ”. Na przykład, używając pliku z kluczem „/etc/apt/keyrings/winehq-archive.key”, należy go zmienić na „/etc/apt/keyrings/winehq-archive.gpg” i poprawić ścieżkę w pliku „/etc/apt/sources.list.d/”.
- Wiele funkcji przetłumaczono na użycie klasy „std::string” zamiast „const char *” (określona w standardzie C++17 klasa std::string_view, której działanie ze stringami jest bardziej efektywne dzięki użyciu referencji do istniejących danych oraz unikaniu zbędnego kopiowania danych, dopóki nie będzie użyta w kodzie).
- Wprowadzono wsparcie dla samodzielnej weryfikacji magazynów kluczy (keyring) oraz wykonywania operacji dearmor (konwersja klucza w formacie ASCII-armored na format binarny) bez odwoływania się do apt-key.
- Dodano funkcję Base64Decode.
Źródło: opennet.ru
