Err: Connection timed out [110] Ludwik C. Siadlak :: blog » software

Archiwa dla 'software' Category

Zautomatyzowane backupowanie plików

Stare słowiańskie przysłowie głosi, że

Administratorzy dzielą się na dwie grupy: tych, którzy robią backupy i tych, którzy jeszcze nie robią backupów.

Kilka tygodni temu, w pewne piątkowe popołudnie zdarzyło mi się permanentnie uszkodzić tablicę partycji na głównym dysku mojego desktopu. Nie miałem kopii, a zabawa nie wskazywała na to, że coś może się uszkodzić. Murphy i tym razem się nie mylił i zawartość dysku odeszła w niepamięć.

Oczywiście robię backupy. Weekly, w każdy… piątkowy wieczór. Pech chciał, że w tym właśnie tygodniu rozpocząłem intensywną pracę nad kolejnym uczelnianym assignmentem i kilka stron eseju… również odeszło w niepamięć.


Postanowiłem więc zmienić system backupowania z ręcznego na automatyczny, szczególnie jeśli pracuję z Windows (w Linuksie nie ma tego problemu, od czego jest przecież cron?).

Z pomocą przyszedł zatem bardzo przyjemny soft Louisa Cobiana (studenta szwedzkiego Umeå University) - Cobian Backup.

Cobian Backup 8

Program pozwala na zdefiniowanie backupowych tasków w dowolny sposób: co miesiąc, co tydzień, tylko w czwartki, tylko o 13 i 19 w piątki i wtorki, etc. Obsługa jest banalnie prosta - foldery, które mają być archiwizowane wystarczy przeciągnąć z eksploratora Windows do programu, podać namiary na nośnik na którym mają być zapisane i voila. Nośnik jest dowolny - połącznie FTP, SSH, dysk zewnętrzny, inna partycja - bez różnicy. Plusów jest więcej:

  • 4 rodzaje backupów:
    • full
    • incremental
    • differential
    • dummy
  • kompresja - zip i sqx
  • szyfrowanie - DES, RSA, Rijndael i Blowfish
  • wyjątki - w każdym ze zdefiniowanych katalogów można wybrać pomijane pliki
  • akcje przed- i pobackupowe - możliwość uruchomienia/zakończenia dowolnej usługi czy programu w dowolnym czasie
  • przeprowadzanie backupu jako inny użytkownik
  • limitowanie prędkości transferu (usługa działa w tle i jedynym sygnałem jest ikona w tray’u)
  • logowanie akcji w plikach txt (z możliwością powiadamiania via e-mail)
  • sprawdzanie CRC przesłanych plików
  • masterpassword, żeby nikt “przypadkiem” nie anulował naszych kopii :)

Aktualnie stabilną wersją jest 8.4.0.202 Black Moon, udostępniona na Mozilla Public License. Louis pracuje nad 9 (codename Amanita), ale ta nie jest i nie będzie już wolna. 8 jednak taką jest i pozostanie (źródła do pobrania z SourceForge).

Ask the Readers: Jakiego softu do backupowania swoich plików używacie?

Połączenia ze Skypem bez Skype’a?

Ekiga Na to wygląda. zhink opublikował bramkę Skype to SIP. Na razie rzecz jest restricted software i kosztuje $25, ale skoro zamknięta wersja jest na rynku to może (na co gorąco liczę) wkrótce pojawią się otwarte odpowiedniki.

Na górze logo Ekigi, bo to właśnie o niej był artykuł na Mad Penguin, ktory doprowadził mnie do bramki zhinka. Więcej o Ekidze można przeczytać właśnie w w/w artykule albo po polsku, u Patrysa.

Be right back!

OxfordOstatnio mała przerwa w blogowaniu. Przerwa wynika z kilku czynników, jak np. z rozpoczętego Unitu 1 na Uczelni, który wymaga napisania kilku esejów na “dzień dobry”. Nawiasem mówiąc jest to pierwsza uczelnia, która wymaga włożenia prawdziwej pracy w naukę, a nie tylko obecności na zajęciach. Spotyka mnie to pierwszy raz w mojej formalnej edukacji. :)

Drugi czynnik to na pewno zbliżające się wybory, a jako, że jestem bardzo nieodporny na kłamstwa wyznawców Kaczyzmu - za bardzo się denerwuję i wolę przemilczeć ten okres :)

CzLUG logo Niemniej mam już kilka serwisów Web2.0 i spraw, które chcę opisać na łamach tego bloga. CzLUG (którego zostałem sekretarzem, podczas ostatniego Walnego Zebrania) ma obecnie w planach dynamiczny rozwój i kilka konferencji. Wszystkie będę tutaj relacjonował i podsumowywał.

Część z Was pewnie już zauważyła, że ostatnio bloguję częściej (pomijając ostatnią ciszę) na swoim anglojęzycznym blogu Scripta manent. Nie tłumaczę wpisów ani w jedną, ani w drugą stronę. Branża IT ma to do siebie, że wszyscy znają angielski, więc nie widzę potrzeby dublowania treści. Na razie różnica tematyczna nie wyklarowała się do końca, ale wkrótce powinno się to zmienić. Zapraszam do zasubskrybowania feedu: www.siadlak.eu/feed

Ratowanie Windows

Microsoft WindowsZdarzają się sytuacje, w których nie dość, że musisz skorzystać z oprogramowania napisanego dla Windows, to jeszcze sam system musisz po drodze uratować. Tworząc publikację DVD dla Collegium Cantorum, używam zamkniętego softu do obróbki video. Oczywiście większość partycji na 200GB dyskach działa na ext3, a NTFS, to raptem ~10% całości. Przy takiej zabawie potrzeba jednak trochę miejsca (tym bardziej, że publikacja będzie dwupłytowa, a zawarte na niej filmy mam nadzieję zamknąć w niecałych 8 godzinach). Znalazłem na dysku trochę wolnego miejsca, niezajętego dotychczas przez żadną partycję - +/- 30GB. Powinno wystarczyć. My Computer -> Manage -> Disk Management. Voila! Oczywiście, przy okazji dodawania do projektu kolejnych plików *.mpeg coś tam się zadziało i system zaczął się potwornie mulić (niestety, widać, że to nie Arch). No to restart…

A po restarcie

GRUB loading...
Error 17.

Brzmi znajomo, nieprawdaż? W takiej sytuacji (czyli kiedy mieszają się partycje) odpala się pierwsze z brzegu LiveCD i reinstaluje GRUBa w MBR’ze. Teraz jednak jest 1:54, a priorytetowym zadaniem jest płytka DVD. Płytka obrabiana w Windows. Jak przywrócić dostęp do partycji NTFS, tak aby systemWindows mógł wstać?

Metoda “na barbarzyńcę”

Step-by-step HOWTO, czyli jak uruchomić Windowsa:
Potrzebny jest tylko oryginalny nośnik instalacyjny (to nie jest żart! ;) ) i klawiatura: po załadowaniu instalatora Windows interesuje nas literka “R” czyli System Recovery. Po zalogowaniu do konsoli (po podaniu hasła Administratora) nadpisujemy MBR:

C:\WINDOWS> fixmbr

a potem dla pewności dodajemy wpis do bootloadera:

C:\WINDOWS> bootcfg /rebuild

Na koniec jeszcze reset, sil vous plait!

Tym oto magicznym sposobem wyrzuciliśmy przyjaznego GBURa przez Okno. Przykre, ale skuteczne.

Wordpress i dostęp do awstats

ApacheDo każdej domeny, podpietej do konta na dreamhost (200 GB za parę gorszy) instalowane są statystyki Analog. Awstats jest perlowym skryptem, który oferuje statstyki szersze niż Analogowe. W wiki jest obszerny i przystępny poradnik dot. instalacji skryptu.

Działa z marszu, jednak problem pojawia się w przypadku korzystania z mod_rewrite, a ten wykorzystuje wiele CMS’ów - między innymi Wordpress. Temat wielokrotnie poruszany na wielu forach: “Awstats - not accessible!!!” Rozwiazanie jest proste i samo się nasuwa:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/(awstats|stats|failed_auth\.html)/?(.*)$ [NC]
RewriteRule ^.*$ - [L]
</IfModule> 

Dzięki wpisowi w .htaccess mamy dostęp zarówno do awstats jak i analog (umieszczanego w katalogu domain.com/stats/).
Tylko jedna uwaga. Taka reguła musi być wykonana przed resztą reguł CMS’a. Inaczej dostęp do statystyk nie będzie nadal możliwy.

Ku pamięci :)

Ubuntu, tapetka i fragment ogrodu

Moja siostra była ostatnio w parku, miała aparat. Choć nie “Zorkę 5″, to zrobiła kilka zdjęć :)
Enjoy!

Ubuntu is coming...

(Licencja CC by-nc.)

D-link DWL-G650 i ArchLinux

Linux jest z natury systemem trudnym w użytkownaniu, beznadziejnie wyglądającym i oczywiście nic tu nie działa. To chyba każdy wie i nie ma co dyskutować na ten temat.

Jako, że mój laptop nie ma wbudowanej bezprzewodowej karty sieciowej, przy okazji Świąt postanowiłem się w takową zaopatrzyć. Wybór padł na D-Link DWL-G650. O taką:DWL-G650

Niestety, Vista (w wersji Business) nie widzi tej karty, a dostarczane przez producenta sterowniki są zgodne tylko z archaicznym systemem Windowsxp. Jestem masohistą, więc postanowiłem sprawdzić czy przypadkiem nie współpracuje z Archem. Na pierwszy ogień poszedł pakiet madwifi:

[root@orwell ludwikc]# pacman -S madwifi
Targets: madwifi-utils-0.9.2.1-1 madwifi-0.9.2.1-5
Total Package Size:   0.3 MB
Proceed with upgrade? [Y/n] Y
:: Retrieving packages from extra…
 madwifi-utils-0.9.2.1-1  [################] 100%      34K    31.5K/s  00:00:01
 madwifi-0.9.2.1-5        [################] 100%     257K    49.6K/s  00:00:05

checking package integrity… done.
loading package data… done.
checking for file conflicts… done.
installing madwifi-utils… done.
installing madwifi… done.

lspci rozpoznaje kartę, dziwne…

[root@orwell ludwikc]# lspci
[...]
09:01.0 CardBus bridge: Texas Instruments PCI1510 PC card Cardbus Controller
09:02.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
0a:00.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC 

No tak, ale ifconfig już milczy na jej temat:

[root@orwell ludwikc]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:16:36:2F:30:F1
          inet addr:10.0.0.2  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::216:36ff:fe2f:30f1/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1601 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1531 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1464420 (1.3 Mb)  TX bytes:302642 (295.5 Kb)
          Interrupt:20 Base address:0xa000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:24 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1200 (1.1 Kb)  TX bytes:1200 (1.1 Kb)

Ach, ach! Załadować moduł (mając już wpa_supplicant)…

[root@orwell ludwikc]# modprobe ath_pci
[root@orwell ludwikc]# ifconfig -a
ath0      Link encap:Ethernet  HWaddr 00:15:E9:84:12:D3
          inet addr:172.25.17.52  Bcast:172.25.17.63  Mask:255.255.255.192
          inet6 addr: fe80::215:e9ff:fe84:12d3/64 Scope:Link
          UP BROADCAST NOTRAILERS MULTICAST  MTU:1500  Metric:1
          RX packets:3221 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3056 errors:14 dropped:14 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2157091 (2.0 Mb)  TX bytes:714168 (697.4 Kb)

eth0      Link encap:Ethernet  HWaddr 00:16:36:2F:30:F1
          inet addr:10.0.0.2  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::216:36ff:fe2f:30f1/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3519 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3265 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3489682 (3.3 Mb)  TX bytes:559189 (546.0 Kb)
          Interrupt:20 Base address:0xa000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:24 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1200 (1.1 Kb)  TX bytes:1200 (1.1 Kb)

wifi0     Link encap:UNSPEC  HWaddr 00-15-E9-84-12-D3-00-00-00-00-00-00-00-00-00
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:199
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:16

[root@orwell ludwikc]#

Działa?! Na Linuksie?! Nie, musiało mi się coś pomylić… :)

Dolphin - Nautilius dla KDE

Na dot.kde.org, ukazał się jakiś czas temu artykuł o Dolphinie, który przejmie rolę domyślnego managera plików w KDE 4.
Mimo, że nie korzystam z reguły z programów w fazie bardzo wczesnych alpha-testów, chciałem przyjrzeć mu się bliżej. W repozytoriach Archa znajduje się paczka dolphin-0.8.2-1 - pacman -S i działa. Co zobaczyłem? Przeportowanego do KDE Nautiliusa!

Dolphin

Dla zwolenników GNOME pewnie wygląda ładnie, ale ja nigdy nie przepadałem za wizualna stroną GTK ani funkcjonalnością Nautiliusa. Konqueror świetnie sprawdza się jako file manager zarówno do zastosowań lokalnych jak i korzystania z połaczeń ftp://, sftp:// czy smb://. Jasne, można do tego wykorzystać MidnightCommandera, Krusadera, czy nawet gFTP, ale po co studiować obsługę różnych narzędzi, skoro można mieć wszystko w jednym?

Logowanie via SSH bez hasła

Nie, to nie będzie wpis informujący o tym, że logując się przez SSH nie trzeba za każdym razem wklepywać hasła.
Mam kilka kont z dostępem do shella, a wykonywanie rutynowych czynności umożliwiających bezhasłowe logowanie (jak to zwykle z rutyną bywa) zaczęło mnie nudzić. Napisałem prosty skrypt, który na kształt kreatora wyda wszystkie niezbędne plecenia.

HOWTO

Zakładam, że masz juz swój klucz publiczny. Jeśli nie - stwórz go, wydając w konsoli polecenie

ssh-keygen -t rsa

Generator zapyta o nazwe pliku i hasła. Możesz na wszystkie pytania odpowiedzieć Enterem, pozostawiając domyślne ustawienia.

Skrypt możesz zapisać na dysku kopiując jego treść z poniższej ramki. Dla wygody umieściłem go jednak na serwerze. Teraz wystarczy wpisać:

wget http://projects.ludwikc.net/passwordless_ssh
chmod +x passwordless_ssh
./passwordless_ssh

Po kolei:

  1. nazwa użytkownika konta ssh
  2. adres hosta
  3. port serwera (dafault’owo 22)
  4. hasło (2x)

Od tego momentu wystarczy wpisac w konsoli

./yourhostname.com

żeby połączyć się z serwerem bez podawania hasła (oczywiście ssh user@host też będzie działać bez zarzutu!)

Enjoy :)

Treść dla zainteresowanych:
#!/bin/sh
cd $HOME
echo "Passwordless ssh (v. 0.6)"
echo "Enter your ssh username:"
read user
echo "Host (or ip):"
read host
# Ports added in 0.4
echo "Enter ssh port: (press Enter if you don't know)"
read port
if port=NULL
then port=22
fi
echo "Wait for connection and type password for given username"
scp -P $port $HOME/.ssh/id_rsa.pub $user@$host:~/id_rsa-passwordless.pub
echo "Success: RSA key exported."
echo "Last with-password ssh login..."
ssh $user@$host -p $port "if [ -d $dotssh ]
then
echo "Success: Directory $HOME/.ssh/ exists."
else
echo -e "There is no $HOME/.ssh/ directory." && mkdir $HOME/.ssh && echo "Success: Directory $HOME/.ssh has been created"
fi &&
cat ~/id_rsa-passwordless.pub >> .ssh/authorized_keys && rm id_rsa-passwordless.pub && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys && exit"
echo "Authorization successful!"
# Added in 0.3 version - symlinks providing easier login
echo ""
if [ -d $HOME/.ssh/passwordless_login ]
then
echo "Directory $HOME/.ssh/passwordless_login has been created during last passwordless_ssh usage."
else
mkdir $HOME/.ssh/passwordless_login
fi
echo ssh $user@$host -p $port >> ~/.ssh/passwordless_login/$host
chmod +x ~/.ssh/passwordless_login/$host
ln -s ~/.ssh/passwordless_login/$host $host
echo "From now-on simply type ./$host, to log-in without password."
echo "Passwordless ssh by Ludwik C. Siadlak (http://ludwikc.net). GPL Licence. Have a nice day!"

UPDATE: v. 0.4 - Możliwość wyboru portu innego niż 22.
UPDATE: v. 0.5 - Powłoka zmieniona na /bin/sh dla kompatybilności z systemami *BSD.
UPDATE: v. 0.6 - Sprawdzanie katalogów (dzięki Jojo!) i domślny port połączenia. (Wersja passwordless_ssh-pl została zastąpiona oryginalną passwordless_ssh)

Zarządzanie pakietami (apt i pochodne)

LinuxSwego czasu prowadziłem prezentację z zakresu użytkowania Debianowego systemu zarządzania pakietami jakim jest apt-get. Oto ona.

W poniższej prezentacji postaram się przybliżyć działanie programu apt - jednego z najpopularniejszych managerów pakietów jakim dysponuje środowisko OpenSource. apt (z ang. Advanced Packaging Tool) jest domyślnym zarządcą pakietów w systemie Ubuntu Linux. Dzięki niemu, wydajac jedną komendę jesteśmy w stanie zainstalować każdy z 20 tysięcy(!) programów dostępnych w repozytoriach Ubuntu.

Spis treści


Wstęp

Apt jest nakładką na zarządce pakietów dpkg, do korzystania z którego ze względu na szerokie zastosowania apt`a nie jesteśmy praktycznie wcale zobowiązani korzystać. Dzięki repozytoriom, w którym znajduje się jak wspomniałem wyżej ok. 20 000 różnych programów możemy założyć z dużą dozą prawdopodobieństwa, że program jaki nas interesuje będzie się znajdował w jedym z nich.


Pakiety (paczki)

Najprościej rzecz ujmując pakiet to skompilowany i spakowany program, którego instalacja trwa kilka sekund. Zasadniczo cała opracja polega na pobraniu źródeł programu przez danego developera, skonfigurowaniu go, skompilowaniu (które jest procesem o wiele dłuzszym) na własnym komputerze oraz spakowaniu tak przygotowanego programu w paczkę. Tak przygotowany pakiet jest oczywiście sprawdzany przez opiekunów danego projektu, dzięki czemu jest wolny od błędów.
Większość systemów korzysta (jeśli w ogóle) z jednego z dwóch typów pakietów:

  • deb - pakiety opracowane przez twórów Debiana. Wykorzystuje je m.in. Ubuntu.

  • rpm - system paczek opracowany dla RedHata. Wykorzystywany przez Fedorę, Mandrivę, Auroksa i wiele innych.
  • tgz -


Repozytoria

Repozytoria to serwery, na których gromadzone są pakiety. Dodanie danego repozytorium do pliku sources.list pozwala nam ściągnąć każdy ze znajdujących się w nim programów. Do czynienia mamy z repozytoriami oficjalnymi (markowanymi przez Ubuntu), oraz nieoficjalnymi (repozytoria poszczególnych programów bądź grup developerskich, jak również osób które mają dostęp do szybkich i pojemnych serwerów na których udostępniają wybrane programy).
Ponadto w jednym repozytorium mogą (i często właśnie tak jest) znajdować się pakiety dla różnych wersji danej dystrybucji. I tak dla Ubuntu mamy w oficjalnych repozytoriach pakiety oznaczone “horay”, “breezy”, oraz “dapper” - odpowiednio dla wersji 5.04, 5.10 oraz 6.06.
Trzecia “zmienna” jaka jest istotna do zdefiniowania repozytorium przez plik sources.list to sekcje. Pakiety zostały posortowane w pewne działy, dzięki którym łatwiej jest je zidentyfikować. Dla Debiana są to m. in. stable, main, contrib oraz non-free (z zaznaczeniem, że non-free oznacza niewolne a nie jak mogłoby się zdawać niedarmowe - znajdują się tam takie programy jak np. wirtualna maszyna Java),a w Ubuntu main, restricted, universe oraz multiverse To od nas zależy które sekcje wybierzemy. Więcej informacji n/t sekcji znajduje się poniżej, w rozdziale sources.list.


Zależności

W programach pisanych na systemy rodziny Windows® każdy stanowi jednolitą całość. Program to nie jeden plik, ale cały zestaw plików, bibliotek i modułów. Takie biblioteki. Każda firma musi rzecz jasna napisać własne, bo źródła innych nie są wolne, nie ma do nich dostępu. 3 firmy piszą 3 biblioteki. W każdej z nich programiści popełniają błędy, bo nikt nie jest idealny. Ale każdy skupia się na swojej bibliotece i bez pomocy innych, obiektywnych programistów czy testerów nie jest w stanie odkryć wszystkich błędów jakie popełnił podczas pisania. W środowisku OpenSource jest odwrotnie. Programiści, pisząc swoje programy wykorzystują biblioteki które są wolnodostępne. Te biblioteki są współdzielone między równymi programami. Takie biblioteki czy nawet programy które wykorzystuje konkretna aplikacja, są nazywane zależnościami. Dzięki temu np. program Gimp (linuksowy odpowiednik Adobe® Photoshop™) zajmuje… 2,7 MiB!
Każda biblioteka jest współtworzona przez wielu programistów, którzy dodają własne poprawki i ulepszenia z każdą kolejną wersja.
Dzięki temu biblioteki takie są coraz szybsze, sprawniejsze, pozbawione błędów i bardziej funkcjonalne.


dpkg

Jak nadmieniłem - apt, który jest nakładką na program dpkg jest na tyle funkcjonalny, że praktycznie uwalnia nas od korzystania z samego dpkg. Jeśli zajdzie taka potrzeba - opiszę szczegółowo wykorzystanie tego programu.


apt a apt-get

apt sam w sobie jest nadal w fazie rozwoju i implementacji. Równolegle rozpoczęto rozwój modułu apt oznaczonego apt-get. Nim też będziemy się zajmować, ponieważ podręcznik programu apt wygląda tak:

NAME
       apt - Advanced Package Tool

SYNOPSIS
       apt 

DESCRIPTION
       APT  is  a  management system for software packages.  It is still under
       development; the snazzy front ends are not yet available.  In the mean‐
       time, please see apt-get(8). 

OPTIONS
       None. 

FILES
       None. 

SEE ALSO
       apt-cache(8), apt-get(8), apt.conf(5), sources.list(5)


Konfiguracja apt’a

Konfiguracja programu odbywa się za pomocą pliku /etc/apt/sources.list o którym wspomniałem na początku. To jedyny plik który musimy wyedytować aby zmienić konfigurację apt


sources.list

Na początek chciałbym przedstawić swój plik sources.list. Można go śmiało zapisać w katalogu /ect/apt (pakiety dotyczą ubuntu oraz kubuntu). Do tego można użyć komendy:

sudo mv ~/sources.list /etc/apt/sources.list

Z założeniem, że zapisaliśmy nowy plik o treści, która znajduje się poniżej w katalogu domowym.

deb http://pl.archive.ubuntu.com/ubuntu dapper main restricted
deb-src http://pl.archive.ubuntu.com/ubuntu dapper main restricted 

deb http://pl.archive.ubuntu.com/ubuntu dapper-updates main restricted
deb-src http://pl.archive.ubuntu.com/ubuntu dapper-updates main restricted 

deb http://security.ubuntu.com/ubuntu dapper-security main restricted
deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted 

deb http://security.ubuntu.com/ubuntu dapper-security universe
deb-src http://security.ubuntu.com/ubuntu dapper-security universe 

deb http://archive.ubuntu.com/ubuntu dapper universe multiverse
deb-src http://archive.ubuntu.com/ubuntu dapper universe multiverse 

deb http://archive.ubuntu.com/ubuntu dapper-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu dapper-backports main restricted universe multiverse

deb http://kubuntu.org/packages/kde-latest dapper main
deb http://kubuntu.org/packages/amarok-latest dapper main
deb http://kubuntu.org/packages/koffice-latest dapper main
deb http://packages.freecontrib.org/ubuntu/plf dapper free non-free
deb-src http://packages.freecontrib.org/ubuntu/plf dapper free non-free 

deb http://wine.budgetdedicated.com/apt dapper main
deb-src http://wine.budgetdedicated.com/apt dapper main 

deb http://xgl.compiz.info/ dapper main
deb-src http://xgl.compiz.info/ dapper main 

deb http://www.beerorkid.com/compiz/ dapper main 

deb http://mirror2.ubuntulinux.nl/ dapper-seveas all
deb http://antesis.freecontrib.org/mirrors/ubuntu/plf/ dapper free non-free 

deb http://www.kadu.net/download/binary/ubuntu/repo dapper main
deb-src http://www.kadu.net/download/binary/ubuntu/repo dapper main 

deb http://morgoth.free.fr/ubuntu dapper-backports main
deb-src http://morgoth.free.fr/ubuntu dapper-backports main 

deb http://deb.svx.pl dapper main universe multiverse
deb-src http://deb.svx.pl dapper main universe multiverse 

Plik zamieściłem również na serwerze - jest dostępny do pobrania pod adresem http://files.ludwikc.net/trash/linux/sources.list. Więcej repozytoriów można znaleźć w tym wątku na forum ubuntu.pl.

W powyższym przykładzie podane są jedynie repozytoria oparte o protokół http. Należy jednak pamiętać, że program apt-get świetnie radzi sobie również z protokołami ftp czy ssh!

Wprawdzie więcej na temat tego pliku wiedzieć nam nie trzeba, ale należy się słowo komentarza. Pierwsza “kolumna” zaznacza jakiego typu jest pakiet. deb to paczki skompilowane, a deb-src to źródła tychże. Po adresie serwera repozytoriów należy koniecznie podać wersję systemu (p. niżej), a następnie sekcję poprzez sekcję należy rozumieć grupy pakietów, które są dobierane wg tabeli:

Wolne oprogramowanie Zamknięte oprogramowanie
Wspierane main restricted

Niewspierane universe multiverse

Dzięki takiemu podziałowi możemy dokładnie wybrać pakiety z których będziemy korzystać. Przykładowo ograniczając plikowi sources.list dostęp do repozytoriów do sekcji main i universe mamy 100% pewność, że nasz system jest w 100% OpenSource i w 100% legalny.

Przyjęto następującą metodę podawania wersji systemu:

Wersja Nazwa Tłumaczenie Skrót
4.10 Warty Warthog Piegowaty Guziec warthog

5.04 Hoary Hedgehog Sędziwy Jeż horay
5.10 Breezy Badger Serdeczny Borsuk breezy

6.06 Dapper Drake Wytworny Kaczor dapper
6.10 Edgy Eft Przebiegła Traszka edgy

Owy skrót jest bardzo ważny, ponieważ wraz z kolejnymi wersjami systemu mogą np. zmienić się pewne elementy systemu lub ich położenie, którego podanie jest wymagane do prawidłowego przeprowadzenia procesu instalacji.


Użytkowanie

Polecenie apt-get jest dostępne jedynie z konta roota lub dla uprawnionych użytkowników poprzez sudo. Zdecydowanie najczęściej wykorzystywanymi poleceniami programu jest komenda install, remove oraz update.


Aktualizacja

Polecenie służy do aktualizacji repozytoriów, po zamianie zawartości pliku sources.list. . Sprawdzana jest lista repozytoriów, możliwość połączenia się z nimi oraz klucze gpg.


Instalacja

Instalacja oprogramowania w systemie Ubuntu jest najprostszą z możliwych. Sprowadza się ona do wydania jednego polecenia:

apt-get install nazwa_pakietu

W ten sposób mamy dostęp do wspomnianych wyżej dwudziestu tysięcy pakietów.

apt-get za każdym razem wyświetla informację o pakietach jakie są wymagane, aktualizowane oraz sugerowane (te ostatnie nie zostaną pobrane jednak twórcy programu lub paczki zaznaczyli, że te są pomocne w użytkowaniu, choć nie są wymagane do prawidłowego funkcjonowania aplikacji).

root@ludwikc-desktop:/home/ludwikc# apt-get install gaim
Czytanie list pakietów… Gotowe
Budowanie drzewa zależności… Gotowe
Zostaną zainstalowane następujące dodatkowe pakiety:
  gaim-data libgtkspell0 liblaunchpad-integration0
Sugerowane pakiety:
  gnome-panel evolution-data-server libzephyr3
Zostaną zainstalowane następujące NOWE pakiety:
  gaim gaim-data libgtkspell0 liblaunchpad-integration0
0 aktualizowanych, 4 nowo instalowanych, 0 usuwanych i 45 nieaktualizowanych.
Konieczne pobranie 1473kB archiwów.
Po rozpakowaniu zostanie dodatkowo użyte 13,0MB miejsca na dysku.
Czy chcesz kontynuować [T/n]? n
Przerwane.
root@ludwikc-desktop:/home/ludwikc#

Na koniec podsumowania zostaje wyświetlone potwierdzenie chęci przeprowadzenia instalacji, na które trzeba odpowiedzieć klawiszem t lub n. Pytanie to jest wyświetlane jednak tylko w przypadku, gdy oprócz żądanego pakietu wymagane jest pobranie zależności badź aktualizacji innych pakietów. W momencie gdy wybieramy aplikację, która takowych nie wymaga instalacja przebiega automatycznie do samego końca.

root@ludwikc-desktop:/home/ludwikc# apt-get install wmfishtime
Czytanie list pakietów... Gotowe
Budowanie drzewa zależności... Gotowe
Zostaną zainstalowane następujące NOWE pakiety:
  wmfishtime
0 aktualizowanych, 1 nowo instalowanych, 0 usuwanych i 45 nieaktualizowanych.
Konieczne pobranie 16,5kB archiwów.
Po rozpakowaniu zostanie dodatkowo użyte 102kB miejsca na dysku.
Pob: 1 http://archive.ubuntu.com dapper/universe wmfishtime 1:1.24-4 [16,5kB]
Pobrano 16,5kB w 5s (2941B/s)
Zaznaczenie poprzednio niezaznaczonego pakietu wmfishtime.
(Odczytywanie bazy danych … 85526 plików i katalogów obecnie zainstalowanych.)
Rozpakowanie wmfishtime (z …/wmfishtime_1%3a1.24-4_i386.deb) …
Konfigurowanie wmfishtime (1.24-4) …
root@ludwikc-desktop:/home/ludwikc#

Od tego momentu program wmfishtime jest dostępny w systemie. Bardzo proszę o przyznanie racji osobom, które utrzymują, że instalacja oprogramowania pod linuksem jest trudna :)


Usuwanie

Proszę też takim osobom zaznaczyć, że odinstalowywanie jest jeszcze trudniejsze. Oto przykład:

root@ludwikc-desktop:/home/ludwikc# apt-get remove wmfishtime
Czytanie list pakietów… Gotowe
Budowanie drzewa zależności… Gotowe
Następujące pakiety zostaną USUNIĘTE:
  wmfishtime
0 aktualizowanych, 0 nowo instalowanych, 1 usuwanych i 45 nieaktualizowanych.
Konieczne pobranie 0B archiwów.
Po rozpakowaniu zostanie zwolnione 102kB miejsca na dysku.
Czy chcesz kontynuować [T/n]? T
(Odczytywanie bazy danych … 85536 plików i katalogów obecnie zainstalowanych.)
Usuwanie wmfishtime …
root@ludwikc-desktop:/home/ludwikc#

I po pakiecie…
Ważna informacja: zależności nie są usuwane wraz z pakietem, nawet jeśli są wykorzystywane tylko przez usuwany pakiet! Jeśli chcemy usunąć zależności, musimy byc pewni, że nie są one wykorzystywane przez inne pakiety. Do usunięcia takich pakietów (a właściwie ich odnalezienia) przydaje sie narzędzie deborphan. Jak je znaleźć? Patrz apt-cache :)


Dodatkowe opcje

Każde z poleceń ma dodatkowe opcje. np.

  • -d - tylko pobranie pliku, bez instalacji
root@ludwikc-desktop:/home/ludwikc# apt-get -d install wmfishtime
Czytanie list pakietów… Gotowe
Budowanie drzewa zależności… Gotowe
Zostaną zainstalowane następujące NOWE pakiety:
  wmfishtime
0 aktualizowanych, 1 nowo instalowanych, 0 usuwanych i 45 nieaktualizowanych.
Konieczne pobranie 16,5kB archiwów.
Po rozpakowaniu zostanie dodatkowo użyte 102kB miejsca na dysku.

Ukończono pobieranie w trybie samego pobierania
root@ludwikc-desktop:/home/ludwikc#
  • -s - symulacja instalacji
root@ludwikc-desktop:/home/ludwikc# apt-get -s install wmfishtime
Czytanie list pakietów... Gotowe
Budowanie drzewa zależności... Gotowe
Zostaną zainstalowane następujące NOWE pakiety:
  wmfishtime
0 aktualizowanych, 1 nowo instalowanych, 0 usuwanych i 45 nieaktualizowanych.
Inst wmfishtime (1:1.24-4 Ubuntu:6.06/dapper)
Conf wmfishtime (1:1.24-4 Ubuntu:6.06/dapper)
root@ludwikc-desktop:/home/ludwikc#

Dwie ostatnie linijki (Inst - instalacja, Conf - konfiguracja) potwierdzają, że instalacja przebiegnie bez błędów.

  • –reinstall - usunięcie i ponowna instalacja pakietu znajdującego się juz w systemie.


Inne możliwości


apt-cache

Oprócz apt-get program apt posiada więcej wbudowanych funkcji, jaknp. bardzo przydatne apt-cache (czyt. apt-kesz), ktore na podstawie wykonanego wcześniej apt-gaet update pozwala na odczytywanie z pamięci takich informacji jak np. podsumowanie pakietu lub wyszukiwanie go spośród listy repozytoriów.


Informacje o pakiecie

Na przykładzie programu GRUB:

root@ludwikc-desktop:/home/ludwikc# apt-cache show grub
Package: grub
Priority: optional
Section: admin
Installed-Size: 748
Maintainer: Grub Maintainers <pkg-grub-devel@lists.alioth.debian.org>
Architecture: i386
Version: 0.97-1ubuntu9
Depends: libc6 (>= 2.3.4-1), libncurses5 (>= 5.4-5)
Suggests: grub-doc, grubconf
Filename: pool/main/g/grub/grub_0.97-1ubuntu9_i386.deb
Size: 362200
MD5sum: b331cdd615a96933db0dc34042cb0964
Description: GRand Unified Bootloader
 GRUB is a GPLed bootloader intended to unify bootloading across x86
 operating systems.  In addition to loading the Linux kernel,
 it implements the Multiboot standard, which allows for flexible loading
 of multiple boot images (needed for modular kernels such as the GNU Hurd).
Bugs: mailto:ubuntu-users@lists.ubuntu.com
Origin: Ubuntu

root@ludwikc-desktop:/home/ludwikc#

W kolejności wiersze oznaczają:

  • nazwę pakietu
  • priorytet
  • sekcję
  • rozmiar po zainstalowaniu
  • właściciela pakietu
  • architekurę pod jaką został zoptymalizowany
  • wersję
  • zależności
  • pliki zalecane do instalacji
  • ścieżkę na serwerze repozytorium
  • rozmiar paczki
  • sumę MD5
  • opis pakietu
  • adres pod którym można zgłaszać błędy
  • system, pod jaki został przygotowany dany pakiet


Statystyki repozytoriów

Pocecenie apt-cache stats pozwala na przejrzenie statystyk naszych repozytoriów:

root@ludwikc-desktop:/home/ludwikc# apt-cache stats
Liczba nazw pakietów : 24259 (970k)
  Zwykłych pakietów: 18854
  Czysto wirtualnych pakietów: 358
  Pojedynczych pakietów wirtualnych: 1047
  Mieszanych pakietów wirtualnych: 201
  Brakujących: 3799
W sumie różnych wersji: 20974 (1007k)
W sumie zależności: 149842 (4196k)
W sumie zależności wersja/plik: 22137 (354k)
W sumie mapowań zapewnień: 3543 (70,9k)
W sumie dopasowanych napisów: 174 (2246)
Sumaryczny rozmiar obszaru zależności od wersji: 679k
Sumaryczny rozmiar niewykorzystanego miejsca: 92,2k
Całkowity rozmiar: 6692k
root@ludwikc-desktop:/home/ludwikc#

W nawiasach podano podano liczbę tzw. pakietów wirtualnych. Ich powstanie wiązało się z tym, że dany pakiet był znany pod różnymi nazwami, więc aby uniknąć problemów z ich wyszukiwaniem postanowiono utworzyć “aliasy”, które są dzisiaj pakietami wirtualnymi.


Podsumowanie

Możemy przejrzeć krótkie podsumowanie plików znajdujących się w repozytoriach. Służy do tego polecenie

apt-cache dump

(czyt. damp).
Uwaga: Wcześniej wyświetliliśmy ilość pakietów znajdujacych się w repozytoriach. Wykonanie polecenia dump może być czasochłonne, a do tego nie bedziemy w stanie wszystkoiego odczytać. W związku z tym trzy podpowiedzi:

Jeśli chcemy wyświetlać listę “stronami” (lista jest bardzo długa!) należy polecenie dump wpuścić w potok less

apt-cache dump | less

Zapisanie listy w pliku odbywa się poprzez polecenie

apt-cache dump >> mojalista.txt

Możemy też w dowolnym momencie przerwać wykonywanie polecenia poprzez uzycie skrótu klawiaturowego

Ctrl+C

(Skrót ten działa zawsze w konsoli, niezależnie od wykonywanego polecenia!)


Zależności

Sprawdzenie zależności umożliwia polecenie depends

apt-cache depends nazwa pakietu


Wyszukiwanie

apt-cache ma dwie funkcje wyszukiwania. Pierwszą jest poszukiwanie wyrażenia w całości podsumowania pliku, a druga to sprawdzanie początków nazw paczek

apt-cache search wyrażenie

Należy jednak zwrocić uwagę, że to polecenie poszukuje ciągu znaków “wyrażenie” we wszystkich polach informacji o danym pakiecie, dlatego w komunikacie zwrotnym mogą znaleźć się paczki pozornie zupełnie z poszukiwanym ciągiem znaków nie związane. Daje nam ono jednak szanse na odnalezie programów związanych z danym tematem, np: usenet (czyt. juznet) - czyli grupami dyskusyjnymi.

apt-cache pkgnames począt

To polecenie wyszukuje nazwy pakietów wg ciągu znaków podanego jako argument polecenia. Przykładowe począt może stanowić ciąg dla wyszukiwania początek-nazwy-pakietu lub początkowe-nauczanie ale nie nauczanie-początkowe!


Aktualizacja systemu UbuntuLinux

Dzięki programowi apt możemy bezboleśnie, w kilku krokach przeprowadzić aktualizacje całego systemu. Sprowadza się to do wydania kolejno komend:

apt-get update
apt-get upgrade
apt-get dist-upgrade

Całość trwa jakiś czas, ponieważ z reguły potrzebne jest pobranie bardzo wielu pakietów. Mój rekord aktualizacji Ubunutu (z wersji breezy do dapper) to 10 godzin, bez używania płytki CD. Przy używaniu płyty czas ten skraca się do godziny.
Ze wszystkim można sobie poradzić i do wszystkiego mamy wolny dostęp - możemy aktualizować system przez godzinę lub 10. Wszystko zależy od nas.
A jak mówi dewiza jednego z linuksowych portali: Przywróć radość użytkowaniu komputerów. Używaj Linuksa!