Nie upodabniaj się do komputera, lecz staraj się upodabniać komputer do siebie.
Dodawanie własnego menu do menu fluxboksa (i innych menadżerów okien) to prosta sprawa. Na początek należy zainstalować pakiet menu
# aptitude install menu
Aby wygodnie dodawać własne pozycje do menu fluxboksa należy utworzyć katalog ~/menu:
% mkdir ~/.menu
Następnie zakładamy w wcześniej utworzonym katalogu plik np. amule
% editor ~/.menu/amule
o następującej zawartości:
?package(local.amule):needs=”x11″ section=”Apps/Net” title=”aMule” hints=”ed2k clients” \
command=”/usr/local/bin/amule” icon=”/usr/share/pixmaps/amule.xpm”
?package(local.amule) – zawiera listę nazw pakietów, rozdzielaną przecinkami, które są niezbędne aby pozycja pojawiła się w menu np. (amule,amulecmd). Jeśli nie mamy zainstalowanej takiej paczki, np. instalowaliśmy program innym sposobem, to w wpisujemy wartość (local.amule). W tej sytuacji automat potraktuje to jakby pakiet był zainstalowany.
needs=”x11″ – informuje automat w jakim środowisku uruchamia się program, w naszym przypadku jest to środowisko graficzne X (więcej file:///usr/share/doc/menu/html/ch3.html#s3.4)
section=”Apps/Net” – określa sekcję w menu w jakiej pojawi się nasza pozycja, pełna lista sekcji znajduje się pod adresem: file:///usr/share/doc/menu/html/ch3.html#s3.5
title=”aMule” – tytuł jaki będzie wyświetlany w menu
command=”/usr/local/bin/amule” – ścieżka do programu wykonywalnego.
hints=”ed2k clients” – pole jest opcjonalne, po informacje można zajrzeć pod file:///usr/share/doc/menu/html/ch3.html#s3.8
Obowiązkowe pola to: needs, section, title i command.
Kiedy nasz plik jest już gotowy wydajemy polecenie
update-menus
W przypadku fluxboksa należy się upwenić, że w pliku ~/.fluxbox/init klucz session.menuFile: ma wartość ~/.fluxbox/fluxbox-menu
session.menuFile: ~/.fluxbox/fluxbox-menu
Po uruchomieniu fluxboksa nasza nowa pozycja powinna pojawić się w menu. Szczegółowa dokumentacja: file:///usr/share/doc/menu/html/index.html
Czasem należy wykonać kilka bardziej złożonych operacji przy pomocy aptitude. Pełną pomoc do aptitude można znaleźć w podręczniku użytkownika aptitude, jednak zdarzają się przypadki, kiedy nie ma czasu zgłębiać dokumentacji. W niniejszym wpisie zamieszczam kika zastosowań aptitude w przypadkach, z którymi się zetknąłem lub sam miałem do czynienia.
% aptitude search "?or(~nnetwork, ~dnetwork)"
Polecenie wyszuka wszystkie pakiety, które w opisie bądź w nazwie zawierają słowo network.
Wyszukiwanie pakietów np. z archiwum experimental i wyświetlenie samych nazw pakietów, np. w celu użycia jako argument dla innego polecenia.
% aptitude aptitude search ~i~Aexperimental -F "%p"
Kiedy instalujemy pakiet przy pomocy aptitude, pakiety zależne są instalowane automatycznie poprzez zależności. Takie automatycznie zainstalowane pakiety są zaznaczanie prze menadżera pakietów jako A – instalowane automatycznie. Czasem przy usuwaniu pakietu, takie zależności również są usuwane, gdyż zostały automatycznie zainstalowane. Czasem jest to zachowanie niepożądane w stosunku do niektórych pakietów, np. takich które chcemy jednak zostawić. Podczas odinstalowywania pakietu widzimy, które pakiety będą automatycznie odinstalowane. Należy przerwać proces i wszystkim pakietom, które chcemy zostawić usunąć flagę A – auto.
# aptitude unmarkauto pakiet1 pakiet2
Można użyć wyników wyszukiwania jako argumentów polecenia, np. gdy chcemy usunąć metapakiet kde4, ale nie usuwać całego kde4
# aptitude unmarkauto `apt-cache depends kde4 | awk '{if ($1=="Depends:") print $2}'`
Następnie można usunąć metapakiet kde4 po to aby spokojnie usunąć tę część kde, której nie używamy, np. kdegames.
# aptitude remove kdegames
% aptitude search ~i~b
Załóżmy, że to pakiet mplayer-nogui ma złamane zależności:
iBA mplayer-nogui – The Ultimate Movie Player For Linux
Szukamy teraz pakietu, z którym jest problem:
#aptitude search `apt-cache depends mplayer-nogui | awk '{if ($1=="Depends:") print $2}'`
Pakiety, które (w moim przypadku) są interesujące to libxvmc1 oraz libxv1.
idA libxv1 – X11 Video extension library
iBA libxvmc1 – X11 Video extension library
Problem polegał na tym, że pakiet libxv1 był zaznaczony do usunięcia – flaga d. Wystarczyło polecenie:
# aptitude install libxv1
# aptitude hold pakiet
Załóżmy, że przestaliśmy lubić kde i chcemy znaleźć każdy zainstalowany program z sekcji kde, aby pozbyć się kde raz na zawsze. Następnie użyć listy do usunięcia kde.
% aptitude search ~skde | egrep "^i" | awk '{ if($2 ~/A/){ print $3} else print $2}'
# aptitude purge `aptitude search ~skde | egrep "^i" | awk '{ if($2 ~/A/){ print $3} else print $2}'`
Jak sobie poradzić? Nie jest to trudne, ale nie zawsze rozwiązuje problem, ze względu na różne czynniki.
# apt-file search usr/lib/gcc/i486-linux-gnu/4.2/include/limits.h | awk -F ':' '{print $1}' | xargs aptitude install
Program apt-file musi być zainstalowany i jego baza zaktualizowana (apt-file update)
# COLUMNS=140 dpkg -l|grep ^rc|awk {'print $2'}|xargs dpkg -P
lub
aptitude purge `aptitude search ~c -F %p`
Można by było przywołać więcej niestandardowych zastosowań aptitude i innych narzędzi do zarządzania pakietami. Po więcej zapraszam do poczytania podręcznika do aptitude. Dwa istotnie linki z tego podręcznika:
Mplayer to znany i ceniony odtwarzacz filmów dla systemu linux i nie tylko. Inne systemy nas jednak nie interesują.
Do pliku /etc/apt/sources.list należy dodać wpis z repozytorium debiana (dowolnym edytorem tekstowym).
deb http://www.debian-multimedia.org lenny main
deb http://www.debian-multimedia.org etch main
deb http://www.debian-multimedia.org testing main
deb http://www.debian-multimedia.org sid main
Należy też dodać odpowiednie klucze do repozytorium aby aktualizacja repozytorium przebiegła bez błędu. Należy ściągnąć pakiet debian-multimedia-keyring_2008.10.16_all.deb i zainstalować go.
dpkg -i debian-multimedia-keyring_2008.10.16.deb
Aktualizujemy informacje o pakietach w repozytorium:
aptitude update
Stable (lenny), oldstable (etch), testing (lenny), unstable (sid)
aptitude install mplayer mplayer-doc w32codecs ttf-dejavu
aptitude install mplayer mplayer-doc w64codecs sttf-dejavu
Jeśli masz już ustawienia mplayera to zarchiwizuj stare pliki, tak aby nowe utworzyły się od podstaw.
mv ~/.mplayer ~/.mplayer.bak && mkdir ~/.mplayer
Otwieramy plik konfiguracyjny Mplayera
editor $HOME/.mplayer/config
i wpisujemy do niego następującą zawartość:
fontconfig = “1″
font = “dejavu sans”
subfont-text-scale = “3,3″
subcp = “cp1250″
sub-fuzziness = “2″
vo = “xv”
ao = “alsa”
Zapisujemy plik.
sub-fuzziness – Dostosowuje niedokładność dopasowywania przy szukaniu napisów:
subfont-text-scale <0-100> – (tylko FreeType)- ustawia wskaźnik automatycznego skalowania napisów jako procent rozmiaru ekranu (domyślnie: 5).
Uwaga: W przypadku gdy mamy włączoną akcelerację sprzętową (direct rendering), sterownik xv należy zastąpić sterownikiem gl2. Możemy sprawdzić to poleceniem glxinfo | grep direct z pakietu mesa-utils. Akceleracja sprzętowa jest włączona jeśli wynik polecenia jest jak poniżej
direct rendering: Yes
v – Przełącza wyświetlanie napisów
b/j – Przełącza dostępne napisy
F (shift+f) – Przełącza wyświetlanie tylko wymuszonych napisów
z i x – Zmienia opóźnienie napisów o +/- 0.1 sekund
r i t – Przesuwa napisy w górę/w dół
1 i 2 – Modyfikuje kontrast
3 i 4 – Modyfikuje jasność
5 i 6 – Modyfikuje barwę (kolorów)
7 i 8 – Modyfikuje nasycenie.
* i `/ z numerycznej oraz 9 i 0 z normalnej – modyfikuje głośność
Reszta sterujących skrótów klawiszowych – man mplayer.
Pełną dokumentację do mplayera znajdziemy w pliku file:///usr/share/doc/mplayer-doc/HTML/pl/index.html
Więcej informacji o repozytorium na stronie www.debian-multimedia.org
W pracy na dokumentami HTML często zachodzi potrzeba sprawdzenia zgodności kodu strony ze standardami W3C. Jeśli kod jest statyczną stroną html to często edytor sprawdza poprawność na bieżąco przy edycji dokumentu. Gorzej, gdy strona dokument html jest generowany dynamicznie na bazie jednego lub więcej szablonów. Najprostszym sposobem sprawdzenia dokumentu wynikowego jest sprawdzenie go jakimś walidatorem. Bardzo znanym walidatorem jest usługa W3C – Markup Validation Service. Innym również popularnym jest WDG Html Validator. Jednak sprawdzanie przez Internet trwa dużo dłużej niż lokalnie na własnym komputerze. Co zrobić aby to przyspieszyć?
Bardzo dobrym sposobem jest zainstalowanie jednego w wyżej wymienionych walidatorów na swoim komputerze. W Debianie robimy to w prosty sposób instalując pakiet
wdg-html-validator.
aptitude install wdg-html-validator
Walidator będzie dostępny pod adresem http://localhost/wdg-html-validator.html
Istnieje też możliwość sprawdzenia pliku z linii poleceń za pomocą komendy validate. Oto przykłady polecenia:
validate http://127.0.0.1:1234/
validate plik.html
Lub jeśli chcemy od razu otworzyć wynikowy plik html w edytorze aby sprawdzić gdzie jest ten błąd:
lynx --source http://127.0.0.1:8080/ | tee /tmp/tmp.html | validate || gvim /tmp/tmp.html
Jeśli test przejdzie pomyślnie edytor nie otworzy się.
W pierwszej kolejności należy włożyć kartę wi-fi do komputera i zobaczyć czy nasza karta została poprawnie zidentyfikowana przez system Linux. Po uruchomieniu komputera dla pewności, że mamy aktualną bazę urządzeń PCI możemy najpierw wykonać polecenie update-pciids. Po uruchomieniu systemu wydajemy polecenie:
lspci
Jeśli karta jest wykryta to powinniśmy widzieć linię opisującą nasze urządzenie wi-fi:
04:0a.0 Ethernet controller: Atheros Communications Inc. AR2413 802.11bg NIC (rev 01)
Następnie powinniśmy zainstalować kilka pakietów, które będą niezbędne do skonfigurowania dostępu. Są to pakiety dhcp3-server, hostapd, wpasupplicant. Do zainstalowania będzie jeszcze pakiet madwifi do ściągnięcia ze strony projektu na sourceforge. Bezpośredni link do najnowszej wersji pakietu: MadWifi v0.9.4
Pakiety binarne w Debianie instalujemy poleceniem:
aptitude install dhcp3-server hostapd
Przy instalacji dhcp3-server zostaniemy poproszeni o podanie nazwy interfejsu na którym ma nasłuchiwać serwer DHCP. Na razie możemy nic nie wpisywać.
Madwifi ze źródeł instalujemy trochę inaczej. Najpierw będziemy potrzebować nagłówków jądra Linux aby skompilować moduły madwifi. Przy zainstalowanym jądrze ze źródeł będziemy wiedzieli co robić, natomiast jeśli używamy firmowego jądra (zainstalowanego z systemem) to należy zainstalować pakiet z nagłówkami. Sprawdzamy wersję jądra i wynik podstawiamy do następnego polecenia:
uname -r
Wynik:
2.6.18-4-amd64
Wykonujemy polecenie instalacji nagłówków:
aptitude install linux-headers-2.6.18-4-amd64
lub wszystko za jednym razem:
aptitude install linux-headers-`uname -r`
Ściągamy i instalujemy madwifi:
wget http://heanet.dl.sourceforge.net/sourceforge/madwifi/madwifi-0.9.4.tar.gz
tar xf madwifi-0.9.4.tar.gz
cd madwifi-0.9.4
make
make install
Zaczynamy konfigurację od skonfigurowania interfejsu. Otwieramy plik /etc/network/interfaces:
editor /etc/network/interfaces
i wstawiamy do niego następującą zawartość:
auto ath0
iface ath0 inet static
pre-up /usr/local/bin/wlanconfig ath0 destroy
pre-up /usr/local/bin/wlanconfig ath0 create wlandev wifi0 wlanmode ap
pre-down /usr/local/bin/wlanconfig ath0 destroy
address 192.168.38.1
netmask 255.255.255.0
broadcast 192.168.38.255
post-up /etc/init.d/dhcp3-server restart
post-down /etc/init.d/dhcp3-server restart
Konfiguracja serwera dhcp. Otwieramy plik /etc/dhcp3/dhcpd.conf i wstawiamy do niego zawartość:
subnet 192.168.38.0 netmask 255.255.255.0 {
range 192.168.38.2 192.168.38.127;
option domain-name-servers 62.179.1.62, 62.179.1.63;
option routers 192.168.38.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.38.255;
default-lease-time 600;
max-lease-time 7200;
}
Pod option domain-name-servers wpisujemy te adresy DNS, które mamy w pliku /etc/resolv.conf
cat /etc/resolv.conf
W pliku /etc/default/dhcp edytujemy linię zawirającą INTERFACES tak aby jej treść była następująca:
INTERFACES=”ath0″
Konfigurujemy hostapd. Interesuje nas plik /etc/hostapd/hostapd.conf. Oryginalny plik z pakietu możemy sobie zachować kopiując go:
mv /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.orig
Wybieramy sobie wartość ssid, będzie to nazwa pod jaką chcemy aby nasza sieć była rozgłaszana, i generujemy klucz psk:
wpa_passphrase my_essid naszehaslo
Dostaniemy coś takiego:
network={
ssid="my_essid"
#psk="romekromek"
psk=b9fa13c443eb82dec550cc535ca1fad38e8ab47c3fec4a298b8bcd5db5e4d171
}
i to co jest w zmiennej psk wpisujemy pod wpa_psk w pliku /etc/hostapd/hostapd.conf
wpa_psk=b9fa13c443eb82dec550cc535ca1fad38e8ab47c3fec4a298b8bcd5db5e4d171
Otwieramy nasz plik:
editor /etc/hostapd/hostapd.conf
i wpisujemy do niego zawartość. Poniżej jest pokazana terść wynikowa pliku:
interface=ath0 driver=madwifi logger_syslog=-1 logger_syslog_level=2 logger_stdout=--1 logger_stdout_level=2 debug=0 ctrl_interface_group=0 macaddr_acl=0 deny_mac_file=/etc/hostapd/hostapd.deny auth_algs=3 eapol_key_index_workaround=0 eap_server=0 dump_file=/tmp/hostapd.dump ssid=my_essid wpa=3 wpa_psk=b9fa13c443eb82dec550cc535ca1fad38e8ab47c3fec4a298b8bcd5db5e4d171 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP CCMP
W pliku /etc/default/hostapd odkomentowujemy jedną linię:
RUN_DAEMON="yes"
Pozostaje skonfigurowanie “maskarady”. Wystarczy na to jedna prosta reguła firewalla:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.38.0/24 -j MASQUERADE
i włączenie ip forward w jądrze
echo 1 > /proc/sys/net/ipv4/ip_forward
Zamiast eth0 wstawiamy nazwę interfejsu sieciowego, który jest “wyjściem “na świat.
Konfiguracji firewalla nie będę tu omawiał, gdyż to jest temat na osobny artykuł.
Restartujemy komputer i sprawdzamy czy po restarcie wszystko działa. Należy pamiętać, że jest to bardzo prosta konfiguracja i można ją udoskonalić w zależności od potrzeb.`