Strona 1 z 1

Firestarter - Memory error. Wyłaczanie się.

: 20 marca 2008, 15:14
autor: jollyroger3
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:

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

Kod: Zaznacz cały

touch /usr/share/dbus-1/services/gnome-keyring-daemon.service
1.b. Edytujemy go za pomocą np. nano:

Kod: Zaznacz cały

nano /usr/share/dbus-1/services/gnome-keyring-daemon.service
1.c. Zapełniamy go następującą treścią:

Kod: Zaznacz cały

[D-BUS Service]
Name=org.gnome.keyring
Exec=/usr/bin/gnome-keyring-daemon
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:

Kod: Zaznacz cały

apt-get build-dep firestarter
Na ewentualną propozycję doinstalowania potrzebnych paczek oczywiście się zgadzamy.

2.b. Upewniamy się czy mamy potrzebny do operacji pakiet fakeroot:

Kod: Zaznacz cały

apt-get install fakeroot
Jeśli nie - zgadzamy się na doinstalowanie.

2.c. Pobieramy źródła naszego felernego firestartera:

Kod: Zaznacz cały

apt-get source firestarter
2.d. Wchodzimy do katalogu ze źródłami

Kod: Zaznacz cały

cd firestarter-1.0.3/src/
3.e. Pobieramy zbawienną łatkę:

Kod: Zaznacz cały

wget [url]http://launchpadlibrarian.net/11480727/foo2.patch[/url]
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:

Kod: Zaznacz cały

patch < foo2.patch
3.g. Wdrapujemy się o jeden katalog wyżej:

Kod: Zaznacz cały

cd ..
3.h. Zbudujemy nową paczkę, jeszcze jedną zdrową paczkę :) :

Kod: Zaznacz cały

dpkg-buildpackage -rfakeroot
3.i. Idziemy o jeszcze jeden szczebelek wyżej:

Kod: Zaznacz cały

cd ..
3.j Triumfalnie instalujemy owoc naszych zmagań:

Kod: Zaznacz cały

dpkg -i firestarter_1.0.3-6_i386.deb
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:

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

: 03 kwietnia 2008, 22:12
autor: sj65
Nie wiem, a chciałbym wiedzieć, czy te ostrzeżenia, które się pojawiły, mają jakieś znaczenie -na wszelki wypadek sygnalizuję:

Kod: Zaznacz cały

dpkg-buildpackage: ostrzeżenie: Błąd podpisywania plików .dsc i .changes
Dla ułatwienia innym modyfikującym Firestarter'a , dodaję, że ze standardowymi repozytoriami instalacja się nie powiodła. Zamieniłem standardowe na wskazane na forum http://debian.linux.pl/viewtopic.php?p=50576, podane przez "fnmirk", no i wszystko się udało, nie licząc tych ostrzeżeń.

Pozdrawiam
sj65

: 04 kwietnia 2008, 06:10
autor: fnmirk
Mój >>/etc/apt/sources.list<<
>>pochodzi z forum<<
Firestartera nie mam zainstalowanego to więcej nie wiem.