Firestarter - Memory error. Wyłaczanie się.
: 20 marca 2008, 15:14
Przedmiotem dzisiejszego [HOW-TO] będzie problem z Firestarterem pojawiający się w Debianie.
Uciążliwość, której naprawę opiszę polega na tym, że firestarter-1.0.3xxxxxx.deb wywołuje błąd pamięci co skutkuje zamknięciem firestartera po kilku minutach pracy.
Zanim przystąpimy do naprawy właściwej musimy nanieść małą poprawkę związaną z pakietem gnome-keyring.
1. Naprawy część pierwsza (naprawa kosmetyczna):
Próba uruchomienia firestartera w przyzwoity sposób (a więc z konsoli) owocuje następującym komunikatem:
Co prawda nie jest to komunikat dla firestartera śmiertelny, ale ładny też nie jest.
1.a. Tworzymy we właściwym miejscu nowy pusty plik .service
1.b. Edytujemy go za pomocą np. nano:
1.c. Zapełniamy go następującą treścią:
To powinno zaspokoić głodnego demona gnome keyring i zlikwidować problem
Wszystko powyższe i poniższe wykonujemy oczywiście jako root.
2. Naprawy część druga (właściwa naprawa paczki):
W tej części zajęć praktyczno-technicznych zaaplikujemy firestarterowi łatkę rozwiązującą problem z pamięcią powodujący niespodziewane wyłączanie się i zbudujemy nowy, działający pakiet.
2.a. Upewniamy się, czy mamy wszystkie zależności potrzebne do rekompilacji:
Na ewentualną propozycję doinstalowania potrzebnych paczek oczywiście się zgadzamy.
2.b. Upewniamy się czy mamy potrzebny do operacji pakiet fakeroot:
Jeśli nie - zgadzamy się na doinstalowanie.
2.c. Pobieramy źródła naszego felernego firestartera:
2.d. Wchodzimy do katalogu ze źródłami
3.e. Pobieramy zbawienną łatkę:
Jeśli pobraliśmy ją z innego miejsca wcześniej, to wrzucamy ją do katalogu ze źródłami firestartera.
3.f. Dokonujemy naprawy właściwej:
3.g. Wdrapujemy się o jeden katalog wyżej:
3.h. Zbudujemy nową paczkę, jeszcze jedną zdrową paczkę
:
3.i. Idziemy o jeszcze jeden szczebelek wyżej:
3.j Triumfalnie instalujemy owoc naszych zmagań:
Oczywiście podajemy nazwę pakietu, który zrobiliśmy.
Gotowe, możemy szukać problemów gdzie indziej :yes:
______________________________________________
PS. Dobrze, że alfabetu nie brakło
Dla "wtajemniczonych" wersja skrócona:
Uciążliwość, której naprawę opiszę polega na tym, że firestarter-1.0.3xxxxxx.deb wywołuje błąd pamięci co skutkuje zamknięciem firestartera po kilku minutach pracy.
Zanim przystąpimy do naprawy właściwej musimy nanieść małą poprawkę związaną z pakietem gnome-keyring.
1. Naprawy część pierwsza (naprawa kosmetyczna):
Próba uruchomienia firestartera w przyzwoity sposób (a więc z konsoli) owocuje następującym komunikatem:
Kod: Zaznacz cały
** (gksu:7720): WARNING **: couldn't communicate with gnome keyring daemon via dbus: The name org.gnome.keyring was not provided by any .service files
1.a. Tworzymy we właściwym miejscu nowy pusty plik .service
Kod: Zaznacz cały
touch /usr/share/dbus-1/services/gnome-keyring-daemon.service
Kod: Zaznacz cały
nano /usr/share/dbus-1/services/gnome-keyring-daemon.service
Kod: Zaznacz cały
[D-BUS Service]
Name=org.gnome.keyring
Exec=/usr/bin/gnome-keyring-daemon

Wszystko powyższe i poniższe wykonujemy oczywiście jako root.
2. Naprawy część druga (właściwa naprawa paczki):
W tej części zajęć praktyczno-technicznych zaaplikujemy firestarterowi łatkę rozwiązującą problem z pamięcią powodujący niespodziewane wyłączanie się i zbudujemy nowy, działający pakiet.
2.a. Upewniamy się, czy mamy wszystkie zależności potrzebne do rekompilacji:
Kod: Zaznacz cały
apt-get build-dep firestarter
2.b. Upewniamy się czy mamy potrzebny do operacji pakiet fakeroot:
Kod: Zaznacz cały
apt-get install fakeroot
2.c. Pobieramy źródła naszego felernego firestartera:
Kod: Zaznacz cały
apt-get source firestarter
Kod: Zaznacz cały
cd firestarter-1.0.3/src/
Kod: Zaznacz cały
wget [url]http://launchpadlibrarian.net/11480727/foo2.patch[/url]
3.f. Dokonujemy naprawy właściwej:
Kod: Zaznacz cały
patch < foo2.patch
Kod: Zaznacz cały
cd ..

Kod: Zaznacz cały
dpkg-buildpackage -rfakeroot
Kod: Zaznacz cały
cd ..
Kod: Zaznacz cały
dpkg -i firestarter_1.0.3-6_i386.deb
Gotowe, możemy szukać problemów gdzie indziej :yes:
______________________________________________
PS. Dobrze, że alfabetu nie brakło

Dla "wtajemniczonych" wersja skrócona:
Kod: Zaznacz cały
#apt-get build-dep firestarter
#apt-get install fakeroot
#apt-get source firestarter
#cd firestarter-1.0.3/src/
#wget [url]http://launchpadlibrarian.net/11480727/foo2.patch[/url]
#patch < foo2.patch
#cd ..
#dpkg-buildpackage -rfakeroot
#cd ..
#sudo dpkg -i firestarter_1.0.3-6_i386.deb