Linux

Beep Media Player nowo narodzony – Rebmp

Znowu szukałem programu do odtwarzania muzyki na moim Debianie. Jest cała masa programów do tego celu. Od takich, które działają jako demony (np. mpd) do przerośniętych kombajnów takich jak Amarok 2. Nie zaspokajają jednak moich potrzeb – mają zbyt dużo funkcyj i skomplikowany interfejs, albo wymagają zbyt stałej konfiguracji dysku. Nie jest wbrew pozorom bardzo łatwo.

Istnieje pewien bardzo dobry w mojej opinii program do odtwarzania muzyki, a zwie się Beep Media Player. Jest to fork starego, dobrego odtwarzacza XMMS. Nie rozwijany już przez jego autora, porzucony i pozostawiony samemu sobie. BMP został nawet usunięty z repozytoriów Debiana. Niby powstał jego następca Audacious. Na pierwszy rzut oka jest dobry. Ma przepiękne domyślne skórki, pierdyrlion pluginów, tak naprawdę mało komu potrzebnych. Niby prawie jak stary dobry BMP. Zmyłka! Po pierwsze Audacious zamraża się kiedy próbwałem do niego wczytać zwykłą playlistę z moimi ulubionymi radiami internetowymi. Druga sprawa, po zminimalizowaniu do tray’a i przywróceniu jego okna, okno to nie wraca do tej samej pozycji. Kolejna nieco irytująca sprawa to suwaki, które działają jakoś mniej precyzyjnie niż w BMP. Niby pierdółka, ale mnie przeszkadza. Przy buforowaniu strumienia stacji internetowej Audacious też zamienia się w „lód”. Trudno powiedzieć dlaczego programiści z dobrze działających funkcyj zrobili buble?! Poruszałem ten temat kiedyś na forum Audaciousa – bez większego odzewu.

Szukałem, niedługo, ale intensywnie i znalazłem. Powstał projekt ReBMP. Stary, dobry Beep Media Player wyposażony dodatkowo w pluginy do odtwarzania muzyki w formacie FLAC oraz MonkeyAudio (oba formaty przechowują bezstratnie skompresowaną informację dźwiękową). Polecam jeszcze do kompletu schludny i porządny plugin dokujący BMP do tray’a.

Przy okazji reklama radia Soma FM.

Przy okazji reklama radia Soma FM.

By grzeszy on Sierpień 9, 2009 | Programy | A comment?
Tagi:

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

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