Ludwik C. Siadlak
  • Czytaj
  • Słuchaj
  • Oglądaj
  • COVID-19
Subscribe
Ludwik C. Siadlak
Ludwik C. Siadlak
  • Szuflandia

Zarządzanie pakietami (apt i pochodne)

  • December 19, 2006
  • Ludwik C. Siadlak

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

  • 1 Wstęp
    • 1.1 Pakiety (paczki)
    • 1.2 Repozytoria
    • 1.3 Zależności
    • 1.4 dpkg
  • 2 apt a apt-get
    • 2.1 Konfiguracja apt’a
      • 2.1.1 sources.list
    • 2.2 Użytkowanie
      • 2.2.1 Aktualizacja
      • 2.2.2 Instalacja
      • 2.2.3 Usuwanie
      • 2.2.4 Dodatkowe opcje
    • 2.3 Inne możliwości
      • 2.3.1 apt-cache
        • 2.3.1.1 Informacje o pakiecie
        • 2.3.1.2 Statystyki repozytoriów
        • 2.3.1.3 Podsumowanie
        • 2.3.1.4 Zależności
        • 2.3.1.5 Wyszukiwanie
    • 2.4 Aktualizacja systemu UbuntuLinux

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 🙂

[edytuj]

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!)

[edytuj]

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!

[tags]ubuntu, linux, apt, howto[/tags]

Ludwik C. Siadlak

Bloger, vloger i podcaster. Z zawodu trener nowoczesnych technologii i skutecznej komunikacji. Do tego motocyklista, honorowy obywatel New Britain w CT, USA. Na tym blogu piszę o skutecznej komunikacji, poprawianiu swoich umiejętności interpersonalnych, ale przede wszystkim o praktycznych scenariuszach przejmowania władzy nad światem.

8 comments
  1. Hadret says:
    December 21, 2006 at 16:21

    Dobre. Przydałoby się jeszcze tylko pokrótce opisać bardzo wygodne ustrojstwo, jakim jest apt-file oraz funkcję autoremove, która pojawiła się całkiem niedawno 😉

    Reply
  2. Pstryk says:
    January 11, 2007 at 12:00

    Przydalby sie opis jak zapuscic aktualizacje z plyty CD z nowym ubuntu

    bo samo wpisanie plytki do list zrodel nic nie daje

    Reply
  3. Azrael Nightwalker says:
    January 25, 2007 at 17:40

    W twoim howto przydałoby się jeszcze opisać apt-cdrom, aptitude (lepiej sprawdza zależności niż apt), oraz wajig (nakładka na apta i dpkg – wygodniejsza bo łatwiej zapamiętać komendy).

    PS: zmieniłem adres bloga więc przydałoby się żebyś go uaktualnił w swoim blogrollu
    PS2: spamkarma nie generuje ci obrazków dla captchy

    Reply
  4. Ludwik C. Siadlak says:
    January 25, 2007 at 18:07

    Dzięki za uwagi. Uaktualnie wkrótce oryginalny wpis w wiki, prezentację tutaj zamieszczoną pozostawię jednak bez zmian, żeby w przyszłości wiedzieć co pominąłem 😉
    Zastanawiam się nad analogicznym opisaniem pacmana, bo z apt’em juz nie mam do czynienia na codzien.

    Reply
  5. Pingback: Ludwik C. Siadlak :: blog » Blog Archive » Zarządzanie pakietami … | Świat Internetu i technologii
  6. Pingback: article
  7. Pingback: cliquez ici
  8. Pingback: lire la suite

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts
  • Master the Odds 7 Essential Tips to Win Big at Craps
  • Jak hrát Plinko a vyhrát zajímavé ceny_3
  • Plinko De Ultieme Gids voor Dit Spannende Spel_4
  • Азарт на деньги в лучшие игровые машины в казино онлайн с бонусами.
  • Discover How 70% of Players Are Winning Big with Mobile Casinos!
Recent Comments
  • Zapiski Rodzicielskie – Ludwik C. Siadlak on Budowanie więzi: Wspólne przeżywanie emocji
  • Ludwik C. Siadlak on #010 – Life Hacking Podcast – SZCZĘŚCIE czy FART – Czy wiesz na czym polega różnica?
  • Andrzej Zaleski on #010 – Life Hacking Podcast – SZCZĘŚCIE czy FART – Czy wiesz na czym polega różnica?
  • Paweł on Bezpłatna subskrypcja na całe życie: Aware
  • Kamila on Bezpłatna subskrypcja na całe życie: Aware
Archives
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • January 2024
  • November 2023
  • October 2023
  • May 2023
  • June 2022
  • March 2022
  • April 2021
  • March 2021
  • December 2020
  • November 2020
  • October 2020
  • March 2020
  • January 2020
  • November 2019
  • June 2019
  • May 2019
  • July 2018
  • June 2018
  • May 2018
  • March 2018
  • February 2018
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • February 2016
  • January 2016
  • December 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • July 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • October 2013
  • September 2013
  • August 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • July 2012
  • May 2011
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • September 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • September 2007
  • August 2007
  • July 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007
  • February 2007
  • January 2007
  • December 2006
  • November 2006
  • October 2006
  • September 2006
  • August 2006
  • July 2006
  • May 2006
  • April 2006
  • March 2006
Categories
  • ! Без рубрики
  • 1
  • 1 Win Aviator
  • 10
  • 10000sat4
  • 10050_tr
  • 10100_sat
  • 10120_tr
  • 10280_tr
  • 10300_sat
  • 10510_tr
  • 10520_tr
  • 10550_sat
  • 10550_tr
  • 1058i
  • 10600_sat
  • 10800_wa
  • 10900_wa
  • 11000prod2
  • 11700_wa
  • 15
  • 2
  • 2116
  • 22
  • 2568
  • 26
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 8600_tr
  • 8700_wa
  • 9
  • 9050_tr
  • 9150tr
  • 9500_wa
  • 9500_wa2
  • 9750_wa
  • 9990sat
  • a16z generative ai
  • adobe generative ai 1
  • adobe generative ai 3
  • adobe photoshop
  • Ai News
  • applickgamed
  • Bet Mex
  • Betify
  • Bezpłatne książki na Kindle
  • blog
  • Bookkeeping
  • Budowanie wizerunku
  • casino
  • chatgpt generative ai 1
  • Cryptocurrency exchange
  • Evernote
  • Film
  • FinTech
  • Forex Trading
  • fortunetiger
  • fr
  • freshbet
  • FR_steroide
  • generative ai application landscape 1
  • generative ai startups 2
  • IT Vacancies
  • IT Образование
  • izzi
  • jardiance
  • Książka
  • Kuchnia
  • laopcion.com.co
  • Lifehacking
  • lyrica
  • Motocykle
  • New Post
  • News
  • Parenting
  • Parimatch
  • Personal Development
  • Pewność siebie
  • pl
  • Plinko
  • Podcast
  • Podróże
  • Post
  • Posty gościnne
  • Praca zdalna
  • Produktywność i efektywność
  • Prywatność w Sieci
  • Sober living
  • Software development
  • Spotkania z Czytelnikami
  • Sumatriptan
  • Szuflandia
  • teacherrangerteacher
  • Teatr
  • Trenerskie Życie w Obrazkach
  • Uncategorized
  • Warsztat trenera
  • www.artupdate.nl
  • www.cauciucuribucuresti.ro
  • www.churchgrowthresearch.org.uk_report
  • www.coronatest-rv.de
  • www.jo-sie.nl
  • www.sigarenfabrieken.nl
  • www.stiledo.pl_plakaty
  • www.un-film-sur-riquet.fr
  • www.weisse-magie.co
  • www.zsolovi.cz
  • Występy gościnne (audio)
  • Występy gościnne (video)
  • Zarządzanie czasem
  • Zdrowie i tryb życia
  • Związki i relacje
  • остатки
  • Финтех
Meta
  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Ludwik C. Siadlak
Jak przejąć władzę nad światem?

Input your search keywords and press Enter.