Tag Archives: Debian

Sphinx 2 w systemie Debian – budowanie paczki ze źródeł

Przy budowaniu niewielkich serwisów obsługujących niewielką ilość dokumentów(artykuły, wpisy, komentarze, etc) zaprzęganie dedykowanych serwerów do przeszukiwania mija się z celem. Swoje projekty w dużej mierze buduję w oparciu o świetny phpowy framework Zend, który posiada bibliotekę Zend_Search_Lucene bardzo łatwo przyswajalną do budowy własnego mechanizmu wyszukiwania opartego na dokumentach.

Jak się okazuje to zendowskie Lucene nie jest wcale takie dobre, kiedy liczba dokumentów zacznie przekraczać kilkadziesiąt tysięcy. Najgorsze i najbardziej skomplikowane zapytania do indeksu(zoptymalizowanego oczywiście) trwały mi po 4 – 6 sekund i więcej! Niestety takie rozwiązanie nie może zostać przyjęte przez żaden chcący nawet szanować się serwis. Szukając zatem jakiegoś lepszego rozwiązania trafiłem na otwarto źródłowy serwer przeszukiwania Sphinx.

Sphinx jest w całości napisany w C++ i posiada wygodne API, które jest dostępne w większości popularnych języków do tworzenia aplikacji internetowych(tylko takie mnie interesują na chwilę obecną 😉 ). W oficjalnym serwisie chwalą się twórcy osiągnięciami wydajnościowymi swojego produktu i muszę przyznać, że są one naprawdę imponujące. Sam po wstępnych testach serwera(a teraz już w produkcji) muszę przyznać, że tak piekielnie szybkiego rozwiązania do przeszukiwania to jeszcze nie miałem :-).

Chyba wystarczająco dużo już posmarowałem Sphinxowi, czyli teraz czas przejść do konkretów – instalacji. Po przejściu w podstronę pobierania serwera widzimy, że mamy dostępnych kilka wersji serwera. Od razu co przyszło mi na myśl to pominięcie tych archaicznych wersji 0.XX i skupienie się na najnowszej, chociaż ciągle w fazie beta, wersji 2.XX. Widząc, że nie ma tam paczki dla Debiana(ani w repozytoriach) z najnowszą wersją doszedłem do wniosku, że sam sobie ją zbuduję, a co?! 🙂 Proces produkcji takowej paczki jest bardzo prosty i sprowadza się do kilku ruchów klawiaturą w konsoli 😉

1. Pobieramy źródła ze strony producenta do katalogu /usr/src i tam je rozpakowujemy:

# cd /usr/src 
# wget http://sphinxsearch.com/files/sphinx-2.0.1-beta.tar.gz 
# tar zxvf sphinx-2.0.1-beta.tar.gz

2. Instalujemy wymagane paczki do budowania pakietów Debiana:

# apt-get install build-essential fakeroot dpkg-dev dh-make

Wchodzimy następnie do katalogu ze źródłami i przygotowujemy je do zbudowania pakietu:

# cd 
sphinx-2.0.1-beta
 

# dh_make -f /usr/src/ sphinx-2.0.1-beta.tar.gz

 

Tutaj na pytanie o tym paczki odpowiadamy “s”(single binary), przy następnym pytaniu wciskamy ENTER i powinien naszym oczom ukazać się komunikat, że przygotowanie źródeł oryginalnych do specyfiki źródeł debiana powiodły się.

Opcja “-f” w tym przypadku mówi aplikacji dh_make aby jako archiwum źródeł oryginalnych wykorzystać te, które ściągnęliśmy na początku procesu budowy paczki.

Po przygotowaniu źródeł do budowy pakietu Debiana możemy wyedytować plik debian/control i wstawić tam swoje dane. Po czym przechodzimy do budowy paczki:

# dpkg-buildpackage -rfakeroot

Jeśli budowanie pakietu jest przeprowadzane na maszynie wielordzeniowej lub wieloprocesorowej to można w tym miejscu użyć opcji -jX(np.: -j8), gdzie X to liczba rdzenie, wątków lub procesorów, które posiadamy. Opcja ta jest analogiczna do tej, którą można spotkać w programie make.

W ostatnim etapie budowania pakietu dostałem błąd z “uber testa”, kombinować za dużo mi się nie chciało i żeby się go w miarę szybko pozbyć edytowałem plik ubertest.php:

# vim text/ubertest.php

i na samym początku skryptu dałem wyjście ze statusem 0

1 <?php

2 exit(0);

 

3 //
4 // $Id: ubertest.php 2765 2011-04-08 13:07:32Z klirichek $
5 //
6
7 $sd_managed_searchd = false;
8 $sd_skip_indexer = false;
9 $g_ignore_weights = false;

Po czym odpaliłem ponownie budowanie pakietu i tym razem proces budowania paczki przeszedł bez żadnych problemów do samego końca. W katalogu wyżej od teraz dostępny mam teraz przed momentem zbudowany pakiet z rozszerzeniem .deb, który przy pomocy dpkg można zainstalować i przejść do konfiguracji swojego serwera wyszukiwania.

Przykładem takiej konfiguracji może podzielę się kolejnym razem 🙂

 

Number of Views :3841

Filesystem notification initialization error — contact your mail administrator (check for configuration errors with the FAM/Gamin library)

Błąd Filesystem notification initialization error — contact your mail administrator (check for configuration errors with the FAM/Gamin library) pojawia się w programach pocztowych i najczęściej powodowany jest przez serwer pocztowy Courier. Aby go naprawić w systemach Debiano-podobnych należy zainstalować paczkę gamin

# apt-get install gamin

podczas instalacji w systemie Debian Squeezy manager pakietów usunie paczkę libfam0 i zgłosi problem z zależnościami, który należy sobie olać.

dpkg: libfam0: dependency problems, but removing anyway as you requested:  
 courier-base depends on libfam0. 
 courier-imap depends on libfam0.

Po instalacji pozostaje zrestartować wszystkie serwisy couriera.

for serwis in /etc/init.d/*courier*; do $serwis restart; done

Od teraz błąd w programach pocztowych powinien przestać się pojawiać.

Number of Views :10099

Zmiana domyślnego mechanizmu składowania danych(storage engine) w serwerze MySQL

Baza MySQL oferuje dostęp do kilku mechanizmów składowania danych(ang. storage engines). Domyślnie serwer ustawiony jest na myisam. Niestety nie pozwala on na wykorzystanie dobrodziejstw relacji dla przykładu(pełna lista cech każdego z mechanizmów w dokumentacji – Storage Engines v5.1). Tę konkretną funkcję udostępnia InnoDB.

Narzędzia do modelowania typu Power Architect nie dają możliwości ustawienia mechanizmu składowania dla tabel, więc jedynym rozwiązaniem jest zmiana domyślnego w konfiguracji serwera.

Całość zabiegu jest bardzo prosta bo wystarczy edytować główny plik konfiguracyjny my.cnf. Dla dystrybucji debiano-podobnych znajduje się on w /etc/mysql/my.cnf.

Zmiana domyślnych ustawień polega na dodaniu w sekcji [mysqld] opcji:

default-storage-engine = innodb

Aby wprowadzone zmiany zaczęły działać należy przeładować ustawienia serwera MySQL.

Number of Views :3887

Wine i uTorrent 1.8.5

Ostatnimi dniami zadzwonił do mnie przyjaciel i poprosił mnie o odpalenie uTorrenta 1.8.5 na jego serwerze shellowym. Aktualna wersja tego oprogramowania to 2.0.2, a że jego współpraca z wine nie układa się za dobrze, trzeba było podmienić wersje. Okazało się to zadaniem nieco trudniejszym niż mogłoby się wydawać, więc sporządziłem krótką instrukcję postępowania i zamieszczam ją poniżej. Myślę, że podmiana z innych numerków będzie przebiegała analogicznie.

Jak za mocno nie wk****ć się podczas próby odpalenia uTorrenta 1.8.5 na wine?

1. Idziemy do kolegi, który ma korzenie w carskiej rosji i prosimy go
o kanke z bimbrem.
2. Po drodze do domu kupujemy trochę boczku (ze skórką – przyda się na
przygładzenie włosów) i owijamy go w gazetę.
3. Siadamy przed komputerem i logujemy się na shella.
4. Instalujemy wersję aktualną 2.0.2.
5. Pociągamy z lubością pierwszy łyk bimbru.
6. Wyglądamy przez okno czy nie czai się gdzieś policja (bimber jest nielegalny)
7. Pociągamy kolejny łyk bimbru i zagryzamy boczkiem
8. Kopiujemy katalog
/home/NAZWA_TWOJEGO_UZYTKOWNIKA/.wine/drive_c/windows/profiles/NAZWA_TWOJEGO_UZYTKOWNIKA/Dane
aplikacji/uTorrent do /home/NAZWA_TWOJEGO_UZYTKOWNIKA/.wine/drive_c/Program Files/
9. Pijemy siwuchę
10. Ściągamy uTorrenta 1.8.5 i jeśli jesteśmy jeszcze w stanie widzieć
cokolwiek pijemy resztę bimbru
11 Kopiujemy ściągnięty (nie instalujemy!!!) utorrent.exe do Program
Files/uTorrent i zmieniamy mu nazwę na uTorrent.exe (ja zmieniłem i od
razu zaczęło działać, nie wiem czy bez tego będzie działać, zwykła
logika, producent dał mu nazwę uTorrent to pewnie będzie działać pod
nazwą uTorrent.exe). Teraz uTorrent działa w wersji 1.8.5 – jak
zresztą widać.
12. Księżycówka się skończyła, więc można odkapslować sobie piwo (np.
Żywiec) i je wypić. Dobranoc!

Number of Views :1562

Debian 6.0 Codename: Squeeze

Jak donosi ogłoszenie na developerskiej liście dyskusyjnej Debiana w marcu 2010 roku ma zostać zamrożona dystrybucja testowa i przed konferencją DebConf ma wyjść nowa stabilna wersja Debiana.

Manager projektu Steve McIntyre chce zakończyć proces nowego wydania przed konferencją, aby mieć wolną głowę, otwartą jedynie na przyszłość dystrybucji.

It would be nice to have things done before we head off to New York for DebConf in July, so that we’re free of the release work while we discuss future plans

ITWire

Number of Views :1691

Now listening – Amarok + Pidgin

Poniżej opis jak spiąć Amaroka z Pidginem, aby pokazywał czego słuchamy w statusie.

Instalujemy amaroka:

# apt-get install amarok

Instalujemy plugina do pidgina pidgin-musictracker(unstable), w tym celu udajemy się na http://packages.debian.org/sid/pidgin-musictracker wybieramy mirrora ściągamy paczkę deb, uzupełniamy zależności i dajemy(aktualna wersja)

# dpkg -i pidgin-musictracker_0.4.18-1_amd64.deb

Jeśli mamy sida to wystarczy zainstalować pakiet prosto z repozytoriów:

# apt-get install pidgin-musictracker

odpalamy Pidgina -> Plugins szukamy plugina musictracker uaktywniamy go i przechodzimy do konfiguracji, tam wybieramy format opisu close close i gotowe. Opisy podczas słuchania muzyki w Amaroku będą od tego momentu same zmieniały.

Number of Views :1186

Błąd przy uruchamianiu MOC (music on console)

Podczas uruchamiania MOC(music on console) otrzymywałem następujący błąd:
FATAL_ERROR: Can't receive value from the server.

Rozwiązaniem problemu okazało się wyczyszczenie ~/.moc/cache (przy okazji usunąłem sobie również playlistę 😉

rm -fr ~/.moc/cache/*

Przy ponownym uruchomieniu (mocp) MOC wystartował normalnie.

Number of Views :1302

pornview

# aptitude search porn
p   pornview                                                       – Image and movie viewer/manager

Number of Views :1444