Linux

Fluxbox – dodawanie pozycji do menu.

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

By grzeszy on Maj 17, 2009 | Linux | A comment?
Tagi: , ,

Aptitude – kilka podpowiedzi


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.

Wyszukiwanie pakietów po nazwie i opisie:

% aptitude search "?or(~nnetwork, ~dnetwork)"

Polecenie wyszuka wszystkie pakiety, które w opisie bądź w nazwie zawierają słowo network.

Wyszukiwanie pakietów zainstalowanych z danego archiwum.

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"

Zmiana zaznaczenia pakietów z automatycznie instalowanych na ręcznie instalowane.

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

Wyszukiwanie pakietów z zepsutymi zależnościami (broken dependencies) i ich naprawa.

% 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

Blokada aktualizacji danego pakietu.

# aptitude hold pakiet

Usuwanie wszystkich pakietów należących do danej sekcji.

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}'`

Brak pliku przy kompilacji programu.

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)

Usuwanie plików pozostałych po odinstalowanych pakietach.

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

By grzeszy on Luty 2, 2009 | Administrowanie, Linux | A comment?
Tagi: , , ,

Mplayer w Debianie – instalacja na szybko.

Mplayer to znany i ceniony odtwarzacz filmów dla systemu linux i nie tylko. Inne systemy nas jednak nie interesują.

Konfiguracja repozytorium apt – z konta root.

Do pliku /etc/apt/sources.list należy dodać wpis z repozytorium debiana (dowolnym edytorem tekstowym).

  • dla debiana lenny (stable):

    deb http://www.debian-multimedia.org lenny main

  • dla debiana etch (oldstable):

    deb http://www.debian-multimedia.org etch main

  • dla debiana testing (obecnie squeeze):

    deb http://www.debian-multimedia.org testing main

  • dla debiana sid (unstable):

    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

Instalacja pakietów – z konta root.

Stable (lenny), oldstable (etch), testing (lenny), unstable (sid)

  • dla architektury i386:

    aptitude install mplayer mplayer-doc w32codecs ttf-dejavu

  • dla architektury amd64:

    aptitude install mplayer mplayer-doc w64codecs sttf-dejavu

Polskie napisy i podstawowa domyślna konfiguracja – z konta użytkownika.

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:

  • 0 dokładne dopasowanie
  • 1 Wczytaj wszystkie napisy zawierające nazwę filmu.
  • 2 Wczytaj wszystkie napisy z aktualnego katalogu.

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

Klawiszowe sterowanie napisami i parametrami obrazu

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

Polska dokumentacja

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

By grzeszy on Grudzień 7, 2008 | Administrowanie, Debian, Linux | A comment?
Tagi: , , , ,

Lokalny walidator do HTML w Debianie

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 W3CMarkup 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ę.

By grzeszy on | Administrowanie, Debian, Linux | A comment?
Tagi:

Konfiguracja ssh dla poszczególnych hostów

Wprowadzenie

Wielu ludzi pracuje przy pomocy OpenSSH, jest to bardzo popularne i bardzo użyteczne narzędzie. Istnieje wiele sposobów aby usprawnić korzystanie z ssh. Jednym z nich jest plik konfiguracyjny config. Pozwala on nam ustawić różne opcje ssh dla każdego host z osobna lub dla całej grupy hostów. Pozwala to na uniknięcie wpisywania opcji komendy ssh w lini poleceń i używanie łatwych do zapamiętania nazw zamiast adresów IP czy nazwy domenowej. Nazw tych można używać z poleceniem ssh, scp, w programie midnight commander oraz w wielu innych sytuacjach.

Domyślnie plik znajduje się w katalogu domowym użytkownika (~/.ssh/config). Konfiguracja opcjiI ssh obejmująca cały system (dla wszystkich użytkowników) znajduje się w /etc/ssh/ssh_config. Opcje w ~/.ssh/config mają pierwszeństwo przed opcjami w pliku /etc/ssh/ssh_config. To oczywiście znaczy, że użytkownik ma możliwość ustawienia własnej konfiguracji klienta ssh.

Zakładam, że OpenSSH jest zainstalowane. W Debianie jest to pakiet openssh-client.

Konfiguracja dla jednego hosta

Konfiguracja dla użytkownika jak i dla całego systemu jest taka sama. Różni się tylko lokalizacją pliku.

Zakładamy plik konfiguracyjny, który domyślnie nie jest tworzony i nadajemy uprawnienia do odczytu tylko dla użytkownika – 600.

touch ~/.ssh/config
chmod 600 ~/.ssh/config

Następnie otwieramy plik:

editor ~/.ssh/config

Przykładowy wpis dla jakiegoś hosta:

Host router
    Port 1234
    HostName nasz.host.pl
    User jakislogin
    Compression yes

W ten sposób przy logowaniu będziemy mogli wydawać polecenie:

ssh router

zamiast

ssh jakislogin@nasz.host.pl -p 1234 -o "Compression no"

W midnight commander nie trzeba się już martwić jak przekazać port, na którym nasłuchuje ssh na hoście do którego potrzebujemy się połączyć. Będzie to wyglądało następująco:
Zrzut ekranu MC przy połączeniu po powłoce (shell)
Jest to duże ułatwienie w codziennej pracy. Oczywiście można też korzystać z kombinacji klawiszy Ctrl+r i Ctrl+s. Jednak, krótsze polecenia są czytelniejsze.

Konfiguracja dla grupy hostów

Załóżmy, że łączymy się przez ssh do komputerów w różnych sieciach – w sieci lokalnej i w jakiejś sieci odległej i w sieci lokalnej używamy loginu romek, a w sieci odległej atomek. Można skonfigurować ssh tak aby dla różnych zakresów adresów była używana domyślnie różna nazwa użytkownika oraz różne wartości parametru Compression. Uwierzytelnianie odbywa się za pomocą kluczy, jednak dla każdej sieci będą to inne klucze.

Oto przykładowa konfiguracja:

# dla sieci lokalnej
# wyłączona kompresja, login "romek", port 3476 i plik z kluczem
#
Host 192.168.14.*
    Port 3476
    User romek
    IdentityFile ~/.ssh/id_rsa
    Compression no

# dla sieci zdalnej
# włączona kompresja, login "atomek", port 1234 i plik z kluczem
#
Host *.example.com
    Port 1234
    User atomek
    IdentityFile ~/.ssh/id2_rsa
    Compression

Na hosta w sieci lokalnej logujemy się poleceniem (odpowiednie parametry będą odczytane z pliku konfiguracyjnego ssh):

ssh 192.168.14.34

Na hosta w sieci odległej polecenie będzie wyglądało tak:

ssh alfa.example.com

Objaśnienie do wpisów:

  • Host – nasza, łatwa do zapamiętania nazwa hosta, a w przypadku zakresu hostów, zakres adresów IP lub pełnych nazw domenowych,
  • Port – port na jakim nasłuchuje serwer OpenSSH
  • User – login na jaki logujemy sią na zdalnej maszynie
  • HostName – prawdziwa nazwa hosta (może być nazwa domenowa lub adres IP)
  • Compression – włącza lub wyłącza kompresję danych podczas sesji ssh

Konfiguracja dla danego hosta lub grupy hostów kończy się w momencie wystąpienia kolejnego wpisu Host.

Oczywiście ssh pozwala na ustawienie tutaj każdej dostępnej opcji. Więcej w man 5 ssh_config.

By grzeszy on | Administrowanie, Linux | A comment?
Tagi: ,