Spis treści
libinput
dbgsym
net-tools
uznane za przestarzałe,
zastąpione przez iproute2
_netdev
Czasami zmiany wprowadzone w nowym wydaniu mają skutki uboczne, którym nie można zapobiec w sensowny sposób, lub które odsłaniają inne błędy. Niniejszy rozdział dokumentuje znane problemy. Proszę zapoznać się również z erratą, dokumentacją odpowiednich pakietów, zgłoszeniami błędów i pozostałymi informacjami opisanymi w Sekcja 6.1, „Dodatkowe informacje”.
Niniejszy rozdział dotyczy aktualizacji z wydania jessie do stretch.
![]() | Uwaga |
---|---|
Opis ten dotyczy systemów używających zmodyfikowanego jądra, gdzie
|
Montowania /usr
wyłącznie za pomocą narzędzi dostępnych
w /
nie jest obecnie obsługiwane. Już wcześniej
działało to poprawnie tylko w kilku specyficznych konfiguracjach, natomiast
teraz jest jawnie nieobsługiwane.
Oznacza to, że w wydaniu stretch wszystkie systemy, w których
/usr
jest na oddzielnej partycji, muszą korzystać z
generatora initramfs, który zamontuje /usr
. Robią tak
wszystkie generatory initramfs w wydaniu stretch.
Serwery lustrzane Debiana przestaną udostępniać dostęp FTP. Jeśli korzysta
się z protokołu ftp:
w swoim pliku sources.list, proszę
go zmienić na http:
. Oto przykład:
deb http://deb.debian.org/debian stretch main deb http://deb.debian.org/debian-security stretch/updates main # wariant tor (wymaga apt-transport-tor) # deb tor+http://vwakviie2ienjx6t.onion/debian stretch main # deb tor+http://sgvtcaew4bxjd7ln.onion/debian-security stretch/updates main
Powyższy przykład nie obejmuje repozytoriów non-free
i
contrib
. Proszę pamiętać o ich dodaniu, jeśli to
konieczne.
Więcej informacji znajduje się w ogłoszeniu: Shutting down public FTP services.
Poniższa lista zawiera znane i warte uwagi pakiety, które zostały uznane za przestarzałe (zob. wyjaśnienie w Sekcja 4.8, „Przestarzałe pakiety”).
Lista przestarzałych pakietów obejmuje:
Większość pakietów -dbg
została usunięta z głównego
archiwum. Zostały zastąpione pakietami -dbgsym
dostępnymi
w archiwum debian-debug
. Zob. Sekcja 2.2.8, „Nowe archiwum z symbolami debugowania”
Menedżery haseł fpm2
i kedpm
nie są dłużej rozwijane przez projekty
macierzyste. Proszę korzystać z innych menedżerów haseł np. pass
, keepassx
lub keepass2
. Przed usunięciem pakietów fpm2
i kedpm
proszę pamiętać o wyciągnięciu z nich
swoich starych haseł.
Pakiet net-tools
staje się
przestarzały na korzyść iproute2
. Więcej informacji znajduje się w
rozdziale Sekcja 5.3.9, „net-tools
uznane za przestarzałe,
zastąpione przez iproute2
” lub w
Debian reference manual.
Narzędzia monitorujące nagios3
zostały usunięte z wydania. Najbardziej zbliżonym zamiennikiem jest pakiet
icinga
. Choć przechowuje swoje pliki
konfiguracyjne pod inną ścieżką niż nagios, to w pozostałym zakresie jest
kompatybilny.
Po zakończeniu apt-get dist-upgrade
„formalna” aktualizacja jest zakończona. Przy aktualizacji do
wydania stretch, nie są potrzebne żadne specjalne działania przed
ponownym uruchomieniem.
Domyślnie, kompilator GNU GCC 6 w Debianie stretch będzie kompilował wszystkie pliki wykonywalne niezależne od pozycji. Ograniczy to całą klasę zagrożeń.
Niestety, w jądrze Linux dostarczanym w Debianie 8 (aż do 8.7) występuje
problem, który może spowodować załamanie niektórych programów skompilowanych
jako pliki wykonywalne PIE, z mało informatywnym opisem, takim jak
segmentation fault
. Problem ten rozwiązano w jądrze
udostępnionym w wydaniu 8.8 (wersja 3.16.43 lub nowsza) i w jądrze
udostępnionym w Debianie 9 (wersja 4.9 lub nowsza).
We recommend that you upgrade your kernel to a fixed version and then reboot before starting the upgrade to stretch. If you are running the kernel from Debian 8.8 or newer, you are not affected by this issue.
Jeśli komputer działa na wersji jądra dotkniętej problemem, usilnie zalecamy ponowne uruchomienie komputera bezpośrednio po aktualizacji, aby korzystał z jądra z wydania stretch, co pozwoli uniknąć opisanych problemów.
![]() | Uwaga |
---|---|
Niniejszy rozdział jest przeznaczony dla deweloperów lub administratorów systemu i nie dotyczy większości zwykłych użytkowników. |
Powyższe prowadzi do pewnych zmian, o których dobrze jest wiedzieć.
Narzędzie file (i inne) sklasyfikują takie pliki binarne jako „obiekty współdzielone”, a nie „pliki wykonywalne”. Jeśli korzysta się z filtrów opartych na plikach binarnych, trzeba będzie je zaktualizować (np. filtry pocztowe).
Biblioteki statyczne wkompilowane w pliki wykonywalne będą musiały być również kompilowane jako kod niezależny od pozycji. Symptomem tego jest poniższy błąd linkera:
relocation ... against '[SYMBOL]' can not be used when making a shared object; recompile with -fPIC
Proszę zauważyć, że nawet jeśli komunikat o błędzie zaleca -fPIC, wystarczy dokonać rekompilacji z -fPIE (które jest domyślne w pakietach GCC 6 będących częścią wydania stretch).
Historycznie, pliki wykonywalne PIE kojarzyły się ze spadkiem wydajności na
określonym sprzęcie, między innymi na architekturze i386
Debiana (32-bitowe komputery Intel). Choć GCC 5 i GCC 6 znacznie zwiększyły
wydajność plików binarnych PIE na 32-bitowych Intelach, ta
optymalizacja może nie odnieść skutku na wszystkich architekturach. Proszę
rozważyć sprawdzenie wydajności swego kodu, jeśli jest on używany na
architekturach z mocno ograniczoną liczbą rejestrów.
Ze względu na brak zainteresowania i sprawdzalności, Debian usunął większość pakietów odpowiadających za kompatybilność z Linux Standard Base (LSB).
Debian pozostawi kilka kluczowych narzędzi LSB używanych wewnętrznie i
zewnętrznie, takich jak lsb-release
i funkcje systemu init sysvinit w lsb-base
. Ponadto Debian wciąż opowiada się za
standardem
Filesystem Hierarchy Standard (FHS) w wersji 2.3 z niewielkimi modyfikacjami
opisanymi w Debian Policy Manual.
Obsługa 32-bitowej architektury MIPS (zarówno big- jak i little- endian) wymaga obecnie procesora obsługującego zestaw instrukcji MIPS z MIPS32 Release 2. Nieobsługiwany będzie już między innymi Loongson-2E/2F i systemy na nim oparte (w tym laptop Yeeloong).
Poniższy skrypt powłoki może być użytecznym testem (zakładając, że w komputerze zainstalowano tylko jeden procesor). Proszę zauważyć, że procesory Loongson-3 są obsługiwane, choć twierdzą, że obsługują jedynie MIPS32 Release 1.
if grep -E -q '^isa.*\bmips(32|64)r2\b' /proc/cpuinfo; then echo "OK (R2 obsługiwane)" elif grep -q '^cpu model.*\bICT Loongson-3\b' /proc/cpuinfo; then echo "OK (Loongson 3)" else echo "NIE OK: R2 nieobsługiwane" fi
Istnieje kilka pakietów, którym Debian nie może zapewnić minimalnego wsparcia bezpieczeństwa. Szczegółowo opisano je poniżej.
Proszę zauważyć, że pakiet debian-security-support
, pomaga śledzić status
wsparcia bezpieczeństwa zainstalowanych pakietów.
Debian 9 zawiera kilka silników przeglądarek, które są narażone na wiele zagrożeń bezpieczeństwa. Wysoki poziom błędów związanych z bezpieczeństwem oraz częściowy brak długotrwałego wsparcia przed projekty macierzyste powoduje, że bardzo trudno jest wspierać te przeglądarki w postaci przepisywanych do starszych wersji poprawek bezpieczeństwa. Co więcej, zależności między bibliotekami powodują, że nie da się zaktualizować ich do nowszych wersji. W związku z tym przeglądarki oparte o silniki webkit, qtwebkit i khtml znajdują się w wydaniu stretch, ale nie są objęte wsparciem bezpieczeństwa. Przeglądarek tych nie należy używać do przeglądania niezaufanych stron internetowych.
Do zwykłego przeglądania Internetu zalecamy Firefox lub Chromium.
Chromium - choć zbudowany na podstawie kodu Webkit - jest niezależnym pakietem który będzie utrzymywany w aktualności przez przebudowanie bieżących wydań Chromium do wydania stabilnego. Firefox i Thunderbird również będą aktualne poprzez przebudowanie bieżących wydań ESR do wydania stabilnego.
Platformę Node.js zbudowano w oparciu o libv8-3.14
, które doświadcza wielu problemów
związanych z bezpieczeństwem. Obecnie brakuje wolontariuszy wewnątrz
projektu i w zespole ds. bezpieczeństwa, którzy chcieliby poświęcić znaczną
ilość czasu do ich rozwiązania.
Niestety, oznacza to że libv8-3.14
,
nodejs
i powiązane pakiety node-*
nie powinny być używane z niezaufaną zawartością, taką jak nieprzefiltrowane
dane z Internetu.
Dodatkowo pakiety te nie otrzymają żadnych aktualizacji bezpieczeństwa w trakcie wsparcia wydania stretch.
Pakiety z wydania jessie powinny się zwykle aktualizować bez problemów do stretch. Jest jednak kilka przypadków, gdzie może okazać się potrzebna interwencja albo przed, albo w trakcie aktualizacji. Szczegółowa rozpiska dla poszczególnych pakietów znajduje się poniżej.
Wydanie OpenSSH 7 domyślnie wyłączyło część starszych szyfrów i protokół SSH1. Proszę zachować ostrożność, jeśli jedyny dostęp do aktualizowanego komputera odbywa się za pośrednictwem SSH.
Moreover, the default of the "UseDNS" configuration option has changed from yes to no. This may cause users who use the "from=" functionality in authorized_keys to limit ssh access by host to be locked out, which is especially troublesome if upgrading remotely.
Więcej informacji (w języku angielskim) znajduje się w dokumentacji OpenSSH.
Niniejszy rozdział opisuje niektóre z niekompatybilnych zmian w APT, które mogą dotyczyć aktualizowanego systemu.
APT spróbuje pozbyć się wszystkich uprawnień roota, przed przystąpieniem do pobierania plików z serwerów lustrzanych. APT potrafi wykryć popularne sytuacje, gdy się to nie uda; wówczas wyświetli ostrzeżenie i powróci do pobierania plików z uprawnieniami roota. Może mu się jednak nie udać wykryć pewnych rzadkich konfiguracji (np. reguł zapory dostosowanych do konkretnych UID-ów).
Jeśli wystąpią problemy z tą funkcją, proszę przejść na użytkownika
_apt
i sprawdzić, czy:
ma on dostęp do odczytu do plików w /var/lib/apt/lists
i /var/cache/apt/archives
.
ma on dostęp do magazynu APT dot. zaufania
(/etc/apt/trusted.gpg
i
/etc/apt/trusted.gpg.d/
)
może tłumaczyć nazwy DNS i pobierać pliki. Można to sprawdzić np. następująco:
# Z pakietu dnsutils (przy korzystaniu z tor, proszę użyć tor-resolve). $ nslookup debian.org >/dev/null || echo "Nie można przetłumaczyć debian.org" $ wget -q https://debian.org/ -O- > /dev/null || echo "Nie można pobrać strony głównej debian.org"
Przy problemach z DNS proszę sprawdzić, czy plik
/etc/resolv.conf
jest odczytywalny.
W APT 1.1 wprowadzono nowy silnik priorytetów, który działa teraz zgodnie z opisem w podręczniku systemowym.
Stary silnik przypisywał priorytet do pakietu, natomiast nowy czyni to do danej wersji. Wybierana jest wersja z najwyższym priorytetem, która nie powoduje instalacji starszej wersji, albo ta z wartością > 1000.
Zmiana ta wpływa na niektóre priorytety, szczególnie te o ujemnej wartości. Poprzednio przypisanie do wersji wartości -1 efektywnie zapobiegało instalacji pakietu (priorytet pakietu wynosił -1), natomiast obecnie jedynie zapobiega instalacji danej wersji pakietu.
![]() | Uwaga |
---|---|
Poniższy rozdział dotyczy sytuacji gdy używa się (lub ma się taki zamiar) repozytoriów spoza Debiana lub samemu zarządza się repozytorium APT. |
Aby poprawić stabilność pobierania i zapewnić bezpieczeństwo pobranej zawartości APT ma obecnie następujące wymagania wobec repozytorium APT:
Obowiązkowa jest obecność pliku InRelease.
Wszystkie metadane muszą zawierać sumy kontrolne co najmniej SHA256 do wszystkich pozycji. Obejmuje to podpis GPG pliku InRelease.
Plik InRelease powinien być podpisany przynajmniej 2048 bitowym kluczem.
Jeśli jest się zależnym od repozytoriów zewnętrznych które nie są zgodne z powyższymi zasadami, proszę upomnieć się o ich spełnienie. Więcej informacji o pliku InRelease można znaleźć w Wiki Debiana.
![]() | Uwaga |
---|---|
Poniższy rozdział jest istotny tylko dla użytkowników którzy zmieniali lub muszą zmienić domyślną konfigurację urządzeń wejściowych Xorg. |
W wydaniu jessie, domyślnym sterownikiem urządzeń wejściowych w Xorg jest
sterownik evdev
. W wydaniu stretch, zmieniono domyślny
wybór na libinput
. Jeżeli dana konfiguracja Xorg wymaga
sterownika evdev
, konieczna będzie jej konwersja, tak aby
zaczęła korzystać ze sterownika libinput
lub
przekonfigurowanie systemu, aby nadal używał sterownika
evdev
.
Poniżej znajduje się przykładowa konfiguracja libinput
pozwalająca włączyć funkcję „Emulate3Buttons”.
Section "InputClass" Identifier "mouse" MatchIsPointer "on" Driver "libinput" Option "MiddleEmulation" "on" EndSection
Włączenie jej do pliku
/etc/X11/xorg.conf.d/41-middle-emulation.conf
i ponowne
uruchomienie komputera (lub tylko serwera X) powinno ją aktywować.
Sterownik evdev
jest wciąż dostępny w pakiecie
xserver-xorg-input-evdev
.
Z powodu braku opiekunów w projekcie macierzystym, system init Upstart został usunięty z wydania stretch. Proszę mieć na uwadze, że pakiet nie będzie aktualizowany w trakcie okresu wsparcia systemu Debiana 9, a poczynając od Debiana 10 (buster), zadania upstart mogą być usuwane z pakietów.
Proszę rozważyć przejście na wspierany system init, taki jak systemd lub OpenRC.
![]() | Uwaga |
---|---|
Poniższy rozdział jest przeznaczony dla deweloperów lub organizacji budujących własne pakiety Debiana. |
Zestaw narzędzi debhelper będzie obecnie domyślnie tworzył pakiety
dbgsym
do plików binarnych ELF. Osoby rozwijające i
pakietujące pliki binarne powinny sprawdzić, czy ich narzędzie obsługują te
dodatkowe pakiety tworzone automatycznie.
Jeśli korzysta się z reprepro
,
konieczne będzie zaktualizowanie go do wersji co najmniej 4.17.0. Do
aptly
wymagana będzie wersja 1.0.0,
która niestety nie jest dostępna w Debianie stretch.
Jeśli używane narzędzia nie poradzą sobie z obsługą tych pakietów, można
polecić debhelperowi wyłączyć omawianą funkcję dodając
„noautodbgsym
” do zmiennej DEB_BUILD_OPTIONS
w swojej usłudze budowania. Proszę zapoznać się ze stroną
podręcznika systemowego dh_strip aby uzyskać więcej informacji.
Program openssl oczekuje podawania opcji przed innymi argumentami. Przykładowo, poniższe polecenie obecnie nie zadziała:
openssl dsaparam 2048 -out plik
natomiast to - tak:
openssl dsaparam -out plik 2048
Polecenie openssl enc zmieniło domyślną funkcję skrótu (używaną do tworzenia klucza z hasła) z MD5 na SHA256. W przypadku gdy stare pliki mają być odszyfrowane nowszym OpenSSL (lub odwrotnie) można podać funkcję skrótu za pomocą opcji -md.
Szyfry 3DES i RC4 nie są dłużej dostępne w komunikacji TLS/SSL. Serwery linkujące wobec OpenSSL nie mogą ich oferować, a klienci nie mogą łączyć się z serwerami, które nie oferują innych szyfrów. Oznacza to, że OpenSSL i Windows XP nie korzystają z żadnego wspólnego szyfru.
Pakiet libssl-dev
udostępnia pliki
nagłówkowe do kompilacji wobec OpenSSL 1.1.0. Niestety, API znacznie się
zmieniło i możliwe, że oprogramowanie obecnie się nie skompiluje. Istnieje
artykuł z przeglądem
zmian. Jeśli aktualizacja własnego oprogramowania nie jest możliwa,
istnieje również libssl1.0-dev
udostępniający nagłówki wobec OpenSSL 1.0.2.
![]() | Uwaga |
---|---|
Niniejszy rozdział dotyczy kodu zarządzanego poza systemem Debian - lokalnie, pochodzącego od dostawców zewnętrznych lub przestarzałych skryptów i modułów Perla. |
Część modułów usunięto z rdzenia Perla i są teraz dostarczane w odrębnych
pakietach. Istotne przykłady to CGI
, dostępny obecnie w
pakiecie libcgi-pm-perl
oraz
Module::Build
, dostępny w pakiecie libmodule-build-perl
.
Bieżący katalog roboczy (.
) został usunięty z domyślnej
listy katalogów dołączeń @INC
. Może to wpłynąć na
require()
, do()
itp., gdzie argumenty
są plikami w bieżącym katalogu.
Wszystkie programy i moduły perla dostarczane przez Debiana powinny być poprawione aby zaradzić niekompatybilnościom spowodowanym przez powyższe zmiany. Prosimy zgłaszać błędy, jeśli zdarzą się wyjątki od tej reguły. Ponieważ zmiana nastąpiła w perlu 5.26.0, oprogramowanie zewnętrznie również powinno być powoli naprawiane. Informacje o metodzie poprawiania przedmiotowego problemu można znaleźć w uwagach do wydania perla 5.26 (zob. rozdział SECURITY).
Jeśli jest to konieczne, można tymczasowo ponownie aktywować
(.
) w @INC
zakomentowując wiersz w
pliku /etc/perl/sitecustomize.pl
, ale trzeba być
świadomym potencjalnego ryzyka. Ta metoda na obejście problemu zniknie w
wydaniu Debian 10. Można również ustawić zmienną środowiskową
PERL_USE_UNSAFE_INC
w określonym kontekście, co da ten
sam efekt.
Pełna lista zmian w Perlu od wersji z systemu Debian 8 jest dostępna w artykułach perl522delta i perl524delta.
Pakiet PostgreSQL języka proceduralnego PL/Perl w wydaniu jessie jest
niekompatybilny z wersją Perla w wydaniu stretch. Pakiet postgresql-plperl-9.4
będzie usunięty podczas
aktualizacji, przez co procedury Perla po stronie serwera staną się
bezużyteczne. Aktualizacja do PostgreSQL 9.6 nie powinna być dotknięta tym
problemem, procedury będą działały w nowym klastrze PostgreSQL, jeśli pakiet
postgresql-plperl-9.6
jest
zainstalowany. W razie wątpliwości należy wykonać kopię zapasową swoich
klastrów PostgreSQL 9.4 przed aktualizacją do wydania stretch.
Pakiet net-tools
nie będzie
domyślnie instalowany przy nowych instalacjach, ponieważ jego priorytet
zmniejszono z ważnego do opcjonalnego. Użytkownikom zaleca się korzystanie z
nowocześniejszego zestawu narzędzi iproute2
(który jest zresztą instalowany od
wielu wydań). Użytkownicy chcący w dalszym ciągu korzystać z programów
net-tools
mogą je zainstalować
poleceniem
apt install net-tools
Oto podsumowanie poleceń net-tools razem z ich odpowiednikami w iproute2:
przestarzałe polecenia net-tools | zamienne polecenia iproute2 |
---|---|
arp | ip n (ip neighbor) |
ifconfig | ip a (ip addr), ip link, ip -s (ip -stats) |
iptunnel | ip tunnel |
nameif | ip link |
netstat | ss, ip route (dla netstat -r), ip -s link (dla netstat -i), ip maddr (dla netstat -g) |
route | ip r (ip route) |
![]() | Uwaga |
---|---|
Dotyczy to jedynie systemów korzystających z urządzeń montowanych jako ATA over ethernet (AoE). Jeśli w systemie nie ma zamontowanych żadnych udziałów sieciowych, można bezpiecznie pominąć niniejszy rozdział. |
Ze względu na porządki w obsłudze dekonfiguracji sieci, urządzenia AoE nie
są już obsługiwane tak jak zakładano do tej pory przy wyłączaniu komputera,
co może powodować zawieszenia i/lub utratę danych. Aby zapobiec takiemu
scenariuszowi, zaleca się montować te urządzenia za pomocą opcji montowania
_netdev
. Jest ona dostępna również do pamięci wymiany
montowanej przez AoE.
Przy aktualizacji można napotkać ostrzeżenia podobne do poniższych:
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^(.*?)(\\)?\${ <-- HERE ([^{}]+)}(.*)$/ at /usr/share/perl5/Debconf/Question.pm line 72. Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE ([^}]+)}/ at /usr/share/perl5/Debconf/Config.pm line 30.
Są nieszkodliwe i pojawiają się, jeśli aktualizacja pakietu perl-base
nastąpi przed uaktualnieniem
debconf
.
![]() | Uwaga |
---|---|
Poniższy rozdział dotyczy jedynie systemów używających SELinux, który domyślnie jest wyłączony. |
W wydaniu stretch, magazyn polityki SELinux przeniesiono z
/etc/selinux/
do
<nazwa-polityki>
/var/lib/selinux/
.
Co więcej, format używany wewnątrz magazynu również uległ zmianie.
<nazwa-polityki>
Polityki udostępniane przez Debiana (np. z pakietu selinux-policy-default
) będą obsłużone
automatycznie. W przypadku polityk tworzonych lokalnie, konieczna będzie
ręczna interwencja.
Pakiet semanage-utils
udostępnia
skrypt /usr/lib/selinux/semanage_migrate_store
przeprowadzający tę migrację.
The iSCSI Enterprise Target (IET), packaged in the iscsitarget
package in previous releases, is no
longer in Debian, as it will not work with recent kernel versions, and the
project has seen no development activity in recent years.
Users of IET are encouraged to switch to the LIO stack, which is fully
supported in Debian stretch. The package targetcli-fb
provides the configuration utility
for the LIO iSCSI target.
As the LIO stack was developed independently of the IET, the configuration has to be migrated manually.