/[ddp]/manuals/trunk/apt-howto/apt-howto.pl.sgml
ViewVC logotype

Contents of /manuals/trunk/apt-howto/apt-howto.pl.sgml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6994 - (show annotations) (download) (as text)
Mon Nov 30 14:22:36 2009 UTC (3 years, 6 months ago) by osamu
File MIME type: text/x-sgml
File size: 66307 byte(s)
Mark Obsolete Documentation as such
1 <!doctype debiandoc system>
2 <debiandoc>
3
4 <book>
5
6 <title>APT HOWTO (Obsolete Documentation)</title>
7
8 <author>
9 <name>Gustavo Noronha Silva</name> <email>kov@debian.org</email>
10 </author>
11 <author>
12 <name>polskie tłumaczenie: Paweł Tęcza</name> <email>ptecza@debianusers.pl</email>
13 </author>
14
15 <version>1.8.5 - lipiec 2003</version>
16
17 <abstract>
18 Ten dokument ma na celu dobrze wyjaśnić użytkownikowi zasadę działania
19 narzędzia do zarządzania pakietami Debiana jakim jest APT. Jego celem
20 jest uczynienie łatwiejszym życia nowym użytkownikom Debiana oraz pomoc
21 tym jego użytkownikom, którzy chcieliby lepiej rozumieć administrowanie
22 systemem pakietów. Został on stworzony w ramach projektu Debian, aby pomóc
23 w polepszeniu wsparcia dla użytkowników tej dystrybucji.
24 </abstract>
25
26 <copyright>
27 <copyrightsummary>
28 Copyright &copy; 2001, 2002, 2003, 2004 Gustavo Noronha Silva
29 </copyrightsummary>
30 <p>
31 This manual is free software; you may redistribute it and/or modify it
32 under the terms of the GNU General Public License as published by the
33 Free Software Foundation; either version 2, or (at your option) any
34 later version.
35 </p>
36
37 <p>
38 This is distributed in the hope that it will be useful, but without
39 any warranty; without even the implied warranty of merchantability or
40 fitness for a particular purpose. See the GNU General Public License
41 for more details.
42 </p>
43
44 <p>
45 A copy of the GNU General Public License is available as
46 /usr/share/common-licenses/GPL in the Debian GNU/Linux distribution or
47 on the World Wide Web at the GNU General Public Licence. You can also
48 obtain it by writing to the Free Software Foundation, Inc., 59 Temple
49 Place - Suite 330, Boston, MA 02111-1307, USA.
50 </p>
51 </copyright>
52
53 <toc>
54
55 <chapt>Wprowadzenie
56 <p>
57 Na początku był plik .tar.gz. Użytkownicy musieli kompilować każdy program,
58 który chcieli używać w swoich systemach GNU/Linux. Kiedy stworzono Debiana,
59 uznano za niezbędne włączenie do systemu metody zarządzania pakietami
60 zainstalowanymi na komputerze pracującym pod jego kontrolą. Ten system
61 zarządzania pakietami nazwano <prgn>dpkg</prgn>. Tak więc słynne pojęcie
62 `pakietu' weszło do systemów GNU/Linux zanim firma Red Hat zdecydowała się
63 stworzyć swój własny system `rpm'.
64 <p>
65 Szybko uwagę twórców systemu GNU/Linux zajął nowy dylemat. Potrzebowali oni
66 bardzo szybkiego, praktycznego i sprawnego sposobu instalowania pakietów,
67 który automatycznie zarządzałby zależnościami między pakietami i troszczył
68 się o ich pliki konfiguracyjne podczas aktualizacji. I znów to właśnie Debian
69 wprowadził ten sposób i tak oto narodził się APT (Advanced Packaging Tool),
70 który został przystosowany do współpracy z pakietami rpm przez firmę
71 Conectiva, a następnie wykorzystany także przez inne dystrybucje.
72 <p>
73 Ten podręcznik nie opisuje apt-rpm, jak nazwano wersję APT-a zmodyfikowaną
74 przez firmę Conectiva, ale "łaty" do tego dokumentu, które by to robiły są
75 mile widziane.
76 <p>
77 Informacje zawarte w tym podręczniku dotyczą następnego stabilnego wydania
78 Debiana, które nosi nazwę kodową <tt>Sarge</tt>.
79 </chapt>
80
81 <chapt id="basico">Podstawowa konfiguracja
82
83 <sect id="sources.list">Plik /etc/apt/sources.list
84 <p>
85 Do części swoich operacji APT używa pliku zawierającego listę `źródeł',
86 z których mogą być pobierane pakiety. Tym plikiem jest
87 <tt>/etc/apt/sources.list</tt>.
88 <p>
89 Wpisy w tym pliku mają następujący format:
90
91 <p>
92 <example>
93 deb http://witryna.http.org/debian dystrybucja sekcja1 sekcja2 sekcja3
94 deb-src http://witryna.http.org/debian dystrybucja sekcja1 sekcja2 sekcja3
95 </example>
96
97 <p>
98 Oczywiście powyższe wpisy są fikcyjne i nie powinny być używane.
99 Pierwszym słowem w każdej linii jest <tt>deb</tt> lub <tt>deb-src</tt>,
100 które wskazuje typ archiwum. Mówi ono czy archiwum zawiera pakiety binarne
101 (<tt>deb</tt>), czyli skompilowane już pakiety, których zazwyczaj używamy
102 czy pakiety źródłowe (<tt>deb-src</tt>), którymi są oryginalne źródła
103 programów wraz z plikiem zawierającym opis (<tt>.dsc</tt>) oraz plikiem
104 przechowującym zmiany potrzebne do `zdebianizowania' programu
105 (<tt>.diff.gz</tt>).
106 <p>
107 Zwykle plik sources.list zawiera domyślnie następujące wpisy:
108
109 <p>
110 <example>
111 # See sources.list(5) for more information, especialy
112 # Remember that you can only use http, ftp or file URIs
113 # CDROMs are managed through the apt-cdrom tool.
114 deb http://http.us.debian.org/debian stable main contrib non-free
115 deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
116 deb http://security.debian.org stable/updates main contrib non-free
117
118 # Uncomment if you want the apt-get source function to work
119 #deb-src http://http.us.debian.org/debian stable main contrib non-free
120 #deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
121 </example>
122
123 <p>
124 Linie te są potrzebne do podstawowej instalacji Debiana. Pierwsza linia ze
125 słowem <tt>deb</tt> wskazuje na oficjane archiwum, druga na archiwum non-US,
126 a trzecia na archiwum z uaktualnieniami pakietów związanych z bezpieczeństwem
127 Debiana.
128 <p>
129 Dwie ostatnie linie są wykomentowane (za pomocą znaku `#' na początku linii),
130 więc apt-get po prostu je zignoruje. To są linie ze słowem <tt>deb-src</tt>,
131 które wskazują na pakiety źródłowe Debiana. Jeśli często pobierasz źródła
132 programów do testowania ich lub rekompilacji, to odkomentuj te linie.
133 <p>
134 Plik <tt>/etc/apt/sources.list</tt> może zawierać kilka typów linii.
135 APT wie jak sobie radzić z archiwami typu <tt>http</tt>, <tt>ftp</tt>,
136 <tt>file</tt> (lokalne pliki, np. katalog zawierający zamontowany system
137 plików ISO9660) i <tt>ssh</tt>.
138 <p>
139 Nie zapomnij wydać polecenia <tt>apt-get update</tt> po zmodyfikowaniu
140 zawartości pliku <tt>/etc/apt/sources.list</tt>. Jest to konieczne,
141 aby APT pobrał listy dostępnych pakietów ze źródeł wymienionych w tym
142 pliku.
143 </sect>
144
145 <sect id="dpkg-scanpackages">Jak używać APT-a lokalnie
146 <p>
147 Czasami masz dużo pakietów <tt>.deb</tt>, do których instalacji
148 chciałbyś/chciałabyś użyć APT-a, aby zajął się zależnościami.
149 <p>
150 Aby to zrobić stwórz najpierw katalog i umieść w nim pliki <tt>.deb</tt>,
151 które chcesz zindeksować, np.:
152
153 <p>
154 <example>
155 # mkdir /root/debs
156 </example>
157
158 <p>
159 Możesz zmodyfikować zapisywane w plikach kontrolnych ustawienia pakietów
160 znajdujących się w Twoim repozytorium przy pomocy pliku
161 <tt>unieważniającego</tt>. Wewnątrz tego pliku możesz zdefiniować jakieś
162 opcje unieważniające inne, które były dostarczone wraz z pakietem.
163 Odbywa się to w następujący sposób:
164
165 <p>
166 <example>
167 pakiet priorytet sekcja
168 </example>
169
170 <p>
171 gdzie `pakiet' jest nazwą pakietu, `priorytet' może przybierać wartości
172 `low', `medium' lub `high', a `sekcja' jest nazwą sekcji, do której należy
173 pakiet. Możesz nazwać ten plik jest tylko chcesz, będziesz musiał później
174 podać jego nazwę jako argument programu <prgn>dpkg-scanpackages</prgn>.
175 Jeśli nie masz ochoty na tworzenie pliku <tt>unieważniającego</tt>,
176 to zamiast niego możesz użyć urządzenia <file>/dev/null</file> przy
177 uruchamianiu programu <prgn>dpkg-scanpackages</prgn>.
178 <p>
179 Wciąż w katalogu /root wydaj polecenie:
180
181 <p>
182 <example>
183 # dpkg-scanpackages debs <var>plik</var> | gzip &gt; debs/Packages.gz
184 </example>
185
186 <p>
187 W powyższej linii <file>plik</file> to plik <tt>unieważniający</tt>,
188 zaś komenda tworzy plik <file>Packages.gz</file>, zawierający różne
189 informacje na temat pakietów, które są używane przez APT-a. Aby móc
190 używać pakietów, w pliku <tt>/etc/apt/sources.list</tt> dodaj linię:
191
192 <p>
193 <example>
194 deb file:/root debs/
195 </example>
196
197 <p>
198 Teraz już możesz używać poleceń APT-a tak, jak zwykle. Możesz także stworzyć
199 repozytorium źródeł. W tym celu musisz wykonać taką samą procedurę jak
200 wcześniej. Pamiętaj jednak, że będziesz potrzebować w katalogu plików
201 <tt>.orig.tar.gz</tt>, <tt>.dsc</tt> i <tt>.diff.gz</tt>, oraz że należy użyć
202 nazwy <tt>Sources.gz</tt> zamiast <tt>Packages.gz</tt>. Również program do
203 jego tworzenia jest inny. Nazywa się on <prgn>dpkg-scansources</prgn>.
204 Linia komend powinna wyglądać następująco:
205
206 <p>
207 <example>
208 dpkg-scansources debs | gzip &gt; debs/Sources.gz
209 </example>
210
211 <p>
212 Zauważ, że program <prgn>dpkg-scansources</prgn> nie potrzebuje pliku
213 <tt>unieważniającego</tt>. Do pliku <tt>/etc/apt/sources.list</tt>
214 powinniśmy wpisać:
215
216 <p>
217 <example>
218 deb-src file:/root debs/
219 </example>
220 </sect>
221
222 <sect id="netselect">Podejmowanie decyzji, który serwer lustrzany najlepiej
223 umieścić w pliku sources.list: netselect, netselect-apt
224 <p>
225 Często zadawanym pytaniem, zwłaszcza przez nowych użytkowników Debiana,
226 jest: "który serwer lustrzany z pakietami powinienem umieścić w pliku
227 <tt>sources.list</tt>?".
228 Jest wiele sposobów pozwalających wybrać serwer lustrzany. Eksperci zapewne
229 używają skryptów mierzących obciążenie różnych serwerów. Istnieje jednak
230 program, który zrobi to dla nas, a który nazywa się <prgn>netselect</prgn>.
231 <p>
232 Aby zainstalować program netselect, jak zwykle wydajemy polecenie:
233
234 <p>
235 <example>
236 # apt-get install netselect
237 </example>
238
239 <p>
240 Uruchomienie programu netselect bez podania parametrów spowoduje wyświetlenie
241 pomocy ekranowej. Gdy jednak uruchomimy go podając jako argument listę,
242 oddzielonych spacją, stacji (serwerów lustrzanych), to otrzymamy w wyniku
243 jedną z podanych maszyn. Wynik ten zależy od przybliżonego czasu powrotu
244 wysyłanych do stacji pakietów IP (tzw. ping) oraz od ilości stacji pośrednich
245 (przez które te pakiety "przechodzą" zanim dotrą do celu) i jest odwrotnie
246 proporcjonalny do przybliżonej prędkości pobierania (zatem, im mniejszy,
247 tym lepiej). Zwrócona w wyniku stacja ma najmniejszy wynik (pełna lista
248 wyników będzie widoczna po dodaniu opcji -vv). Spójrz na poniższy przykład:
249
250 <p>
251 <example>
252 # netselect ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br
253 365 ftp.debian.org.br
254 #
255 </example>
256
257 <p>
258 Oznacza to, że spośród serwerów lustrzanych podanych jako parametry programu
259 netselect, najlepszym okazał się <tt>ftp.debian.org.br</tt>, który uzyskał
260 wynik 365 (Uwaga! Ten test został wykonany na moim komputerze a trasa,
261 którą pokonują pakiety IP zależy od miejsca, do którego podłączony jest
262 nasz komputer. Uzyskana wartość niekoniecznie będzie prawdziwą prędkością
263 na innych komputerach).
264 <p>
265 Teraz umieść najszybszy serwer lustrzany znaleziony przez netselect w pliku
266 <tt>/etc/apt/sources.list</tt> (patrz na sekcję <ref id="sources.list">)
267 i zastosuj porady z sekcji <ref id="apt-get">.
268 <p><strong>Uwaga:</strong> listę serwerów lustrzanych można zawsze znaleźć
269 w pliku <url id="http://www.debian.org/mirror/mirrors_full"
270 name="http://www.debian.org/mirror/mirrors_full">.
271 <p>
272 Poczynając od wersji 0.3, pakiet netselect zawiera skrypt
273 <prgn>netselect-apt</prgn>, który automatyzuje opisany powyżej proces.
274 Po prostu jako parametr skryptu podaj dystrybucję (domyślnie jest nią
275 dystrybucja stabilna), a wygeneruje on plik <tt>sources.list</tt>
276 z najlepszym serwerem lustrzanym zawierającym pakiety z sekcji main
277 i non-US i zapisze go w bieżącym katalogu. Poniższy przykład generuje
278 plik <tt>sources.list</tt> dla stabilnej dystrybucji.
279
280 <p>
281 <example>
282 # ls sources.list
283 ls: sources.list: File or directory not found
284 # netselect-apt stable
285 (...)
286 # ls -l sources.list
287 sources.list
288 #
289 </example>
290
291 <p>
292 <strong>Pamiętaj:</strong> plik <tt>sources.list</tt> zostanie wygenerowany
293 w bieżącym katalogu i musi być przeniesiony do katalogu <tt>/etc/apt</tt>.
294 <p>
295 Następnie przejdź do porad z sekcji <ref id="apt-get">.
296 </sect>
297
298 <sect id="cdrom">Dodawanie CD-ROM-u do pliku sources.list
299 <p>
300 Jeśli raczej używasz napędu CD-ROM do instalowania pakietów lub
301 automatycznego uaktualniania Twojego systemu przy pomocy APT-a,
302 to możesz go umieścić w pliku <tt>sources.list</tt>. Aby to zrobić,
303 możesz użyć programu <prgn>apt-cdrom</prgn> w poniższy sposób:
304
305 <p>
306 <example>
307 # apt-cdrom add
308 </example>
309
310 <p>
311 z umieszczoną w napędzie CD-ROM płytą z pakietami Debiana. Polecenie te
312 zamontuje napęd i poszuka na płycie informacji na temat pakietów.
313 Jeśli konfiguracja Twojego CD-ROM-u jest trochę nietypowa, możesz także
314 użyć następujących opcji:
315
316 <p>
317 <example>
318 -h - Pomoc ekranowa do programu
319 -d katalog - Katalog, w którym montowany jest CD-ROM
320 -r - Zmiana nazwy rozpoznanego CD-ROM-u
321 -m - Bez montowania
322 -f - Tryb szybki, bez sprawdzania plików z pakietami
323 -a - Tryb dokładnego przeszukiwania
324 </example>
325
326 <p>
327 Na przykład:
328
329 <p>
330 <example>
331 # apt-cdrom -d /home/ala/mojcdrom add
332 </example>
333
334 <p>
335 Możesz także zidentyfikować swój CD-ROM, bez dodawania go do listy:
336
337 <p>
338 <example>
339 # apt-cdrom ident
340 </example>
341
342 <p>
343 Zwróć uwagę, że ten program będzie działał tylko wtedy, gdy Twój CD-ROM
344 jest właściwie skonfigurowany w systemowym pliku <tt>/etc/fstab</tt>.
345 </sect>
346 </chapt>
347
348 <chapt id="apt-get">Zarządzanie pakietami
349 <sect id="update">Aktualizacja listy dostępnych pakietów
350 <p>
351 System zarządzania pakietami używa własnej bazy danych, w której przechowuje
352 informacje o tym, które pakiety są zainstalowane, które nie i które są
353 dostępne do instalacji. Program <prgn>apt-get</prgn> używa właśnie tej bazy
354 danych, aby dowiedzieć się jak zainstalować pakiety na życzenie użytkownika
355 i jakie dodatkowe pakiety są potrzebne, aby te wybrane przez użytkownika
356 działały prawidłowo.
357 <p>
358 Aby uaktualnić tą bazę danych należy użyć komendy <prgn>apt-get update</prgn>.
359 Przeszuka ona archiwa umieszczone w pliku <tt>/etc/apt/sources.list</tt>;
360 zobacz sekcję <ref id="sources.list">, aby uzyskać więcej informacji na temat
361 tego pliku.
362 <p>
363 Dobrym nawykiem jest uruchamiać tą komendę dosyć regularnie, aby stale
364 informować swój system o możliwych uaktualnieniach pakietów, zwłaszcza tych
365 związanych z jego bezpieczeństwem.
366 </sect>
367
368 <sect id="install">Instalacja pakietów
369 <p>
370 W końcu proces, na który wszyscy czekaliśmy! Gdy już mamy plik sources.list
371 z listą źródeł pakietów i wiemy jakie pakiety chcemy uaktualnić, to wszystko
372 co musimy zrobić, to uruchomić program <tt>apt-get</tt>, który pobierze
373 pakiety, które zamierzamy zainstalować. Dla przykładu możesz go wywołać
374 następująco:
375
376 <p>
377 <example>
378 # apt-get install xchat
379 </example>
380
381 <p>
382 APT poszuka w swojej bazie danych najnowszej wersji pakietu i pobierze go
383 z odpowiedniego archiwum, które podano w pliku <tt>sources.list</tt>.
384 Gdyby okazało się, że pakiet ten zależy od innego, tak jak w powyższym
385 przykładzie, to APT sprawdzi zależności i zainstaluje potrzebne pakiety.
386 Spójrz na ten przykład:
387
388 <p>
389 <example>
390 # apt-get install nautilus
391 Reading Package Lists... Done
392 Building Dependency Tree... Done
393 The following extra packages will be installed:
394 bonobo libmedusa0 libnautilus0
395 The following NEW packages will be installed:
396 bonobo libmedusa0 libnautilus0 nautilus
397 0 packages upgraded, 4 newly installed, 0 to remove and 1 not upgraded.
398 Need to get 8329kB of archives. After unpacking 17.2MB will be used.
399 Do you want to continue? [Y/n]
400 </example>
401
402 <p>
403 Pakiet <package>nautilus</package> zależy od kilku wymienionych bibliotek
404 współdzielonych, dlatego APT pobierze je z archiwum. Gdybyś podał nazwy
405 tych bibliotek jako parametr wywołania programu <tt>apt-get</tt>, to APT
406 nie zapytałby Cię czy chcesz kontynuować, gdyż automatycznie założyłby,
407 że chciałeś je zainstalować.
408 <p>
409 Oznacza to, że APT tylko wtedy pyta Cię o potwierdzenie, gdy z powodu
410 zależności między pakietami konieczne jest zainstalowanie także innych
411 pakietów niż te podane przez Ciebie w linii komend.
412 <p>
413 Użyteczne mogą być następujące opcje programu apt-get:
414
415 <p>
416 <example>
417 -h Pomoc ekranowa do programu
418 -d Tylko pobranie pakietu, BEZ instalacji lub rozpakowania archiwum
419 -f Próba kontynuowania, nawet jeśli sprawdzenie integralności kończy się niepowodzeniem
420 -s Bez akcji. Wykonuje symulację polecenia
421 -y Zakłada odpowiedź `Tak' na wszystkie zapytania i nie pyta o potwierdzenie
422 -u Wyświetla również listę uaktualnionych pakietów
423 </example>
424
425 <p>
426 W jednej linii można podać wiele pakietów do instalacji. Pliki pobrane
427 z sieci są umieszczane do późniejszej instalacji w katalogu
428 <tt>/var/cache/apt/archives</tt>.
429 <p>
430 Możesz także w tej samej linii wymienić pakiety, które chcesz usunąć.
431 Po prostu umieść znak '-' bezpośrednio za nazwą pakietu do usunięcia,
432 tak jak pokazano poniżej:
433
434 <p>
435 <example>
436 # apt-get install nautilus gnome-panel-
437 Reading Package Lists... Done
438 Building Dependency Tree... Done
439 The following extra packages will be installed:
440 bonobo libmedusa0 libnautilus0
441 The following packages will be REMOVED:
442 gnome-applets gnome-panel gnome-panel-data gnome-session
443 The following NEW packages will be installed:
444 bonobo libmedusa0 libnautilus0 nautilus
445 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
446 Need to get 8329kB of archives. After unpacking 2594kB will be used.
447 Do you want to continue? [Y/n]
448 </example>
449
450 <p>
451 Aby dowiedzieć się więcej na temat usuwania pakietów, zobacz sekcję
452 <ref id="remove">.
453 <p>
454 Gdybyś w jakiś sposób uszkodził zainstalowany pakiet, albo po prostu chciał
455 ponownie zainstalować jego najnowszą dostępną wersję, to możesz użyć opcji
456 <tt>--reinstall</tt>, jak pokazano poniżej:
457
458 <p>
459 <example>
460 # apt-get --reinstall install gdm
461 Reading Package Lists... Done
462 Building Dependency Tree... Done
463 0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not upgraded.
464 Need to get 0B/182kB of archives. After unpacking 0B will be used.
465 Do you want to continue? [Y/n]
466 </example>
467 </sect>
468
469 <sect id="remove">Usuwanie pakietów
470 <p>
471 Jeśli nie chcesz już dłużej używać jakiegoś pakietu, możesz go usunąć
472 ze swojego systemu za pomocą APT-a. Aby to zrobić, po prostu wpisz:
473 <tt>apt-get remove pakiet</tt>. Na przykład:
474
475 <p>
476 <example>
477 # apt-get remove gnome-panel
478 Reading Package Lists... Done
479 Building Dependency Tree... Done
480 The following packages will be REMOVED:
481 gnome-applets gnome-panel gnome-panel-data gnome-session
482 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
483 Need to get 0B of archives. After unpacking 14.6MB will be freed.
484 Do you want to continue? [Y/n]
485 </example>
486
487 <p>
488 Jak widać na powyższym przykładzie, APT troszczy się także o usunięcie
489 pakietów, które zależą od pakietu, który chcesz odinstalować. Za pomocą
490 APT-a nie można usunąć pakietu bez usunięcia tych pakietów, które zależą
491 od niego.
492 <p>
493 Uruchamiając program <prgn>apt-get</prgn> w taki sposób jaki pokazano powyżej
494 spowodujemy usunięcie pakietów, ale jeśli posiadały one pliki konfiguracyjne,
495 to pozostaną one nadal w systemie. Aby całkowicie usunąć pakiet uruchom
496 <prgn>apt-get</prgn> w następujący sposób:
497
498 <p>
499 <example>
500 # apt-get --purge remove gnome-panel
501 Reading Package Lists... Done
502 Building Dependency Tree... Done
503 The following packages will be REMOVED:
504 gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
505 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
506 Need to get 0B of archives. After unpacking 14.6MB will be freed.
507 Do you want to continue? [Y/n]
508 </example>
509
510 <p>
511 Zwróć uwagę na znak '*' na końcu nazwy pakietów. Sygnalizuje on, że pliki
512 konfiguracyjne każdego z pakietów także zostały usunięte.
513 <p>
514 Analogicznie jak dla metody <tt>install</tt>, możesz z opcją <tt>remove</tt>
515 użyć symbolu, który odwróci jej znaczenie. W przypadku usuwania pakietów,
516 jeśli za nazwą pakietu umieścisz znak <tt>'+'</tt>, to zostanie on
517 zainstalowany, a nie usunięty.
518
519 <p>
520 <example>
521 # apt-get --purge remove gnome-panel nautilus+
522 Reading Package Lists... Done
523 Building Dependency Tree... Done
524 The following extra packages will be installed:
525 bonobo libmedusa0 libnautilus0 nautilus
526 The following packages will be REMOVED:
527 gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
528 The following NEW packages will be installed:
529 bonobo libmedusa0 libnautilus0 nautilus
530 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
531 Need to get 8329kB of archives. After unpacking 2594kB will be used.
532 Do you want to continue? [Y/n]
533 </example>
534
535 <p>
536 Zauważ, że program <prgn>apt-get</prgn> wyświetla dodatkowe pakiety,
537 które zostaną zainstalowane (tzn. te pakiety, których instalacja jest
538 potrzebna do poprawnego działania pakietów, które chce zainstalować
539 użytkownik), pakiety które zostaną usunięte i te, które zostaną
540 zainstalowane (ponownie włączając dodatkowe pakiety).
541 </sect>
542
543 <sect id="upgrade">Aktualizacja pakietów
544 <p>
545 Możliwość aktualizacji pakietów to wielkie osiągnięcie systemu APT. Odbywa
546 się to za pomocą pojedynczej komendy: <tt>apt-get upgrade</tt>. Możesz jej
547 użyć zarówno do aktualizacji pakietów z tej samej dystrybucji, jak i by
548 zaktualizować całą dystrybucję, chociaż do tego celu jest raczej preferowana
549 komenda <tt>apt-get dist-upgrade</tt>; zobacz sekcję <ref id="dist-upgrade">,
550 jeśli chcesz się więcej dowiedzieć na ten temat.
551 <p>
552 Warto uruchomić tą komendę z opcją <tt>-u</tt>. Spowoduje ona, że APT
553 wyświetli kompletną listę pakietów, które zostaną zaktualizowane. Bez niej
554 nie będziesz wiedział jakie pakiety aktualizujesz. APT pobierze najnowsze
555 wersje każdego pakietu i zainstaluje je w odpowiedniej kolejności.
556 Bardzo ważne jest uruchamianie <tt>apt-get update</tt> zawsze przed
557 wydaniem polecenia <tt>apt-get upgrade</tt>. Zobacz sekcję <ref id="update">,
558 aby dowiedzieć się więcej szczegółów na jego temat. Spójrz także na poniższy
559 przykład:
560
561 <p>
562 <example>
563 # apt-get -u upgrade
564 Reading Package Lists... Done
565 Building Dependency Tree... Done
566 The following packages have been kept back
567 cpp gcc lilo
568 The following packages will be upgraded
569 adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent
570 ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev
571 libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0
572 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc
573 29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
574 Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
575 Do you want to continue? [Y/n]
576 </example>
577
578 <p>
579 Proces uaktualniania pakietów jest bardzo prosty. Zauważ, że w pierwszych
580 kilku liniach APT informuje, które pakiety zostaną <tt>pozostawione
581 nietknięte</tt>. Oznacza to, że istnieją nowsze wersje tych pakietów,
582 ale z jakichś powodów nie zostaną zainstalowane. Przyczynami takiego stanu
583 mogą być zepsute zależności (pakiet, od którego zależy nie ma dostępnej
584 wersji do pobrania) lub nowe zależności (pakiet w ostatniej wersji zależy
585 od nowego pakietu).
586 <p>
587 W pierwszym przypadku nie ma prostego rozwiązania. W drugim wystarczy
588 uruchomić komendę <tt>apt-get install</tt>, aby zainstalować specyficzny
589 pakiet wraz z zależnościami. Jeszcze prostszym rozwiązaniem jest użycie
590 komendy <tt>dist-upgrade</tt>. Zobacz sekcję <ref id="dist-upgrade">,
591 aby dowiedzieć się więcej na ten temat.
592 </sect>
593
594 <sect id="dist-upgrade">Aktualizacja do nowego wydania
595 <p>
596 Ta zdolność APT-a pozwala Ci uaktualnić cały system Debian za jednym razem,
597 zarówno poprzez sieć Internet jaki i z nowej płyty CD (nabytej lub pobranej
598 w postaci obrazu ISO).
599 <p>
600 Jest ona również używana, gdy ulegają zmianie relacje pomiędzy zainstalowanymi
601 pakietami. Dzięki poleceniu <tt>apt-get upgrade</tt>, pakiety te pozostaną
602 w spokoju (<tt>pozostawione nietknięte</tt>).
603 <p>
604 Dla przykładu, przypuśćmy że używamy wydania nr 0 stabilnej wersji Debiana
605 i kupujemy płytę CD z wydaniem nr 3. Możemy użyć APT-a do aktualizacji
606 systemu z tej nowej płyty CD. W tym celu najpierw użyj programu
607 <prgn>apt-cdrom</prgn> (więcej szczegółów w sekcji <ref id="cdrom">),
608 aby dodać tą płytę do pliku <tt>/etc/apt/sources.list</tt>, a następnie
609 uruchom program <tt>apt-get dist-upgrade</tt>.
610 <p>
611 Jest ważną rzeczą zauważenie, że APT zawsze szuka najnowszych wersji
612 pakietów. Dlatego, jeśli Twój plik <tt>/etc/apt/sources.list</tt> zawiera
613 listę archiwów z nowszymi wersjami pakietów niż na płycie CD, to APT nie
614 pobierze ich z płyty, lecz właśnie stamtąd.
615 <p>
616 W przykładzie pokazanym w sekcji <ref id="upgrade"> widzieliśmy, że część
617 pakietów została <tt>pozostawiona nietknięta</tt>. Teraz możemy rozwiązać
618 ten problem właśnie za pomocą metody <tt>dist-upgrade</tt>:
619
620 <p>
621 <example>
622 # apt-get -u dist-upgrade
623 Reading Package Lists... Done
624 Building Dependency Tree... Done
625 Calculating Upgrade... Done
626 The following NEW packages will be installed:
627 cpp-2.95 cron exim gcc-2.95 libident libopenldap-runtime libopenldap1
628 libpcre2 logrotate mailx
629 The following packages have been kept back
630 lilo
631 The following packages will be upgraded
632 adduser ae apt autoconf cpp debhelper dpkg-dev esound esound-common ftp gcc
633 indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0
634 libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev
635 liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit
636 procps psmisc
637 31 packages upgraded, 10 newly installed, 0 to remove and 1 not upgraded.
638 Need to get 0B/7098kB of archives. After unpacking 3118kB will be used.
639 Do you want to continue? [Y/n]
640 </example>
641
642 <p>
643 Zauważ teraz, że pakiety zostaną zaktualizowane i że zostaną też
644 zainstalowane nowe pakiety (nowe zależności tych pakietów). Zauważ również,
645 iż lilo wciąż <tt>pozostaje nietknięte</tt>. Przyczyną tego problemu jest
646 zapewne coś więcej niż nowa zależność. Odnajdziemy ją uruchamiając:
647
648 <p>
649 <example>
650 # apt-get -u install lilo
651 Reading Package Lists... Done
652 Building Dependency Tree... Done
653 The following extra packages will be installed:
654 cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
655 logrotate mailx
656 The following packages will be REMOVED:
657 debconf-tiny
658 The following NEW packages will be installed:
659 cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
660 logrotate mailx
661 The following packages will be upgraded
662 lilo
663 1 packages upgraded, 9 newly installed, 1 to remove and 31 not upgraded.
664 Need to get 225kB/1179kB of archives. After unpacking 2659kB will be used.
665 Do you want to continue? [Y/n]
666 </example>
667
668 <p>
669 Jak widać powyżej, lilo ma nowy konflikt z pakietem
670 <package>debconf-tiny</package>, który uniemożliwia jego instalację
671 (lub uaktualnienienie) bez usunięcia pakietu <package>debconf-tiny</package>.
672 <p>
673 Aby przekonać się, co było przyczyną pozostawienia pakietu nietkniętym
674 lub usunięcia pakietu możemy użyć poniższego polecenia:
675
676 <p>
677 <example>
678 # apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
679 Reading Package Lists... Done
680 Building Dependency Tree... Done
681 Calculating Upgrade... Starting
682 Starting 2
683 Investigating python1.5
684 Package python1.5 has broken dep on python1.5-base
685 Considering python1.5-base 0 as a solution to python1.5 0
686 Holding Back python1.5 rather than change python1.5-base
687 Investigating python1.5-dev
688 Package python1.5-dev has broken dep on python1.5
689 Considering python1.5 0 as a solution to python1.5-dev 0
690 Holding Back python1.5-dev rather than change python1.5
691 Try to Re-Instate python1.5-dev
692 Done
693 Done
694 The following packages have been kept back
695 gs python1.5-dev
696 0 packages upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
697 </example>
698
699 <p>
700 W ten sposób można łatwo sprawdzić, że pakiet python1.5-dev nie może zostać
701 zainstalowany z powodu niespełnienia zależności przez pakiet python1.5.
702 </sect>
703
704 <sect id="clean">Usuwanie niepotrzebnych plików z pakietami: apt-get clean
705 i autoclean
706 <p>
707 W czasie instalowania pakietu APT pobiera niezbędne pliki z serwera
708 wskazanego w pliku <file>/etc/apt/sources.list</file>, umieszcza je
709 w lokalnym repozytorium (<file>/var/cache/apt/archives/</file>),
710 a następnie instaluje w sposób opisany w sekcji <ref id="install">.
711 <p>
712 Z czasem lokalne repozytorium może się rozrosnąć i zająć dużą ilość
713 przestrzeni dysku. Na szczęście APT jest wyposażony w narzędzia,
714 które umożliwiają zarządzanie lokalnym repozytorium. Należą do nich
715 metody <tt>clean</tt> i <tt>autoclean</tt> programu <prgn>apt-get</prgn>.
716 <p>
717 <prgn>apt-get clean</prgn> usuwa wszystkie pliki z wyjątkiem plików
718 "blokujących" (ang. lock files) z katalogów
719 <file>/var/cache/apt/archives/</file>
720 i <file>/var/cache/apt/archives/partial/</file>. Jednakże, jeśli będziesz
721 chciał ponownie zainstalować pakiet, to APT jeszcze raz pobierze niezbędne
722 pliki.
723 <p>
724 <prgn>apt-get autoclean</prgn> usuwa tylko te pliki, które nie będą mogły
725 być później pobrane z Sieci.
726 <p>
727 Poniższy przykład pokazuje w jaki sposób działa metoda <tt>autoclean</tt>:
728
729 <p>
730 <example>
731 # ls /var/cache/apt/archives/logrotate* /var/cache/apt/archives/gpm*
732 logrotate_3.5.9-7_i386.deb
733 logrotate_3.5.9-8_i386.deb
734 gpm_1.19.6-11_i386.deb
735 </example>
736
737 <p>
738 W katalogu <file>/var/cache/apt/archives</file> znajdują się dwa pliki
739 z pakietem <package>logrotate</package> i jeden z pakietem
740 <package>gpm</package>.
741
742 <p>
743 <example>
744 # apt-show-versions -p logrotate
745 logrotate/stable uptodate 3.5.9-8
746 # apt-show-versions -p gpm
747 gpm/stable upgradeable from 1.19.6-11 to 1.19.6-12
748 </example>
749
750 <p>
751 Program <prgn>apt-show-versions</prgn> informuje, że plik
752 <file>logrotate_3.5.9-8_i386.deb</file> zawiera najnowszą wersję pakietu
753 <package>logrotate</package>, a zatem plik
754 <file>logrotate_3.5.9-7_i386.deb</file> jest już bezużyteczny.
755 Także plik <file>gpm_1.19.6-11_i386.deb</file> nie będzie dłużej potrzebny,
756 gdyż dostępna jest już nowsza wersja pakietu <package>gpm</package>.
757
758 <p>
759 <example>
760 # apt-get autoclean
761 Reading Package Lists... Done
762 Building Dependency Tree... Done
763 Del gpm 1.19.6-11 [145kB]
764 Del logrotate 3.5.9-7 [26.5kB]
765 </example>
766
767 <p>
768 Jak widać powyżej, <tt>apt-get autoclean</tt> usuwa tylko stare pliki.
769 Więcej informacji na temat programu <prgn>apt-show-versions</prgn> można
770 znaleźć w sekcji <ref id="apt-show-versions">.
771 </sect>
772
773 <sect id="dselect-upgrade">Używanie APT-a razem z programem dselect
774 <p>
775 <prgn>dselect</prgn> jest programem, który pomaga użytkownikom Debiana
776 wybrać pakiety, które chcą zainstalować. Jest uważany za nieco skomplikowany
777 i dość nieciekawy, ale jeśli nabierzesz wprawy, to będziesz się swobodnie
778 posługiwał jego konsolowym interfejsem.
779 <p>
780 Jedną z cech programu dselect jest to, że informuje o tym, które jeszcze
781 pakiety Debiana są "zalecane" i "proponowane" do zainstalowania.
782 Aby użyć tego programu, jako root uruchom <tt>`dselect'</tt>. Wybierz 'apt'
783 jako metodę dostępu. Nie jest to w rzeczywistości niezbędne, ale jeśli
784 nie używasz CD-ROM-u i chcesz pobierać pakiety z Internetu, to jest to
785 najlepszy sposób używania dselecta.
786 <p>
787 Aby jeszcze lepiej zrozumieć w jaki sposób używać dselecta, przeczytaj
788 dokumentacje do niego, którą można znaleźć na stronie
789 <url id="http://www.debian.org/doc/ddp" name="http://www.debian.org/doc/ddp">.
790 <p>
791 Po wybraniu pakietów przy pomocy dselecta, użyj:
792
793 <p>
794 <example>
795 # apt-get -u dselect-upgrade
796 </example>
797
798 <p>
799 tak, jak to pokazano na przykładzie poniżej:
800
801 <p>
802 <example>
803 # apt-get -u dselect-upgrade
804 Reading Package Lists... Done
805 Building Dependency Tree... Done
806 The following packages will be REMOVED:
807 lbxproxy
808 The following NEW packages will be installed:
809 bonobo console-tools-libs cpp-3.0 enscript expat fingerd gcc-3.0
810 gcc-3.0-base icepref klogd libdigest-md5-perl libfnlib0 libft-perl
811 libgc5-dev libgcc300 libhtml-clean-perl libltdl0-dev libsasl-modules
812 libstdc++3.0 metamail nethack proftpd-doc psfontmgr python-newt talk tidy
813 util-linux-locales vacation xbill xplanet-images
814 The following packages will be upgraded
815 debian-policy
816 1 packages upgraded, 30 newly installed, 1 to remove and 0 not upgraded.
817 Need to get 7140kB of archives. After unpacking 16.3MB will be used.
818 Do you want to continue? [Y/n]
819 </example>
820
821 <p>
822 Porównaj to z tym, co widzisz, gdy uruchamiasz <tt>apt-get dist-upgrade</tt>
823 w tym samym systemie.
824
825 <p>
826 <example>
827 # apt-get -u dist-upgrade
828 Reading Package Lists... Done
829 Building Dependency Tree... Done
830 Calculating Upgrade... Done
831 The following packages will be upgraded
832 debian-policy
833 1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
834 Need to get 421kB of archives. After unpacking 25.6kB will be freed.
835 Do you want to continue? [Y/n]
836 </example>
837
838 <p>
839 Zwróć uwagę, iż wiele z powyższych pakietów będzie instalowana, ponieważ są
840 "zalecane" lub "proponowane" przez inne. Pozostałe pakiety będą instalowane
841 lub usunięte (np. w przypadku pakietu lbxproxy) zgodnie z naszym wyborem,
842 którego dokonaliśmy przy użyciu dselecta. Dselect może być naprawdę potężnym
843 narzędziem, gdy jest używany razem z APT-em.
844 </sect>
845
846 <sect id="default-version">Jak utrzymywać "wymieszany" system
847 <p>
848 Czasami ludzie chcą używać jednej z wersji Debiana jako ich głównego
849 systemu i jednego lub kilku pakietów z innej wersji.
850 <p>
851 Aby określić, która wersja Debiana jest Twoją wersją główną, w pliku
852 <file>/etc/apt/apt.conf</file> powinieneś umieścić linię:
853
854 <p>
855 <example>
856 APT::Default-Release "<var>wersja</var>";
857 </example>
858 <p>
859 gdzie <var>wersja</var> jest wersją Debiana, którą chcesz używać
860 jako swojej głównej dystrybucji. Wersjami, których możesz używać
861 są <tt>stable</tt> (`stabilna'), <tt>testing</tt> (`testowa')
862 i <tt>unstable</tt> (`niestabilna'). Aby zainstalować pakiet z innej
863 wersji musisz użyć APT-a w następujący sposób:
864
865 <p>
866 <example>
867 # apt-get -t <var>dystrybucja</var> install <var>pakiet</var>
868 </example>
869
870 <p>
871 Aby polecenie zadziałało, potrzebujesz przynajmniej jednej linii
872 w pliku <file>/etc/apt/sources.list</file> ze źródłem pakietów dla
873 dystrybucji, z której pakiet chcesz zainstalować i źródło te musi
874 zawierać ten pakiet.
875 <p>
876 Możesz również dokładnie określić wersję instalowanego pakietu używając
877 składni:
878
879 <p>
880 <example>
881 # apt-get install <var>pakiet</var>=<var>wersja</var>
882 </example>
883
884 <p>
885 Dla przykładu, poniższa linia zainstaluje wersję <tt>2.2.4-1</tt>
886 pakietu <package>nautilus</package>:
887
888 <p>
889 <example>
890 # apt-get install nautilus=2.2.4-1
891 </example>
892
893 <p>
894 <em>WAŻNE</em>: `niestabilna' wersja Debiana to wersja, do której w
895 pierwszej kolejności trafiają najnowsze wersje pakietów <tt>.deb</tt>.
896 W tej dystrybucji widoczne są wszystkie zmiany pakietów, od tych drobnych
897 do tych bardzo poważnych, które wpływają na wiele innych pakietów, a nawet
898 cały system. Z tego powodu ta wersja dystrybucji <em>nie</em> powinna być
899 używana przez niedoświadczonych użytkowników oraz tych, którzy potrzebują
900 stabilnego systemu.
901 <p>
902 Wersja `testowa' dystrybucji jest trochę lepsza od `niestabilnej' pod
903 względem stabilności, ale systemy produkcyjne powinny używać wersji
904 `stabilnej'.
905 </sect>
906
907 <sect id="apt-show-versions">Jak uaktualniać pakiety do nowszej wersji
908 z określonej wersji Debiana
909 <p>
910 Program <prgn>apt-show-versions</prgn> umożliwia użytkownikom "wymieszanych"
911 dystrybucji bezpieczne uaktualnienie swoich systemów bez ryzyka obniżenia
912 ich dotychczasowej stabilności. Dla przykładu, istnieje możliwość
913 uaktualnienia do nowszej wersji Twoich niestabilnych pakietów po
914 zainstalowaniu pakietu <package>apt-show-versions</package>:
915
916 <p>
917 <example>
918 # apt-get install `apt-show-versions -u -b | grep unstable`
919 </example>
920 </sect>
921
922 <sect id="pin">Jak zachować określone wersje zainstalowanych pakietów
923 <p>
924 Możesz mieć okazję modyfikować coś w pakiecie i nie mieć czasu lub chęci,
925 aby dokonywać tych zmian w nowych wersjach programów. Możesz też dla
926 przykładu uaktualnić swoją dystrybucję Debiana do wersji 3.0, ale chcieć
927 wciąż używać pewnych wersji pakietów z Debiana 2.2. Możesz "przyszpilić"
928 wersję pakietu, którą zainstalowałeś i która nie będzie uaktualniona.
929 <p>
930 Używanie tego sposobu jest proste. Po prostu musisz wyedytować plik
931 <tt>/etc/apt/preferences</tt>.
932 <p>
933 Jego format jest także prosty:
934
935 <p>
936 <example>
937 Package: &lt;pakiet&gt;
938 Pin: &lt;definicja "przyszpilenia"&gt;
939 Pin-Priority: &lt;priorytet "przyszpilenia"&gt;
940 </example>
941
942 <p>
943 Na przykład, aby zachować pakiet <package>sylpheed</package>,
944 który zmodyfikowałem, po to by móc używać opcji "reply-to-list" w wersji
945 0.4.99, dodałem:
946
947 <p>
948 <example>
949 Package: sylpheed
950 Pin: version 0.4.99*
951 </example>
952
953 <p>
954 Zauważ, że użyłem znaku <tt>*</tt> (gwiazdka). To jest tzw. "znak zastępczy",
955 który mówi, że chcę "przyszpilić" wszystkie wersje pakietów rozpoczynające
956 się od numeru 0.4.99. Tak jest z powodu wersji tych pakietów Debiana
957 i "debianowych korekt" i nie chcę uniknąć instalacji tych korekt.
958 Zatem, dla przykładu, wersje 0.4.99-1 i 0.4.99-10 zostaną zainstalowane,
959 gdy tylko będą dostępne. Zwróć uwagę, że jeśli zmodyfikowałeś pakiet,
960 nie będziesz chciał robić tych rzeczy w ten sposób.
961 <p>
962 Pole <tt>Pin-Priority</tt> jest opcjonalne; jeśli nie zostało określone,
963 to domyślnie przyjmuje wartość 989.
964 <p>
965 Przyjrzyjmy się jak działa priorytet "przyszpilenia". Priorytet mniejszy
966 niż 0 wskazuje, że pakiet nigdy nie powinien być zainstalowany. Priorytety o
967 wartościach od 0 do 100 wskazują pakiety, które nie są zainstalowane i które
968 nie mają dostępnych wersji. Nie będą one brać udziału w procesie wyboru
969 wersji. Priorytet równy 100 jest priorytetem przypisanym do zainstalowanego
970 pakietu, aby zainstalowana wersja pakietu została zastąpiona przez inną
971 wersję, wersja ta musi mieć priorytet większy niż 100.
972 <p>
973 Priorytety powyżej 100 wskazują, że pakiet powinien być zainstalowany.
974 Zwykle zainstalowana wersja pakietu jest zmieniana tylko w czasie
975 aktualizacji do nowszej wersji. Priorytety o wartościach pomiędzy 100 i 1000
976 (włącznie) wskazują te typowe zachowanie. Pakiet z takim priorytetem nie
977 zostanie umniejszony do dostępnej wersji o mniejszym numerze. Na przykład
978 jeśli mam zainstalowaną wersję 0.5.3 pakietu sylpheed i zdefiniuję
979 "przyszpilenie" wersji 0.4.99 tego pakietu z priorytetem 999, to wersja
980 0.4.99 <em>nie</em> zostanie zainstalowana, aby spełnić "przyszpilenie".
981 Aby uczynić pakiet "zmniejszonym" i spełnić "przyszpilenie" musisz ustawić
982 priorytet na wartość większą niż 1000.
983 <p>
984 Przyszpilenie można określić na <tt>wersji</tt>, <tt>wydaniu</tt>
985 lub <tt>pochodzeniu</tt> pakietu.
986 <p>
987 Przyszpilenie <tt>wersji</tt>, tak jak widzieliśmy, wspiera dosłowne numery
988 wersji, jak i znaki zastępcze w celu określenia kilku wersji jednocześnie.
989 <!-- what's available? standard shell globs? ?*[] or more? -->
990 <p>
991 Opcja <tt>wydanie</tt> zależy od pliku Release z repozytorium APT-a lub
992 z płyty CD. Opcja ta może nie być użyteczna zawsze jeśli używasz repozytoriów
993 pakietów, które nie dostarczają tego pliku. Możesz zobaczyć zawartość plików
994 Release, które masz w pliku <tt>/var/lib/apt/lists/</tt>. Parametrami dla
995 wydania są <tt>a</tt> (archiwum), <tt>c</tt> (komponenty), <tt>v</tt>
996 (wersja), <tt>o</tt> (pochodzenie) and <tt>l</tt> (etykieta).
997 <p>
998 Przykład:
999
1000 <p>
1001 <example>
1002 Package: *
1003 Pin: release v=2.2*,a=stable,c=main,o=Debian,l=Debian
1004 Pin-Priority: 1001
1005 </example>
1006
1007 <p>
1008 W tym przykładzie wybraliśmy wersję Debiana 2.2* (którą może być dla
1009 przykładu korekta 2.2r2 albo 2.2r3 - określa ona tzw. "punkt wydania",
1010 który zwykle zawiera nowe poprawki bezpieczeństwa i inne bardzo ważne
1011 uaktualnienia), repozytorium <tt>stable</tt>, sekcję <tt>main</tt>
1012 (w przeciwieństwie do sekcji <tt>contrib</tt> lub <tt>non-free</tt>)
1013 oraz pochodzenie i etykietę Debian. Pochodzenie (o=) definiuje kto stworzył
1014 plik Release, a etykieta (l=) - nazwę dystrybucji, na przykład Debian dla
1015 Debiana, Progeny dla Progeny. Oto przykładowy plik Release:
1016
1017 <p>
1018 <example>
1019 $ cat /var/lib/apt/lists/ftp.debian.org.br_debian_dists_potato_main_binary-i386_Release
1020 Archive: stable
1021 Version: 2.2r3
1022 Component: main
1023 Origin: Debian
1024 Label: Debian
1025 Architecture: i386
1026 </example>
1027 </sect>
1028 </chapt>
1029
1030 <chapt id="helpers">Bardzo użyteczni pomocnicy
1031 <sect id="equivs">Jak zainstalować lokalnie skompilowane pakiety: pakiet equivs
1032 <p>
1033 Czasami użytkownicy Debiana chcą używać specyficznej wersji jakiegoś
1034 programu, który nie posiada pakietu <tt>.deb</tt> i jest dostępny tylko
1035 w postaci kodu źródłowego. Instalacja takich programów może jednak
1036 spowodować problemy w działaniu systemu pakietów. Wyobraźmy sobie na
1037 przykład, że chcemy skompilować nową wersję naszego serwera pocztowego.
1038 Wszystko poszło świetnie, tylko że zapomnieliśmy o małym szczególe:
1039 w Debianie wiele pakietów zależy od agenta pocztowego MTA (ang. Mail
1040 Transport Agent), a system pakietów niestety nic nie wie o programie,
1041 który sami skompilowaliśmy ze źródeł i zainstalowaliśmy!
1042 <p>
1043 W takich właśnie przypadkach z pomocą przychodzi nam pakiet
1044 <package>equivs</package>. Aby móc z niego skorzystać, należy zainstalować
1045 pakiet o takiej samej nazwie. Cóż on takiego robi? Tworzy pusty pakiet,
1046 który potrafi w pełni spełnić zależności i sprawia, że system pakietów jest
1047 przekonany o tym, iż zależności są spełnione.
1048 <p>
1049 Zanim pokażemy jak używać tego pakietu, należy jeszcze przypomnieć,
1050 że istnieją bezpieczniejsze sposoby kompilacji programu, który posiada już
1051 pakiet Debiana i że nie należy używać pakietu <package>equivs</package> do
1052 zastępowania zależności, gdy nie wiemy jak to zrobić. Więcej informacji na
1053 ten temat można znaleźć w sekcji <ref id="sourcehandling">.
1054 <p>
1055 Kontynuujmy nasz przykład z agentem pocztowym MTA. Powiedzmy, że właśnie
1056 skompilowałeś i zainstalowałeś nową wersję serwera <prgn>postfix</prgn>,
1057 a teraz zamierzasz zainstalować pakiet <package>mutt</package>.
1058 Nagle okazuje się, że <package>mutt</package> chce zainstalować innego
1059 agenta MTA, a Ty już masz przecież swój.
1060 <p>
1061 Przejdź wtedy do jakiegoś katalogu (np. do <file>/tmp</file>) i wydaj
1062 komendę:
1063
1064 <p>
1065 <example>
1066 # equivs-control <var>nazwa</var>
1067 </example>
1068
1069 <p>
1070 gdzie <var>nazwa</var> to nazwa pliku kontrolnego, który chcesz stworzyć.
1071 Plik ten będzie miał następującą zawartość:
1072
1073 <p>
1074 <example>
1075 Section: misc
1076 Priority: optional
1077 Standards-Version: 3.0.1
1078
1079 Package: &lt;enter package name; defaults to equivs-dummy&gt;
1080 Version: &lt;enter version here; defaults to 1.0&gt;
1081 Maintainer: &lt;your name and email address; defaults to username&gt;
1082 Pre-Depends: &lt;packages&gt;
1083 Depends: &lt;packages&gt;
1084 Recommends: &lt;packages&gt;
1085 Suggests: &lt;package&gt;
1086 Provides: &lt;(virtual)package&gt;
1087 Architecture: all
1088 Copyright: &lt;copyright file; defaults to GPL2&gt;
1089 Changelog: &lt;changelog file; defaults to a generic changelog&gt;
1090 Readme: &lt;README.Debian file; defaults to a generic one&gt;
1091 Extra-Files: &lt;additional files for the doc directory, comma separated&gt;
1092 Description: &lt;short description; defaults to some wise words&gt;
1093 long description and info
1094 .
1095 second paragraph
1096 </example>
1097
1098 <p>
1099 Teraz musimy tak go zmodyfikować, żeby robił to, co chcemy. Spójrzmy na
1100 format pól i ich opisy. Nie ma oczywiście potrzeby objaśniać każdego z nich.
1101 Zróbmy tylko to, co jest niezbędne:
1102
1103 <p>
1104 <example>
1105 Section: misc
1106 Priority: optional
1107 Standards-Version: 3.0.1
1108
1109 Package: mta-local
1110 Provides: mail-transport-agent
1111 </example>
1112
1113 <p>
1114 Tak, to naprawdę wszystko, czego nam potrzeba! Pakiet <package>mutt</package>
1115 zależy od pakietu wirtualnego <tt>mail-transport-agent</tt>,
1116 którego dostarczają wszystkie agenty MTA. Mogłem też nazwać pakiet po prostu
1117 <tt>mail-transport-agent</tt>, ale wolę używać schematu pakietów wirtualnych,
1118 który wykorzystuje pole `Provides'.
1119 <p>
1120 Teraz tylko musimy zbudować pakiet:
1121
1122 <p>
1123 <example>
1124 # equivs-build <var>nazwa</var>
1125 dh_testdir
1126 touch build-stamp
1127 dh_testdir
1128 dh_testroot
1129 dh_clean -k
1130 # Add here commands to install the package into debian/tmp.
1131 touch install-stamp
1132 dh_testdir
1133 dh_testroot
1134 dh_installdocs
1135 dh_installchangelogs
1136 dh_compress
1137 dh_fixperms
1138 dh_installdeb
1139 dh_gencontrol
1140 dh_md5sums
1141 dh_builddeb
1142 dpkg-deb: building package `<var>nazwa</var>' in `../<var>nazwa</var>_1.0_all.deb'.
1143
1144 The package has been created.
1145 Attention, the package has been created in the current directory,
1146 </example>
1147
1148 <p>
1149 i zainstalować powstały pakiet <tt>.deb</tt>.
1150 <p>
1151 Jak widać, pakietu <package>equivs</package> można używać na różne sposoby.
1152 Za jego pomocą można nawet stworzyć pakiet <package>moje-ulubione</package>,
1153 który zależy od programów, które zwykle instalujesz. To jak go wykorzystasz
1154 zależy tylko od Twojej wyobraźni, ale bądź ostrożny!
1155 <p>
1156 Na koniec jeszcze jedna ważna uwaga: przykłady plików kontrolnych znajdują
1157 się w katalogu <file>/usr/share/doc/equivs/examples</file>. Przyjrzyj się im.
1158 </sect>
1159
1160 <sect id="localepurge">Usuwanie nieużywanych plików lokalizacyjnych: pakiet
1161 localpurge
1162 <p>
1163 Wielu użytkowników Debiana korzysta tylko z jednych plików lokalizacyjnych.
1164 Dla przykładu, brazylijscy użytkownicy Debiana przez cały czas korzystają
1165 z plików <tt>pt_BR</tt> i do niczego im nie są potrzebne pliki <tt>es</tt>.
1166 <p>
1167 Pakiet <package>localepurge</package> jest bardzo użytecznym narzędziem dla
1168 takich właśnie użytkowników. Pozwala on zaoszczędzić wiele miejsca na dysku,
1169 dzięki zachowaniu tylko tych plików lokalizacyjnych, których naprawdę
1170 używasz. Aby go zainstalować, po prostu wydaj komendę
1171 <tt>apt-get install localepurge</tt>.
1172 <p>
1173 Pakiet ten jest bardzo łatwy w konfiguracji, debconf przeprowadzi Cię przez
1174 ten proces krok po kroku. Bądź jednak bardzo ostrożny w czasie odpowiadania
1175 na zadawane Ci pytania, gdyż zła odpowiedź może usunąć wszystkie pliki
1176 lokalizacyjne, nawet te, których używasz! Jedynym sposobem na odzyskanie ich
1177 wtedy jest powtórna instalacja wszystkich pakietów, które dostarczają tych
1178 plików.
1179 </sect>
1180
1181 <sect id="helper-show-versions">Jak się dowiedzieć, które pakiety mogą być
1182 uaktualnione do nowszej wersji
1183 <p>
1184 Programem, który potrafi wskazać pakiety mogące być uaktualnione do nowszej
1185 wersji oraz dostarczyć wielu innych użytecznych informacji jest program
1186 <prgn>apt-show-versions</prgn>. Do wyświetlenia listy pakietów, które mogą
1187 być uaktualnione służy opcja <tt>-u</tt>:
1188
1189 <p>
1190 <example>
1191 $ apt-show-versions -u
1192 libeel0/unstable upgradeable from 1.0.2-5 to 1.0.2-7
1193 libeel-data/unstable upgradeable from 1.0.2-5 to 1.0.2-7
1194 </example>
1195 </sect>
1196
1197 <chapt id="search">Pobieranie informacji o pakietach
1198 <p>
1199 Jest wiele programów-nakładek dla systemu APT, które bardzo ułatwiają
1200 pobieranie listy pakietów dostępnych do instalacji i już zainstalowanych,
1201 pozwalają dowiedzieć się do jakiej sekcji należy pakiet, jaki jest jego
1202 priorytet, jaki ma opis, itd.
1203 <p>
1204 Ale... naszym celem jest nauczyć się posługiwania się czystym APT-em.
1205 Zatem w jaki sposób dowiedzieć się nazwy pakietu, który chcemy zainstalować?
1206 <p>
1207 Mamy wiele środków do tego zadania. Zacznijmy od programu <tt>apt-cache</tt>.
1208 Jest on używany przez system APT do zarządzania jego bazą danych.
1209 Przyjrzymy się krótko jego bardziej praktycznym zastosowaniom.
1210
1211 <sect id="cache">Odnajdywanie nazw pakietów
1212 <p>
1213 Dla przykładu przypuśćmy, że chcemy powspominać o starych, dobrych czasach
1214 Atari 2600. Najpierw chcemy użyć APT-a do instalacji emulatora Atari,
1215 a następnie do pobrania kilku gier dla niego. Możemy to zrobić następująco:
1216
1217 <p>
1218 <example>
1219 # apt-cache search atari
1220 atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
1221 circuslinux - The clowns are trying to pop balloons to score points!
1222 madbomber - A Kaboom! clone
1223 tcs - Character set translator.
1224 atari800 - Atari emulator for svgalib/X/curses
1225 stella - Atari 2600 Emulator for X windows
1226 xmess-x - X binaries for Multi-Emulator Super System
1227 </example>
1228
1229 <p>
1230 Znaleźliśmy kilka pakietów powiązanych z tym, czego szukamy, wraz z ich
1231 krótkimi opisami. Aby uzyskać więcej informacji na temat określonego
1232 pakietu, możesz wtedy użyć:
1233
1234 <p>
1235 <example>
1236 # apt-cache show stella
1237 Package: stella
1238 Priority: extra
1239 Section: non-free/otherosfs
1240 Installed-Size: 830
1241 Maintainer: Tom Lear &lt;tom@trap.mtview.ca.us&gt;
1242 Architecture: i386
1243 Version: 1.1-2
1244 Depends: libc6 (&gt;= 2.1), libstdc++2.10, xlib6g (&gt;= 3.3.5-1)
1245 Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
1246 Size: 483430
1247 MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
1248 Description: Atari 2600 Emulator for X windows
1249 Stella is a portable emulator of the old Atari 2600 video-game console
1250 written in C++. You can play most Atari 2600 games with it. The latest
1251 news, code and binaries for Stella can be found at:
1252 http://www4.ncsu.edu/~bwmott/2600
1253 </example>
1254
1255 <p>
1256 Otrzymaliśmy w wyniku wiele szczegółów na temat pakietu, który chcemy
1257 (lub który nie chcemy) zainstalować, razem z jego pełnym opisem.
1258 Jeśli pakiet jest już zainstalowany w systemie i jest tam jego nowsza
1259 wersja, to zobaczysz informacje na temat obu wersji. Na przykład:
1260
1261 <p>
1262 <example>
1263 # apt-cache show lilo
1264 Package: lilo
1265 Priority: important
1266 Section: base
1267 Installed-Size: 271
1268 Maintainer: Russell Coker &lt;russell@coker.com.au&gt;
1269 Architecture: i386
1270 Version: 1:21.7-3
1271 Depends: libc6 (&gt;= 2.2.1-2), debconf (&gt;=0.2.26), logrotate
1272 Suggests: lilo-doc
1273 Conflicts: manpages (&lt;&lt;1.29-3)
1274 Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb
1275 Size: 143052
1276 MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e
1277 Description: LInux LOader - The Classic OS loader can load Linux and others
1278 This Package contains lilo (the installer) and boot-record-images to
1279 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
1280 .
1281 You can use Lilo to manage your Master Boot Record (with a simple text screen)
1282 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
1283
1284 Package: lilo
1285 Status: install ok installed
1286 Priority: important
1287 Section: base
1288 Installed-Size: 190
1289 Maintainer: Vincent Renardias &lt;vincent@debian.org&gt;
1290 Version: 1:21.4.3-2
1291 Depends: libc6 (&gt;= 2.1.2)
1292 Recommends: mbr
1293 Suggests: lilo-doc
1294 Description: LInux LOader - The Classic OS loader can load Linux and others
1295 This Package contains lilo (the installer) and boot-record-images to
1296 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
1297 .
1298 You can use Lilo to manage your Master Boot Record (with a simple text screen)
1299 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
1300 </example>
1301
1302 <p>
1303 Zauważ, że pierwszy z pakietów na liście jest pakietem dostępnym, a drugi już
1304 zainstalowanym. Aby otrzymać więcej ogólnych informacji na temat pakietu,
1305 możesz użyć:
1306
1307 <p>
1308 <example>
1309 # apt-cache showpkg penguin-command
1310 Package: penguin-command
1311 Versions:
1312 1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)
1313
1314 Reverse Depends:
1315 Dependencies:
1316 1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3)
1317 Provides:
1318 1.4.5-1 -
1319 Reverse Provides:
1320 </example>
1321
1322 <p>
1323 I aby dowiedzieć się od jakich pakietów on zależy:
1324
1325 <p>
1326 <example>
1327 # apt-cache depends penguin-command
1328 penguin-command
1329 Depends: libc6
1330 Depends: libpng2
1331 Depends: libsdl-mixer1.1
1332 Depends: libsdl1.1
1333 Depends: zlib1g
1334 </example>
1335
1336 <p>
1337 Podsumowując, mamy wiele sposobów, których możemy użyć, aby dowiedzieć się
1338 nazwy pakietu, który chcemy zainstalować.
1339 </sect>
1340
1341 <sect id="dpkg-search">Używanie programu dpkg do dowiadywania się nazwy
1342 pakietów
1343 <p>
1344 Jednym ze sposobów dowiedzenia się nazwy pakietu jest poznanie nazwy ważnego
1345 pliku umieszczonego wewnątrz pakietu. Dla przykładu, aby znaleźć pakiet,
1346 który jest dostarczany ze szczególnym plikiem nagłówkowym <tt>".h"</tt>
1347 potrzebnym do jego kompilacji możesz uruchomić:
1348
1349 <p>
1350 <example>
1351 # dpkg -S stdio.h
1352 libc6-dev: /usr/include/stdio.h
1353 libc6-dev: /usr/include/bits/stdio.h
1354 perl: /usr/lib/perl/5.6.0/CORE/nostdio.h
1355 </example>
1356
1357 <p>
1358 lub:
1359
1360 <p>
1361 <example>
1362 # dpkg -S /usr/include/stdio.h
1363 libc6-dev: /usr/include/stdio.h
1364 </example>
1365
1366 <p>
1367 Aby dowiedzieć się nazwy użytecznych pakietów zainstalowanych w Twoim
1368 systemie, na przykład, gdy zamierzasz doprowadzić do porządku Twój twardy
1369 dysk, możesz użyć:
1370
1371 <p>
1372 <example>
1373 # dpkg -l | grep mozilla
1374 ii mozilla-browse 0.9.6-7 Mozilla Web Browser
1375 </example>
1376
1377 <p>
1378 Problemem związanym z tą komendą może być "obcięcie" przez nią nazwy pakietu.
1379 W powyższym przykładzie pełną nazwą pakietu jest <tt>mozilla-browser</tt>.
1380 Aby poradzić sobie z tym, możesz użyć zmiennej środowiskowej <tt>COLUMNS</tt>
1381 w następujący sposób:
1382
1383 <p>
1384 <example>
1385 [kov]@[couve] $ COLUMNS=132 dpkg -l | grep mozilla
1386 ii mozilla-browser 0.9.6-7 Mozilla Web Browser - core and browser
1387 </example>
1388
1389 <p>
1390 lub możesz użyć opisu pakietu lub jego części tak, jak pokazano poniżej:
1391
1392 <p>
1393 <example>
1394 # apt-cache search "Mozilla Web Browser"
1395 mozilla-browser - Mozilla Web Browser
1396 </example>
1397 </sect>
1398
1399 <sect id="auto-apt">Jak zainstalować pakiety "na żądanie"
1400 <p>
1401 Kompilujesz program, aż tu nagle bęc! Wystąpił błąd, ponieważ potrzebny jest
1402 plik nagłówkowy <tt>.h</tt>, którego nie masz. Program <prgn>auto-apt</prgn>
1403 może Cię uchronić od takich sytuacji. Pyta Cię on czy zainstalować pakiety,
1404 które są potrzebne, zatrzymując dany proces i kontynuując go, gdy pakiet jest
1405 instalowany.
1406 <p>
1407 Wszystko, co musisz zrobić, to uruchomić:
1408
1409 <p>
1410 <example>
1411 # auto-apt run komenda
1412 </example>
1413
1414 <p>
1415 Gdzie `komenda' jest komendą, której może potrzebować jakiś niedostępny plik.
1416 Na przykład:
1417
1418 <p>
1419 <example>
1420 # auto-apt run ./configure
1421 </example>
1422
1423 <p>
1424 Polecenie zapyta Cię czy zainstalować potrzebne pakiety i automatycznie
1425 wywoła program apt-get. Jeśli używasz X Window, graficzny interfejs zastąpi
1426 domyślny interfejs tekstowy.
1427 <p>
1428 Auto-apt używa baz danych, które muszą być uaktualniane, aby program działał
1429 skutecznie. Jest to osiągane poprzez wywoływanie poleceń <tt>auto-apt
1430 update</tt>, <tt>auto-apt updatedb</tt> i <tt>auto-apt update-local</tt>.
1431 </sect>
1432
1433 <sect id="apt-file">Jak sprawdzić, do którego pakietu należy plik
1434 <p>
1435 Jeśli chcesz zainstalować jakiś pakiet, ale nie wiesz jak się on nazywa i nawet
1436 wyszukiwanie za pomocą programu <prgn>apt-cache</prgn> nie przynosi rezultatu,
1437 ale znasz za to nazwę pliku tego programu lub innych plików należących do
1438 pakietu, to możesz się posłużyć programem <prgn>apt-file</prgn>, aby odszukać
1439 nazwę tego pakietu. W tym celu wydaj polecenie:
1440
1441 <p>
1442 <example>
1443 $ apt-file search <var>nazwa_pliku</var>
1444 </example>
1445
1446 <p>
1447 Działa ono jak komenda <tt>dpkg -S</tt>, z tą różnicą, że wyświetla również
1448 nazwy niezainstalowanych pakietów, które zawierają ten plik. Możesz go
1449 również użyć, aby dowiedzieć się, jakie pakiety zawierają brakujące w czasie
1450 kompilacji programu pliki nagłówkowe. Do tego celu bardziej jednak nadaje
1451 się program <prgn>auto-apt</prgn>, który został opisany w sekcji
1452 <ref id="auto-apt">.
1453 <p>
1454 Możesz także zobaczyć jakie pliki wchodzą w skład pakietu, wydając polecenie
1455
1456 <p>
1457 <example>
1458 $ apt-file list <var>nazwa_pakietu</var>
1459 </example>
1460
1461 <p>
1462 Program <prgn>apt-file</prgn>, podobnie jak <prgn>auto-apt</prgn>,
1463 przechowuje informacje o tym jakie pliki zawierają wszystkie pakiety w bazie
1464 danych, którą należy co jakiś czas uaktualniać. Robi się do za pomocą komendy
1465
1466 <p>
1467 <example>
1468 # apt-file update
1469 </example>
1470
1471 <p>
1472 Domyślnie oba programy używają tej samej bazy danych. Więcej informacji na
1473 jej temat znajdziesz w sekcji <ref id="auto-apt">.
1474
1475 </sect>
1476
1477 <sect id="apt-listchanges">Jak otrzymywać informacje o zmianach w pakietach
1478 <p>
1479 Każdy zainstalowany pakiet zapisuje w swoim katalogu
1480 (<tt>/usr/share/doc/nazwa_pakietu</tt>) plik o nazwie
1481 <tt>changelog.Debian.gz</tt>, który zawiera listę zmian dokonanych w pakiecie
1482 od jego ostatniej wersji. Możesz czytać te pliki używając na przykład
1483 polecenia <tt>zless</tt>, ale czasem nie jest wcale takie proste, zwłaszcza
1484 po uaktualnieniu całego systemu, szukać zmian dla każdego zaktualizowanego
1485 pakietu.
1486 <p>
1487 Istnieje sposób automatyzacji tego zadania przy pomocy narzędzia zwanego
1488 <prgn>apt-listchanges</prgn>. Aby móc z niego korzystać musisz oczywiście
1489 zainstalować pakiet <package>apt-listchanges</package>. Zostanie on
1490 skonfigurowany przez Debconfa w trakcie instalacji. Odpowiedz na pytania tak,
1491 jak chcesz.
1492 <p>
1493 Bardzo użyteczna jest opcja "Should apt-listchanges be automatically run by
1494 apt? (Czy apt-listchanges powinien być automatycznie uruchamiany przez
1495 APT-a?)", ponieważ pokazuje ona listę zmian w każdym pakiecie, który będzie
1496 instalowany przez APT-a w trakcie aktualizacji systemu i pozwala zapoznać się
1497 z nimi przed kontynuacją procesu aktualizacji. Również opcja "Should
1498 apt-listchanges prompt for confirmation after displaying changes? (Czy
1499 apt-listchanges powinien zachęcać do potwierdzenia po wyświetleniu zmian?)"
1500 jest użyteczna, gdyż pyta Cię czy chcesz kontynuować instalację po
1501 przeczytaniu listy zmian. Jeśli odpowiesz, że nie chcesz kontynuować,
1502 to apt-listchanges zwróci błąd i APT przerwie proces instalacji.
1503 <p>
1504 Po zainstalowaniu pakietu apt-listchanges, gdy tylko pakiety będą ściągane
1505 (lub pobierane z płyty CD-ROM albo zamontowanego dysku) przez APT-a,
1506 to pokaże on listę zmian dokonanych w tych pakietach jeszcze przed ich
1507 instalacją.
1508 </sect>
1509 </chapt>
1510
1511 <chapt id="sourcehandling">Praca z pakietami źródłowymi
1512 <sect id="source">Pobieranie pakietów źródłowych
1513 <p>
1514 W świecie wolnego oprogramowania jest rzeczą powszechną studiować kod
1515 źródłowy programów, a nawet dokonywać w nim zmian, aby wyeliminować błędy.
1516 Aby to zrobić, musisz pobrać źródło programu. APT dostarcza Ci łatwego
1517 sposobu uzyskiwania kodów źródłowych wielu programów zawartych w dystrybucji,
1518 włączając w to wszystkie pliki potrzebne do stworzenia pakietu <tt>.deb</tt>
1519 dla danego programu.
1520 <p>
1521 Innym powszechnym zastosowaniem źródeł Debiana jest przystosowanie nowszej
1522 wersji programu, pochodzącej np. z niestabilnej dystrybucji, aby użyć go
1523 w wersji stabilnej. Zamiast pakietu stabilnego można skompilować źródła
1524 i wygenerować pakiety <tt>.deb</tt> z zależnościami przystosowanymi do
1525 pakietów dostępnych w tej dystrybucji.
1526 <p>
1527 Aby to osiągnąć, wpis ze słowem <tt>deb-src</tt> na początku linii w Twoim
1528 pliku <tt>/etc/apt/sources.list</tt> powinien wskazywać na archiwum
1529 niestabilne. Oczywiście powinien on być także włączony (tzn. odkomentowany).
1530 Zobacz sekcję <ref id="sources.list">, aby dowiedzieć się więcej szczegółów.
1531 <p>
1532 Aby pobrać pakiet źródłowy, użyjemy następującej komendy:
1533
1534 <p>
1535 <example>
1536 $ apt-get source pakiet
1537 </example>
1538
1539 <p>
1540 Komenda ta pobierze trzy pliki: <tt>.orig.tar.gz</tt>, <tt>.dsc</tt>
1541 i <tt>.diff.gz</tt>. W przypadku pakietów tworzonych specjalnie dla Debiana
1542 nie będzie pobierany ostatni plik, a pierwszy zwykle nie ma w nazwie słowa
1543 <tt>"orig"</tt>.
1544 <p>
1545 Plik <tt>.dsc</tt> jest używany przez program dpkg-source do rozpakowania
1546 źródeł pakietu w katalogu <var>pakiet-wersja</var>. Wewnątrz każdego
1547 pobranego pakietu istnieje katalog <tt>debian/</tt>, zawierający pliki
1548 niezbędne do stworzenia pakietu <tt>.deb</tt>.
1549 <p>
1550 Aby automatycznie zbudować pakiet w czasie pobierania jego źródeł, po prostu
1551 dodaj do komendy opcję <tt>-b</tt> tak, jak pokazano to poniżej:
1552
1553 <p>
1554 <example>
1555 $ apt-get -b source pakiet
1556 </example>
1557
1558 <p>
1559 Jeśli nie zdecydowałeś się tworzyć pakietu <tt>.deb</tt> w czasie pobierania
1560 jego źródeł, możesz zrobić to później za pomocą polecenia:
1561
1562 <p>
1563 <example>
1564 $ dpkg-buildpackage -rfakeroot -uc -b
1565 </example>
1566
1567 <p>
1568 uruchomionego wewnątrz katalogu, który został utworzony dla pakietu po jego
1569 pobraniu. Aby zainstalować pakiet zbudowany przy pomocy powyższej komendy,
1570 musisz użyć bezpośrednio programu dpkg:
1571
1572 <p>
1573 <example>
1574 # dpkg -i <var>file.deb</var>
1575 </example>
1576
1577 <p>
1578 Istnieje różnica pomiędzy metodą <tt>source</tt> programu
1579 <prgn>apt-get</prgn>, a jego innymi metodami. Metoda <tt>source</tt> może
1580 być używana przez zwykłych użytkowników, nie posiadających uprawnień roota.
1581 Pliki są pobierane do katalogu z którego wywołano komendę <tt>apt-get source
1582 pakiet</tt>.
1583 </sect>
1584
1585 <sect id="build-dep">Pakiety potrzebne do kompilowania pakietów źródłowych
1586 <p>
1587 Zwykle specyficzne pliki nagłówkowe i biblioteki współdzielone muszą być
1588 obecne, aby można było skompilować pakiet źródłowy. Wszystkie pakiety
1589 źródłowe mają pole w plikach kontrolujących, które nazywa się
1590 'Build-Depends:'. Pole te wskazuje, które dodatkowe pakiety są niezbędne,
1591 aby można było zbudować pakiet z jego źródeł.
1592 <p>
1593 APT jest wyposażony w łatwy sposób pobierania tych pakietów. Po prostu uruchom
1594 komendę <tt>apt-get build-dep pakiet</tt>, gdzie `pakiet' jest nazwą pakietu,
1595 który zamierzasz zbudować. Na przykład:
1596
1597 <p>
1598 <example>
1599 # apt-get build-dep gmc
1600 Reading Package Lists... Done
1601 Building Dependency Tree... Done
1602 The following NEW packages will be installed:
1603 comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
1604 libgpmg1-dev
1605 0 packages upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
1606 Need to get 1069kB of archives. After unpacking 3514kB will be used.
1607 Do you want to continue? [Y/n]
1608 </example>
1609
1610 <p>
1611 Pakiety, które zostaną zainstalowane są pakietami potrzebnymi do prawidłowego
1612 zbudowania pakietu <package>gmc</package>. Bardzo ważną rzeczą do zauważenia
1613 jest fakt, że komenda nie szuka pakietu ze źródłami programu, który ma być
1614 skompilowany. Dlatego musisz wcześniej uruchomić polecenie <tt>apt-get
1615 source</tt>, aby osobno je pobrać.
1616
1617 <p>
1618 Jeśli chcesz sprawdzić, które pakiety są potrzebne do zbudowania powyższej
1619 paczki, możesz użyć wariantu polecenia <tt>apt-cache show</tt> (zobacz sekcję
1620 <ref id="search">), pokazującego oprócz innych informacji także linię
1621 <tt>Build-Depends</tt> z listą pakietów niezbędnych do zbudowania pakietu.
1622
1623 <p>
1624 <example>
1625 # apt-cache showsrc <var>package</var>
1626 </example>
1627
1628 </sect>
1629 </chapt>
1630
1631 <chapt id="erros">Jak radzić sobie z błędami
1632 <sect id="erros-comuns">Najczęstsze błędy
1633 <p>
1634 Błędy zawsze będą się zdarzały, wiele z nich jest spowodowana przez
1635 użytkowników, którzy nie zachowują uwagi w czasie pracy z APT-em.
1636 Poniżej zamieściłem najczęściej zgłaszane błędy oraz informacje jak sobie
1637 z nimi radzić.
1638 <p>
1639 Jeśli próbujesz uruchomić <tt>apt-get install package</tt> i zobaczysz
1640 komunikat jak poniżej:
1641
1642 <p>
1643 <example>
1644 Reading Package Lists... Done
1645 Building Dependency Tree... Done
1646 W: Couldn't stat source package list 'http://people.debian.org unstable/ Packages' (/var/state/apt/lists/people.debian.org_%7ekov_debian_unstable_Packages) - stat (2 Arquivo ou diretório năo encontrado)
1647 W: You may want to run apt-get update to correct these missing files
1648 E: Couldn't find package penguineyes
1649 </example>
1650
1651 <p>
1652 to znaczy, że zapomniałeś uruchomić <tt>apt-get update</tt> po ostatnich
1653 zmianach, których dokonałeś w pliku <tt>/etc/apt/sources.list</tt>.
1654 <p>
1655 Jeśli błąd wygląda następująco:
1656
1657 <p>
1658 <example>
1659 E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)
1660 E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
1661 </example>
1662
1663 <p>
1664 gdy próbujesz użyć którejś metody polecenia <prgn>apt-get</prgn> z wyjątkiem
1665 metody <tt>source</tt>, to znaczy, że próbujesz ją uruchomić jako zwykły
1666 użytkownik i że nie masz niezbędnych uprawnień administratora systemu.
1667 <p>
1668 Ten błąd jest podobny do tego powyżej i ma miejsce, gdy uruchamiasz w tym
1669 samym czasie dwie kopie programu <prgn>apt-get</prgn> lub gdy próbujesz
1670 uruchomić <prgn>apt-get</prgn>, gdy aktywny jest proces programu
1671 <prgn>dpkg</prgn>. Jedyną metodą, która może być równocześnie użyta z inną
1672 jest metoda <tt>source</tt>.
1673 <p>
1674 Jeśli instalacja zostanie przerwana w trakcie trwania i nie jest już możliwa
1675 ani instalacja, ani usunięcie pakietów, spróbuj wtedy użyć tych dwóch komend:
1676
1677 <p>
1678 <example>
1679 # apt-get -f install
1680 # dpkg --configure -a
1681 </example>
1682
1683 <p>
1684 I spróbuj jeszcze raz. Może być niezbędne uruchomienie drugiej z komend
1685 więcej niż jeden raz. To jest ważna uwaga dla tych, którzy używają wersji
1686 `niestabilnej'.
1687
1688 <p>
1689 Jeśli wynikiem działania polecenia <tt>apt-get update</tt> jest
1690 błąd "E: Dynamic MMap ran out of room", dodaj do swojego pliku
1691 <file>/etc/apt/apt.conf</file> poniższą linię:
1692
1693 <p>
1694 <example>
1695 APT::Cache-Limit 10000000;
1696 </example>
1697
1698 </sect>
1699
1700 <sect id="help">Gdzie mogę znaleźć pomoc
1701 <p>
1702 Jeśli popadłeś już w zwątpienie, zajrzyj do obszernej dokumentacji na temat
1703 systemu pakietów Debiana. Opcja <tt>--help</tt> programów i ich podręczniki
1704 mogą być ogromnie pomocne dla Ciebie. Wiele informacji można też znaleźć
1705 w dokumentacji zawartej w katalogu <tt>/usr/share/doc</tt>, np. w katalogu
1706 <tt>/usr/share/doc/apt</tt>.
1707 <p>
1708 Gdy nawet ta dokumentacja nie zdoła Ci pomóc, spróbuj poszukać odpowiedzi
1709 na listach dyskusyjnych Debiana. Więcej informacji na temat poszczególnych
1710 list użytkowników można znaleźć na stronie Debian:
1711 <url id="http://www.debian.org" name="http://www.debian.org">.
1712 <p>
1713 Pamiętaj, że listy te i zasoby powinny być używane tylko przez użytkowników
1714 Debiana; użytkownicy innych systemów znajdą lepsze wsparcie w zasobach ich
1715 własnej dystrybucji.
1716 </sect>
1717 </chapt>
1718
1719 <chapt id="distros">Które dystrybucje wspierają APT-a?
1720 <p>
1721 Poniżej zamieszczono nazwy dystrybucji, które używają APT-a:
1722 <p>
1723 Debian GNU/Linux (<url id="http://www.debian.org"
1724 name="http://www.debian.org">) - to dla tej dystrybucji został stworzony APT
1725 <p>
1726 Conectiva (<url id="http://www.conectiva.com.br"
1727 name="http://www.conectiva.com.br">) - to była pierwsza dystrybucja,
1728 która zaadoptowała APT-a do pracy z pakietami .rpm
1729 <p>
1730 Libranet (<url id="http://www.libranet.com" name="http://www.libranet.com">)
1731 <p>
1732 Mandrake (<url id="http://www.mandrake.com" name="http://www.mandrake.com">)
1733 <p>
1734 PLD (<url id="http://www.pld.org.pl" name="http://www.pld.org.pl">)
1735 <p>
1736 Vine (<url id="http://www.vinelinux.org" name="http://www.vinelinux.org">)
1737 <p>
1738 APT4RPM (<url id="http://apt4rpm.sf.net" name="http://apt4rpm.sf.net">)
1739 <p>
1740 Alt Linux (<url id="http://www.altlinux.ru/" name="http://www.altlinux.ru/">)
1741 <p>
1742 Red Hat (<url id="http://www.redhat.com/" name="http://www.redhat.com/">)
1743 <p>
1744 Sun Solaris (<url id="http://www.sun.com/" name="http://www.sun.com/">)
1745 <p>
1746 SuSE (<url id="http://www.suse.de/" name="http://www.suse.de/">)
1747 <p>
1748 Yellow Dog Linux (<url id="http://www.yellowdoglinux.com/"
1749 name="http://www.yellowdoglinux.com/">)
1750 </chapt>
1751
1752 <chapt id="agradecimentos">Podziękowania
1753 <p>
1754 Wielkie podziękowania składam moim wspaniałym przyjaciołom z projektu
1755 Debian-BR i samego projektu Debian, tym którzy są stałą pomocą dla mnie,
1756 zawsze dają mi siłę do kontynuowania pracy dla ludzkiego pożytku i pomagają
1757 mi w moim celu jakim jest ratowanie świata. :)
1758 <p>
1759 Chciałbym także podziękować CIPSGA za olbrzymią pomoc udzieloną naszemu
1760 projektowi i wszystkim wolnym projektom, które zrodziły się z wielkich idei.
1761 <p>
1762 Specjalne podziękowania należą się następującym osobom:
1763 <p>
1764 Yooseong Yang &lt;yooseong@debian.org&gt;
1765 <p>
1766 Michael Bramer &lt;grisu@debian.org&gt;
1767 <p>
1768 Bryan Stillwell &lt;bryan@bokeoa.com&gt;
1769 <p>
1770 Pawel Tecza &lt;ptecza@debianusers.pl&gt;
1771 <p>
1772 Hugo Mora &lt;h.mora@melix.com.mx&gt;
1773 <p>
1774 Luca Monducci &lt;luca.mo@tiscali.it&gt;
1775 <p>
1776 Tomohiro KUBOTA &lt;kubota@debian.org&gt;
1777 <p>
1778 Pablo Lorenzzoni &lt;spectra@debian.org&gt;
1779 <p>
1780 Steve Langasek &lt;vorlon@netexpress.net&gt;
1781 <p>
1782 Arnaldo Carvalho de Melo &lt;acme@conectiva.com.br&gt;
1783 <p>
1784 Erik Rossen &lt;rossen@freesurf.ch&gt;
1785 <p>
1786 Ross Boylan &lt;RossBoylan@stanfordalumni.org&gt;
1787 <p>
1788 Matt Kraai &lt;kraai@debian.org&gt;
1789 <p>
1790 Aaron M. Ucko &lt;ucko@debian.org&gt;
1791 <p>
1792 Jon Aslund &lt;d98-jas@nada.kth.se&gt;
1793 </chapt>
1794
1795 <chapt id="novas">Nowe wersje tego podręcznika
1796 <p>
1797 Ten podręcznik został stworzony w ramach projektu
1798 <url id="http://www.debian-br.org" name="Debian-BR"> z zadaniem
1799 niesienia pomocy w codziennym używaniu Debiana.
1800 <p>
1801 Nowe wersje tego dokumentu będą dostępne na stronie Projektu Dokumentacji
1802 Debiana (Debian Documentation Project) pod adresem
1803 <url id="http://www.debian.org/doc/ddp" name="http://www.debian.org/doc/ddp">.
1804 <p>
1805 Komentarze i krytyczne uwagi mogą być wysyłane bezpośrednio do mnie na adres
1806 <email>kov@debian.org</email>.
1807 </chapt>
1808
1809 </book>
1810
1811 </debiandoc>

  ViewVC Help
Powered by ViewVC 1.1.5