Rozdział 5. Problemy, które należy mieć na uwadze, a dotyczące wydania wheezy

Spis treści

5.1. Obsługa LDAP
5.2. Stan bezpieczeństwa przeglądarek internetowych
5.3. ConsoleKit i alternatywne menedżery logowania
5.4. Obsługa i zmiany w środowisku GNOME
5.5. Zmiany w środowisku KDE
5.6. NetworkManager
5.7. Usunięty pakiet perl-suid
5.8. Wersje Request Tracker
5.9. Zmiany bootlogd
5.10. /etc/mtab i _netdev
5.11. Przejście z pdksh do mksh
5.12. Kompatybilność Puppet 2.6 / 2.7
5.13. Skutki wprowadzenie wieloarchitekturowości dla zestawów narzędzi programistycznych
5.14. Backend SQL Cyrus SASL
5.15. Oprogramowanie układowe do sterowników sieciowych i graficznych

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”.

5.1. Obsługa LDAP

Funkcja w bibliotekach kryptograficznych wykorzystywanych w bibliotekach LDAP powoduje, że programy używające LDAP, próbujące zmienić swoje efektywne uprawnienia, załamują się przy łączeniu z serwerem LDAP za pomocą TLS lub SSL. Może stanowić to problem dla programów korzystających z setuid w systemach używających libnss-ldap, takich jak sudo, su lub schroot oraz dla programów setuid przeprowadzających wyszukiwania LDAP, np. sudo-ldap.

Zaleca się zastąpienie pakietu libnss-ldap nowszą biblioteką libnss-ldapd, która używa oddzielnego demona (nslcd) przy wszystkich wyszukiwaniach LDAP. Zamiennikiem libpam-ldap jest libpam-ldapd.

Proszę zauważyć, że libnss-ldapd poleca demona buforującego NSS (nscd) - przed instalacją należy sprawdzić jego przydatność w swoich zastosowaniach. Alternatywą do nscd może być unscd.

Więcej informacji można uzyskać w zgłoszeniach błędów #566351 i #545414.

5.2. Stan bezpieczeństwa przeglądarek internetowych

Debian 7.0 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 Wheezy, 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 przeglądarki korzystające z silnika xulrunner Mozilli (Iceweasel i Iceape) lub Chromium.

W poprzednich wydaniach wydawanie poprawek bezpieczeństwa w odniesieniu do Xulrunner okazywało się skuteczne. Chromium, choć zbudowany w oparciu o kod Webkita, jest niezależnym pakietem, który będzie aktualizowany przez przebudowywanie bieżących wydań Chromium w dystrybucji stabilnej.

5.3. ConsoleKit i alternatywne menedżery logowania

ConsoleKit w dystrybucji Debian 7.0 nie traktuje sesji rozpoczętych poleceniem startx lub menedżerami niezintegrowanymi z consolekit (np. xdm i slim) jako lokalnych, co może uniemożliwiać dostęp do pewnych urządzeń.

Zaleca się korzystanie z programów gdm3, kdm lub lightdm.

5.4. Obsługa i zmiany w środowisku GNOME

Domyślnie, większość narzędzi związanych z dostępnością nie zostało włączonych w menedżerze logowania GNOME (gdm3). Najprostszą metodą aktywowania lupy lub klawiatury ekranowej jest włączenie ekranu logowania shell.

Aby to osiągnąć, należy edytować plik /etc/gdm3/greeter.gsettings, odkomentowując wiersz:

session-name='gdm-shell'

i zakomentowując

session-name='gdm-fallback'

Proszę wziąć pod uwagę, że wymaga to kompatybilnej w trybie 3D karty graficznej, co jest także powodem, dla którego opcja nie została włączona domyślnie.

5.5. Zmiany w środowisku KDE

Pakiet knetworkmanager stał się przestarzały i został zastąpiony przez plasma-widget-networkmanagement w nowym KDE Plasma Workspace.

Przy używaniu przestarzałej aplikacji knetworkmanager należy być przygotowanym na konieczność częściowo ręcznej konfiguracji. Może nastąpić potrzeba ręcznego dodania plasma-widget-networkmanagement do paneli lub pulpitu.

Jeśli połączenie sieciowe nie powinno zależeć od działania widżetu network-manager to należy ustawić je jako połączenie systemowe.

5.6. NetworkManager

Polecenie NetworkManager może wykryć sytuację gdy interfejs sieciowy jest zarządzany przez ifupdown w celu uniknięcia konfliktów. Nie stanie się to przy korzystaniu z programów takich jak wicd-daemon. Jeśli dwa demony zarządzają tym samym interfejsem sieciowym i spróbują połączyć się z siecią to można się spodziewać różnych problemów.

Na przykład, jeśli działają wicd-daemon i NetworkManager to próba skorzystania z klienta wicd do nawiązania połączenia zakończy się następującym błędem:

Connection Failed: bad password

Próba użycia klienta NetworkManager może zakończyć się następującym komunikatem:

NetworkManager is not running.  Please start it.

Użytkownikom GNOME zaleca się zainstalowanie i używanie programu NetworkManager. W razie potrzeby demon NetworkManager można wyłączyć na stałe poleceniem:

# update-rc.d network-manager disable

Po wyłączeniu demona zaleca się sprawdzenie zawartości pliku /etc/resolv.conf. Służy on do określenia serwerów DNS (odpowiadających za tłumaczenie nazw domenowych), a jego zawartość mogła zostać zastąpiona przez NetworkManager.

5.7. Usunięty pakiet perl-suid

Polecenie suidperl zostało usunięte w projekcie macierzystym w wersji 5.12, tak więc usunięto również pakiet perl-suid, dystrybuowany dotychczas w Debianie. Dostępne alternatywy obejmują proste opakowanie setuid C do wykonania skryptu Perla, z położenia zapisanego na stałe lub ogólniejsze narzędzie, takie jak sudo.

5.8. Wersje Request Tracker

Jeśli w wydaniu squeeze ma się zainstalowany pakiet request-tracker3.8 to proszę zwrócić uwagę, że nie ma go już w wheezym, ponieważ został zastąpiony przez request-tracker4. Konieczne jest wykonanie kilku czynności przed aktualizacją z request-tracker3.8 do request-tracker4. Proszę najpierw doinstalować request-tracker4 do istniejącego pakietu request-tracker3.8 i zapoznać się z (angielskimi) uwagami na temat instalacji/aktualizacji z pliku /usr/share/doc/request-tracker4/README.Debian.gz (rozdział: Upgrading from request-tracker3.8 to request-tracker4).

To samo tyczy się użytkowników korzystających z request-tracker3.6 lub jeszcze starszych pakietów, z poprzednich wydań Debiana; w takich przypadkach zaleca się stopniową aktualizację do poszczególnych wersji, zgodnie z kolejnymi instrukcjami aktualizacji.

5.9. Zmiany bootlogd

Polecenie bootlogd zostało przeniesione z pakietu sysvinit-utils do oddzielnego - bootlogd. Aby używać w dalszym ciągu bootlogd, konieczna jest instalacja pakietu bootlogd. Proszę zwrócić uwagę, że plik konfiguracyjny /etc/default/bootlogd i jego opcja BOOTLOGD_ENABLE obecnie nie istnieją. Aby nie używać bootlogd, należy po prostu usunąć pakiet bootlogd.

5.10. /etc/mtab i _netdev

Plik /etc/mtab, używany do przechowywania listy aktualnie zamontowanych systemów plików stał się dowiązaniem symbolicznym do /proc/mounts. W prawie każdym przypadku poprawi to niezawodność systemu, ponieważ zniknie potencjalne zagrożenie niespójności tej listy z rzeczywistością. Jednak w przypadku używania opcji _netdev w swoim pliku /etc/fstab (do wskazania, że dany system plików jest systemem sieciowym, wymagającym specjalnego traktowania), nie będzie ona dłużej ustawiana w /proc/mounts po ponownym uruchomieniu systemu. Nie spowoduje to problemów w przypadku standardowych, sieciowych systemów plików, takich jak NFS, które nie polegają na opcji _netdev. Systemy plików, których nie dotknie ten problem to: ceph, cifs, coda, gfs, ncp, ncpfs, nfs, nfs4, ocfs2 i smbfs. W przypadku systemów plików, które polegają na opcji _netdev w celu poprawnego odmontowania w trakcie zamykaniu systemu, np. przy wykorzystaniu NBD, statyczny plik mtab będzie jedynym wyjściem, aby używać opcji _netdev w wheezym. Należy wówczas, po zakończeniu aktualizacji do wydania wheezy, przywrócić statyczny plik /etc/mtab:

  • Edytując plik /etc/init.d/checkroot.sh i dodając znak komentarza # przed następującymi wierszami:

            if [ "$rootmode" != "ro" ]; then
                    mtab_migrate
            fi
    

  • W przypadku, gdy już uruchomiono system ponownie, a plik /etc/mtab stał się już dowiązaniem symbolicznym, należy wykonać:

    # rm /etc/mtab
    # cp /proc/mounts /etc/mtab
    

    Następnie dodać opcję _netdev montując odpowiednie systemy plików ponownie:

    # mount -o remount system-plików
    

    /etc/mtab zostanie w pełni odtworzony po następnym uruchomieniu systemu.

5.11. Przejście z pdksh do mksh

Pakiet Public Domain Korn Shell (pdksh) zostanie porzucony w następnym wydaniu po edycji wheezy, ponieważ pdksh nie jest już utrzymywany (nie był aktywnie rozwijany od roku 1999).

Pakiet MirBSD Korn Shell (mksh) zawiera jego następcę. Pochodzi on od powłoki Public Domain Korn Shell i był aktualizowany pod kątem zgodności ze standardem POSIX, dotyczącym powłoki. W systemie Debian wheezy pdksh jest pakietem przejściowym korzystającym z lksh> (wariantu mksh ze specjalnymi opcjami kompatybilności), w celu zapewnienia dowiązania symbolicznego do pdksh. Ten kompatybilny plik binarny zachowuje się bardziej jak tradycyjna powłoka Public Domain Korn Shell niż obecny pakiet mksh. A ponieważ uwzględnia on poprawki błędów wpływające na jego zachowanie nie jest dokładnym zamiennikiem. Dlatego zaleca się zmienić swoje skrypty

#!/bin/pdksh

na

#!/bin/mksh

i przetestować je. Jeśli testy się nie powiodą zalecamy dokonanie poprawek w swoich skryptach. Jeśli z jakiegoś powodu nie jest to możliwe można zmienić nagłówek pliku na

#!/bin/lksh

i przetestować skrypty ponownie. Ten test ma większe szanse powodzenia bez konieczności dokonywania obszernych zmian kodu. Proszę jednak być świadomym, że w przyszłości ten pakiet przejściowy zostanie usunięty z dystrybucji.

Ten plik wykonywalny zachowujący kompatybilność nie jest odpowiedni do stosowania interaktywnego, dlatego administrator systemu powinien zmienić odpowiednio powłokę logowania swoich użytkowników korzystających z powłoki Korna. W celu zmniejszenia czasu niedostępności usługi proszę wykonać to przed aktualizacją całego systemu, tzn. proszę ręcznie zainstalować pakiet mksh i zmienić powłoki logowania i/lub interaktywne użytkowników, korzystających z pdksh na mksh. Zaleca się również skopiowanie pliku /etc/skel/.mkshrc do ich katalogów domowych, co udostępnia pewne funkcje powłoki, takie jak pushd, popd i dirs oraz przyjemny

PS1

(znak zachęty powłoki).

5.12. Kompatybilność Puppet 2.6 / 2.7

Przy aktualizacji systemu zarządzania Puppet z wydania squeeze do wheezy należy upewnić się, że na odpowiednim puppetmaster działa co najmniej wersja 2.7. Jeśli master korzysta z wersji puppetmaster z wydania squeeze, system zarządzający wheezym nie będzie mógł się z nim połączyć.

Objawem wystąpienia takiego zestawienia będzie następujący błąd przy uruchomieniu puppet agent:

Could not retrieve catalog from remote server: Error 400 on SERVER: No support for http method POST

W celu rozwiązania problemu konieczna jest aktualizacja puppetmaster. Master w wersji 2.7 może zarządzać systemem klienckim w wersji 2.6.

5.13. Skutki wprowadzenie wieloarchitekturowości dla zestawów narzędzi programistycznych

Wprowadzenie wieloarchitekturowości (opisanej w rozdziale Sekcja 2.2.2, „Wieloarchitekturowość”) zmieniło część ścieżek niektórych plików, co może naruszyć założenia przyjęte przez składniki narzędzi programistycznych do tworzenia oprogramowania. W przypadku systemu Debian dokonano odpowiednich aktualizacji, lecz użytkownicy budujący pakiety samodzielnie lub używający zewnętrznych kompilatorów, powinni być świadomi zmian.

Pewne wskazówki (w języku angielskim) na temat obejścia tych problemów można znaleźć w pliku /usr/share/doc/libc6/NEWS.Debian.gz i w zgłoszeniu błędu #637232.

5.14. Backend SQL Cyrus SASL

Konfiguracja backendu silnika SQL do Cyrus SASL udostępnianego przez pakiet libsasl2-modules-sql została zmieniona ze specjalnej konfiguracji bazy danych (np. mysql) do standardowej wtyczki auxprop sql.

Konieczna jest aktualizacja plików konfiguracyjnych do aplikacji używających SASL np.:

auxprop_plugin: mysql

należy zastąpić wpisem:

auxprop_plugin: sql
sql_engine: mysql

Dodatkowo konieczne jest zastąpienie %u przez łańcuch %u@%r w zapytaniu SQL (jeśli jest ono używane), ponieważ użytkownik i dziedzina (ang. realm) są teraz udostępniane oddzielnie.

5.15. Oprogramowanie układowe do sterowników sieciowych i graficznych

Część sterowników sprzętowych, m.in sterowniki do kart sieciowych (przewodowych i bezprzewodowych) i sterowniki do czipów kart graficznych ATI/AMD do poprawnego funkcjonowania wymaga załadowania oprogramowania układowego (tzw. firmware).

Oprogramowanie układowe często nie jest wolnym oprogramowaniem i co za tym idzie jest dostępne wyłącznie w części non-free repozytorium, w pakiecie firmware-linux i innych pakietach.