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

Contents of /manuals/trunk/apt-howto/apt-howto.uk.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, 5 months ago) by osamu
File MIME type: text/x-sgml
File size: 91027 byte(s)
Mark Obsolete Documentation as such
1 <!doctype debiandoc system>
2 <!-- Main Ukrainian translation version: 20060606 -->
3 <!-- Lastlog: Improved by Taras Boychuk. Fixed some typos.-->
4
5 <debiandoc>
6
7 <book>
8
9 <title>APT HOWTO (Obsolete Documentation)</title>
10
11 <author>
12 <name>Gustavo Noronha Silva</name> <email>kov@debian.org</email>
13 </author>
14 <author>
15 <name>український переклад: Borys Yanovych</name> <email>borman@univ.kiev.ua</email>
16 </author>
17
18 <version>1.8.11 - серпень 2005</version>
19
20 <abstract>
21 Цей документ створено, що допомогти користувачу краще зрозуміти
22 роботу інструменту керування пакунками Debian, APT. Його мета&nbsp;—
23 полегшити життя новим користувачам Debian та допомогти тим,
24 хто бажає поглибити свої знання у адмініструванні цієї
25 системи. Документ було створено для проекту Debian з метою
26 поліпшення підтримки цього дистрибутиву.
27 </abstract>
28
29 <copyright>
30 <copyrightsummary>
31 Copyright &copy; 2001, 2002, 2003, 2004 Gustavo Noronha Silva
32 </copyrightsummary>
33 <p>
34 This manual is free software; you may redistribute it and/or modify it
35 under the terms of the GNU General Public License as published by the
36 Free Software Foundation; either version 2, or (at your option) any
37 later version.
38 </p>
39
40 <p>
41 This is distributed in the hope that it will be useful, but without
42 any warranty; without even the implied warranty of merchantability or
43 fitness for a particular purpose. See the GNU General Public License
44 for more details.
45 </p>
46
47 <p>
48 A copy of the GNU General Public License is available as
49 /usr/share/common-licenses/GPL in the Debian GNU/Linux distribution or
50 on the World Wide Web at the GNU General Public Licence. You can also
51 obtain it by writing to the Free Software Foundation, Inc., 59 Temple
52 Place - Suite 330, Boston, MA 02111-1307, USA.
53 </p>
54 </copyright>
55
56 <toc>
57
58 <chapt>Вступ
59 <p>
60 Спочатку був .tar.gz. Користувачі повинні були компілювати кожну програму,
61 котру вони хотіли використовувати на власних системах GNU/Linux. Коли створювався
62 Debian, виникла потреба у включенні до системи інструменту керування
63 пакунками, встановленими на машині. Його назвали <prgn>dpkg</prgn>.
64 Цей знаменитий „пакунок“ першим з'явився в GNU/Linux ще до того, як Red Hat
65 вирішила створити свою власну систему rpm.
66 <p>
67 Досить швидко нова дилема постала в думках розробників GNU/Linux. Їм був потрібен
68 швидкий, практичний та ефективний шлях для встановлення пакунків, з автоматичною
69 обробкою залежностей та збереженням конфігураційних файлів під час оновлення.
70 Знову ж таки, Debian виявився лідером та породив систему APT, Advanced Packaging Tool,
71 котра в подальшому була портована фірмою Conectiva для використання з rpm та
72 пристосована також до деяких інших дистрибутивів.
73 <p>
74 В цьому підручнику не описується apt-rpm (портування Conectiva відоме саме під такою
75 назвою), але „латки“ до цього документу з цього приводу завжди радо вітаються.
76 <p>
77 Цей підручник базується на випуску Debian <tt>Sarge</tt>.
78 </chapt>
79
80 <chapt id="basico">Базові налаштування
81
82 <sect id="sources.list">Файл /etc/apt/sources.list
83 <p>
84 Щоб забезпечити виконання однієї зі своїх задач, APT використовує список джерел,
85 з котрих пакунки можуть бути завантажені. Це&nbsp;— файл <tt>/etc/apt/sources.list</tt>.
86 <p>
87 Зазвичай, записи в цьому файлі мають такий вигляд:
88
89 <p>
90 <example>
91 deb http://host/debian збірка розділ1 розділ2 розділ3
92 deb-src http://host/debian збірка розділ1 розділ2 розділ3
93 </example>
94
95 <p>Звісно, наведені вище рядки є лише прикладом і не повинні використовуватись
96 насправді. Перше слово кожного рядка, <tt>deb</tt> чи <tt>deb-src</tt>, вказує тип
97 архіву: це або двійкові пакунки (<tt>deb</tt>), наперед-скомпільовані,
98 які ми, як правило, і використовуємо, або джерельні пакунки (<tt>deb-src</tt>), котрі
99 містять оригінали джерельних кодів програм і, додатково, керуючий файл Debian
100 (<tt>.dsc</tt>) та <tt>diff.gz</tt>-архів з необхідними для „дебіанізації“
101 програми змінами.
102 <p>
103 Зазвичай, в стандартному файлі sources.list можна знайти такі рядки:
104 <p>
105 <example>
106 # See sources.list(5) for more information, especially
107 # Remember that you can only use http, ftp or file URIs
108 # CDROMs are managed through the apt-cdrom tool.
109 deb http://http.us.debian.org/debian stable main contrib non-free
110 deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
111 deb http://security.debian.org stable/updates main contrib non-free
112
113 # Uncomment if you want the apt-get source function to work
114 #deb-src http://http.us.debian.org/debian stable main contrib non-free
115 #deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
116 </example>
117
118 <p>
119 Ці рядки потрібні для базового встановлення Debian. Перший рядок <tt>deb</tt>
120 вказує на офіційний архів пакунків, другий&nbsp;— на не-США архів, третій&nbsp;—
121 на архів Debian, що призначений для оновлень безпеки.
122 <p>
123 Два останні рядки закоментовано (починаються з символу '#'), тому apt-get
124 їх проігнорує. Ці <tt>deb-src</tt> рядки вказують на джерельні пакунки
125 Debian. Якщо ви часто завантажуєте джерельні коди програм, з метою
126 тестування або для рекомпіляції, просто розкоментуйте їх.
127 <p>
128 В файлі <tt>/etc/apt/sources.list</tt> можуть міститись декілька типів рядків.
129 Наскільки мені відомо, APT вміє працювати з такими типами архівів як <tt>http</tt>,
130 <tt>ftp</tt>, <tt>file</tt> (локальні файли; наприклад, тека з примонтованою
131 файловою системою ISO9660) та <tt>ssh</tt>.
132 <p>
133 Не забудьте виконати <tt>apt-get update</tt> після внесення змін
134 до файлу <tt>/etc/apt/sources.list</tt>. Це робиться для того,
135 щоб змусити APT оновити списки пакунків з вказаних вами джерел.
136 </sect>
137
138 <sect id="dpkg-scanpackages">Як використовувати APT локально
139 <p>
140 Інколи може виникнути ситуація, коли ви маєте купу пакунків .deb і
141 хотіли б використати APT для їх встановлення, щоб залежності оброблялись
142 автоматично.
143 <p>
144 Для цього вам потрібно створити теку та помістити в неї .deb-файли,
145 які ви хочете проіндексувати. Наприклад:
146 <p>
147 <example>
148 # mkdir /root/debs
149 </example>
150 <p>
151 Для вашого сховища ви можете напряму змінити набір значень,
152 вказаних в файлі control кожного з пакунків, використовуючи файл
153 <tt>override</tt>. Всередині цього файлу ви, якщо хочете, можете
154 визначити деякі опції, котрі перекриють відповідні значення
155 з файлів пакунків. Це виглядає приблизно так:
156 <p>
157 <example>
158 package priority section
159 </example>
160 <p>
161 package&nbsp;— це назва пакунка, priority може набувати таких значень
162 як low, medium чи high, а section&nbsp;— це назва розділу, в якому
163 знаходиться відповідний пакунок. До назви файлу не ставиться жодних
164 вимог, ви будете вказувати її пізніше в якості аргументу до
165 <prgn>dpkg-scanpackages</prgn>. Якщо ви не хочете створювати
166 файл <tt>override</tt>, тоді при запуску <prgn>dpkg-scanpackages</prgn>
167 просто використовуйте <file>/dev/null</file>.
168 <p>
169 Далі, перебуваючи в теці /root, виконайте:
170 <p>
171 <example>
172 # dpkg-scanpackages debs <var>file</var> | gzip &gt; debs/Packages.gz
173 </example>
174 <p>
175 У наведеному рядку слово <var>file</var>&nbsp;— це файл <tt>override</tt>.
176 Команда генерує файл <file>Packages.gz</file>, котрий містить різноманітну
177 інформацію про пакунки, яка буде використана APT. Нарешті, щоб почати
178 використання пакунків, додайте:
179 <p>
180 <example>
181 deb file:/root debs/
182 </example>
183 <p>
184 Після всього цього, просто використовуйте APT, як звичайно. Ви можете
185 створювати також і джерельні сховища. Для цього повторіть ті ж самі
186 кроки, але пам'ятайте, що вам потрібно у відповідній теці мати файли
187 <tt>.orig.tar.gz</tt>, <tt>.dsc</tt> та <tt>.diff.gz</tt> і замість
188 <tt>Packages.gz</tt> генерувати файл <tt>Sources.gz</tt>. Для цього
189 також використовується інша програма. Це&nbsp;— <prgn>dpkg-scansources</prgn>.
190 Командний рядок повинен виглядати приблизно так
191 <p>
192 <example>
193 # dpkg-scansources debs | gzip &gt; debs/Sources.gz
194 </example>
195 <p>
196 Зверніть увагу, що для <prgn>dpkg-scansources</prgn> не потрібен
197 файл <tt>override</tt>. Рядок для sources.list виглядає так:
198 <p>
199 <example>
200 deb-src file:/root debs/
201 </example>
202 </sect>
203
204 <sect id="netselect">Визначення найкращого джерела для використання в файлі sources.list: netselect, netselect-apt
205 <p>
206 Дуже часто, переважно від нових користувачів, можна почути питання:
207 „яке дзеркало Debian включати до <tt>sources.list</tt>?“. Існує багато
208 методів визначення такого дзеркала. Експерти, ймовірно, мають скрипт, що
209 вимірює та порівнює час відгуку від декількох джерел. Однак є програма,
210 що зробить це і для нас: <strong>netselect</strong>.
211 <p>
212 Як звичайно, щоб встановити netselect:
213 <p>
214 <example>
215 # apt-get install netselect
216 </example>
217 <p>
218 При запуску її без параметрів відображається довідка. З списком
219 дзеркал, розділених пробілами, вона поверне оцінку і один з вузлів.
220 При визначенні цієї оцінки береться до уваги приблизний час відгуку,
221 кількість „стрибків“ (вузлів, через які мережевий запит пройде
222 перед тим, як потрапити до заданої цілі) та обернено пропорційна
223 швидкість завантаження; отже, чим менше оцінка, тим краще. Програма
224 повертає назву дзеркала, що має найнижчу оцінку (повний список оцінок
225 можна побачити, додавши опцію -vv). Ознайомтесь з таким прикладом: <p>
226 <example>
227 # netselect ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br
228 365 ftp.debian.org.br
229 #
230 </example>
231 <p>
232 Це означає, що з дзеркал, вказаних в якості параметрів до netselect,
233 найкращим виявилось <tt>ftp.debian.org.br</tt> з оцінкою 365.
234 (Увага!! Оскільки команда виконувалась на моєму комп'ютері, а топографія
235 мережі дуже сильно відрізняється в залежності від точки входу, ця
236 цифра не обов'язково буде правильним значенням швидкості для інших машин).
237 <p>
238 Тепер просто помістіть найшвидше дзеркало, знайдене за допомогою
239 netselect, у файл <tt>/etc/apt/sources.list</tt> (див. <ref id="sources.list">)
240 та виконуйте наведені у відповідному розділі вказівки (див.
241 <ref id="apt-get">).
242 <p> <strong>Зверніть увагу:</strong> список дзеркал завжди можна знайти в
243 файлі <url id="http://www.debian.org/mirror/mirrors_full"
244 name="http://www.debian.org/mirror/mirrors_full">.
245 <p>
246 Починаючи з версії 0.3.ds1, джерельний пакунок netselect створює двійковий
247 пакунок <strong>netselect-apt</strong>, котрий виконує всі наведені вище дії
248 автоматично. Просто введіть гілку збірки в якості параметру (за замовчанням
249 stable) і програма згенерує файл <tt>sources.list</tt> з найкращими
250 загальними та не-США дзеркалами, після чого збереже його в
251 поточній теці. Наступний приклад генерує sources.list для стабільної
252 збірки:
253 <p>
254 <example>
255 # ls sources.list
256 ls: sources.list: File or directory not found
257 # netselect-apt stable
258 (...)
259 # ls -l sources.list
260 sources.list
261 #
262 </example>
263 <p>
264 <strong>Нагадуємо:</strong> файл <tt>sources.list</tt> генерується
265 в поточній теці і його потрібно перемістити до теки <tt>/etc/apt</tt>.
266 <p>
267 Далі виконуйте вказівки наведені у відповідному розділі (див.
268 <ref id="apt-get">).
269 </sect>
270
271 <sect id="cdrom">Додавання CD-ROM'у до файлу sources.list
272 <p>
273 У випадку, коли ви використовуєте переважно CD-ROM для встановлення пакунків
274 чи оновлення вашої системи за допомогою APT, ви можете додати його до
275 вашого <tt>sources.list</tt>. Для цього можна скористайтися програмою
276 <prgn>apt-cdrom</prgn> приблизно так:
277
278 <p>
279 <example>
280 # apt-cdrom add
281 </example>
282
283 <p>
284 попередньо помістивши компакт-диск Debian до приводу. Ця команда підмонтує
285 КД і, якщо це справжній компакт-диск Debian, оновить інформацію про
286 пакунки, переглянувши його вміст. Якщо ваш КД дещо незвичної конфігурації,
287 ви також можете використати такі опції:
288
289 <p>
290 <example>
291 -h - Довідка програми
292 -d directory - Точка монтування CD-ROM'у
293 -r - Змінити назву розпізнаного CD-ROM'у
294 -m - Не монтувати
295 -f - Швидкий режим, не перевіряти файли пакунків
296 -a - Режим ретельного пошуку
297 </example>
298
299 <p>
300 Наприклад:
301
302 <p>
303 <example>
304 # apt-cdrom -d /home/kov/mycdrom add
305 </example>
306
307 <p>
308 Ви також можете ідентифікувати CD-ROM, не додаючи його до вашого списку:
309
310 <p>
311 <example>
312 # apt-cdrom ident
313 </example>
314
315 <p>
316 Зауважте, що ця програма працює лише в тому випадку, коли ваш КД
317 зконфігуровано правильно і відповідний запис міститься в системному
318 файлі <tt>/etc/fstab</tt>.
319 </sect>
320
321 </chapt>
322
323 <chapt id="apt-get">Керування пакунками
324 <sect id="update">Оновлення списку наявних пакунків
325 <p>
326 Система керування пакунками використовує свою власну базу даних
327 для відслідковування вже встановлених, не встановлених та доступних
328 для встановлювання пакунків. Програма <prgn>apt-get</prgn>
329 використовує цю базу даних як джерело інформації про пакунки, вказані
330 користувачем в запиті на встановлення, та з'ясування,
331 які додаткові пакунки є необхідними, щоб вибраний пакунок
332 працював належним чином.
333 <p>
334 Для оновлення цієї бази ви можете скористатись командою <prgn>apt-get update</prgn>.
335 Ця команда переглядає списки пакунків в архівах, вказаних в
336 <tt>/etc/apt/sources.list</tt>; див. <ref id="sources.list">, щоб
337 дізнатись більше про цей файл.
338 <p>
339 Було б непогано запускати цю команду регулярно, щоб ви та ваша система
340 були проінформованими щодо можливих оновлень пакунків і, особливо, оновлень
341 їх безпеки.
342 </sect>
343
344 <sect id="install">Встановлення пакунків
345 <p>
346 Нарешті, те, чого всі так довго чекали! Коли ваш sources.list готовий і
347 список доступних пакунків оновлено, вам залишається лише запустити
348 <tt>apt-get</tt>, щоб встановити бажаний пакунок. Наприклад, ви можете
349 виконати:
350
351 <p>
352 <example>
353 # apt-get install xchat
354 </example>
355
356 <p>
357 APT спробує знайти в базі даних найсвіжішу версію цього пакунку та завантажити
358 його з відповідного архіву, визначеного в <tt>sources.list</tt>. У випадку,
359 коли цей пакунок залежить від іншого&nbsp;— як наведено нижче&nbsp;— APT перевірить
360 залежності та встановить всі потрібні пакунки. Наприклад:
361
362 <p>
363 <example>
364 # apt-get install nautilus
365 Reading Package Lists... Done
366 Building Dependency Tree... Done
367 The following extra packages will be installed:
368 bonobo libmedusa0 libnautilus0
369 The following NEW packages will be installed:
370 bonobo libmedusa0 libnautilus0 nautilus
371 0 packages upgraded, 4 newly installed, 0 to remove and 1 not upgraded.
372 Need to get 8329kB of archives. After unpacking 17.2MB will be used.
373 Do you want to continue? [Y/n]
374 </example>
375
376 <p>
377 Пакунок <package>nautilus</package> залежить від вказаних бібліотек спільного
378 користування, тому APT також завантажить їх з архіву. Якщо ви вкажете їх назви
379 в командному рядку при запуску <tt>apt-get</tt>, APT не буде запитувати,
380 чи хочете ви продовжувати, а автоматично прийме рішення, що ви бажаєте встановити
381 всі ті пакунки.
382 <p>
383 Це означає, що APT потребує підтвердження лише в тому випадку, коли потрібно
384 встановити пакунки, які не були згадані в командному рядку.
385 <p>
386 Наступні параметри apt-get можуть стати в нагоді:
387
388 <p>
389 <example>
390 -h Текст довідки.
391 -d Тільки завантажити&nbsp;— НЕ встановлювати і НЕ розпаковувати пакунки
392 -f Продовжувати, навіть якщо перевірка цілісності завершилась невдачею
393 -s Не виконувати реальних дій, імітувати їх виконання
394 -y Вважати Yes відповіддю на всі запитання, не виводити їх
395 -u Також показувати список оновлених пакунків
396 </example>
397
398 <p>
399 В одному рядку можна вказувати декілька пакунків для встановлення.
400 Завантажені з мережі файли поміщаються в теку
401 <tt>/var/cache/apt/archives</tt> для подальшого встановлення.
402 <p>
403 Також, в тому ж командному рядку ви можете вказати пакунки, які потрібно видалити.
404 Просто помістіть знак '-' одразу ж після назви обраного для видалення
405 пакунка, наприклад:
406
407 <p>
408 <example>
409 # apt-get install nautilus gnome-panel-
410 Reading Package Lists... Done
411 Building Dependency Tree... Done
412 The following extra packages will be installed:
413 bonobo libmedusa0 libnautilus0
414 The following packages will be REMOVED:
415 gnome-applets gnome-panel gnome-panel-data gnome-session
416 The following NEW packages will be installed:
417 bonobo libmedusa0 libnautilus0 nautilus
418 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
419 Need to get 8329kB of archives. After unpacking 2594kB will be used.
420 Do you want to continue? [Y/n]
421 </example>
422
423 <p>
424 Перегляньте <ref id="remove">, щоб детальніше ознайомитись з видаленням пакунків.
425 <p>
426 Якщо ви якимсь чином пошкодили встановлений пакунок чи просто хочете перевстановити
427 файли з пакунка більш нової доступної версії, можете скористатись параметром
428 <tt>--reinstall</tt>, ось так:
429
430 <p>
431 <example>
432 # apt-get --reinstall install gdm
433 Reading Package Lists... Done
434 Building Dependency Tree... Done
435 0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not upgraded.
436 Need to get 0B/182kB of archives. After unpacking 0B will be used.
437 Do you want to continue? [Y/n]
438 </example>
439 </sect>
440
441 <sect id="remove">Видалення пакунків
442 <p>
443 Якщо ви більше не бажаєте використовувати пакунок, ви можете видалити його
444 з вашої системи за допомогою APT. Для цього просто наберіть <tt>apt-get remove пакунок</tt>.
445 Наприклад:
446
447 <p>
448 <example>
449 # apt-get remove gnome-panel
450 Reading Package Lists... Done
451 Building Dependency Tree... Done
452 The following packages will be REMOVED:
453 gnome-applets gnome-panel gnome-panel-data gnome-session
454 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
455 Need to get 0B of archives. After unpacking 14.6MB will be freed.
456 Do you want to continue? [Y/n]
457 </example>
458
459 <p>
460 Як можна побачити в прикладі вище, APT також турбується про видалення
461 тих пакунків, які залежать від пакунка, вибраного для видалення. Видалити
462 пакунок, не видаляючи при цьому тих пакунків, які залежать від нього, за допомогою
463 APT неможливо.
464 <p>
465 Запуск <prgn>apt-get</prgn> так, як показано вище, видалить пакунки, однак
466 їх конфігураційні файли, якщо такі існують, залишаться в системі неушкодженими.
467 Для повного видалення пакунку виконайте:
468
469 <p>
470 <example>
471 # apt-get --purge remove gnome-panel
472 Reading Package Lists... Done
473 Building Dependency Tree... Done
474 The following packages will be REMOVED:
475 gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
476 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
477 Need to get 0B of archives. After unpacking 14.6MB will be freed.
478 Do you want to continue? [Y/n]
479 </example>
480
481 <p>
482 Зверніть увагу на символ '*' після назв пакунків. Це вказує на те, що
483 конфігураційні файли кожного з цих пакунків також будуть видалені.
484 <p>
485 Як і у випадку методу <tt>install</tt>, ви можете скористатись спеціальним
486 символом при <tt>remove</tt>, щоб інвертувати його дію для конкретного пакунка.
487 У випадку видалення, якщо ви додаєте знак <tt>'+'</tt> одразу після назви
488 пакунка, то такий пакунок буде встановлений, а не видалений.
489
490 <p>
491 <example>
492 # apt-get --purge remove gnome-panel nautilus+
493 Reading Package Lists... Done
494 Building Dependency Tree... Done
495 The following extra packages will be installed:
496 bonobo libmedusa0 libnautilus0 nautilus
497 The following packages will be REMOVED:
498 gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
499 The following NEW packages will be installed:
500 bonobo libmedusa0 libnautilus0 nautilus
501 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
502 Need to get 8329kB of archives. After unpacking 2594kB will be used.
503 Do you want to continue? [Y/n]
504 </example>
505
506 <p>
507 Зауважте, що <prgn>apt-get</prgn> виводить список додаткових пакунків,
508 котрі будуть встановлені (таких, чиє встановлення є необхідною умовою для
509 правильного функціонування пакунків, вказаних у початковому запиті на встановлення),
510 пакунків, котрі будуть видалені, та загалом пакунків, котрі будуть встановлені
511 (включаючи і додаткові пакунки також).
512 </sect>
513
514 <sect id="upgrade">Оновлення пакунків
515 <p>
516 Оновлення пакунків&nbsp;— визначне досягнення системи APT. Це можна робити
517 за допомогою однієї-єдиної команди: <tt>apt-get upgrade</tt>.
518 Ви можете використовувати її і для оновлення пакунків з однієї і тієї ж
519 збірки, і у випадку переходу до збірки нової, хоча, для останнього
520 рекомендується використовувати <tt>apt-get dist-upgrade</tt> (див.
521 <ref id="dist-upgrade">, щоб дізнатись про це більше).
522 <p>
523 Доцільно запускати цю команду з опцією <tt>-u</tt>. За її використання APT
524 виводить повний список пакунків, котрі будуть оновлені. Без неї ви будете
525 оновлюватись всліпу. APT завантажить останні версії кожного з пакунків та
526 встановить їх в правильному порядку. Перед оновленням пакунків
527 завжди важливо виконувати <tt>apt-get update</tt>. Перегляньте <ref id="update">.
528 Наприклад:
529
530 <p>
531 <example>
532 # apt-get -u upgrade
533 Reading Package Lists... Done
534 Building Dependency Tree... Done
535 The following packages have been kept back
536 cpp gcc lilo
537 The following packages will be upgraded
538 adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent
539 ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev
540 libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0
541 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc
542 29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
543 Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
544 Do you want to continue? [Y/n]
545 </example>
546
547 <p>
548 Процес є дуже простим. Відзначте, що в одному з перших
549 рядків <tt>apt-get</tt> вказує на те, що деякі пакунки були <tt>kept back</tt>.
550 Це означає, що є нові версії цих пакунків, але вони не можуть бути
551 встановлені з деяких причин. Можливими причинами можуть бути
552 неправильні залежності (вказану версію пакунка, від якого залежить даний,
553 неможливо завантажити) або нові залежності (остання версія даного пакунка залежить
554 від нового пакунка).
555 <p>
556 Для першого випадку не існує прозорого вирішення проблеми. В другому
557 випадку доцільно запустити <tt>apt-get install</tt>, вказавши відповідний
558 пакунок, що призведе до завантаження його залежностей. Більш прозорим
559 рішенням буде використання <tt>dist-upgrade</tt>. Перегляньте
560 <ref id="dist-upgrade">.
561 </sect>
562
563 <sect id="dist-upgrade">Оновлення до нового випуску
564 <p>
565 Ця можливість APT дозволяє вам оновлювати одразу всю систему Debian, або
566 через Інтернет, або з нового компакт-диску (придбаного чи завантаженого
567 як ISO-образ).
568 <p>
569 Це також використовується, коли зміни торкаються взаємозв'язків між встановленими
570 пакунками. При використанні <tt>apt-get upgrade</tt> такі пакунки залишились би
571 незайманими (<tt>kept back</tt>).
572 <p>
573 Наприклад, припустимо, що ви використовуєте редакцію 0 стабільної версії
574 Debian та купуєте компакт з редакцією 3. Ви можете скористатись APT для
575 оновлення вашої системи з нового КД. Для цього скористайтесь <prgn>apt-cdrom</prgn>
576 (див. <ref id="cdrom">), щоб додати ваш КД до файлу <tt>/etc/apt/sources.list</tt>
577 і запустіть <tt>apt-get dist-upgrade</tt>.
578 <p>
579 Важливо відзначити, що APT завжди шукає найсвіжіші версії пакунків.
580 Тому, якщо до вашого списку в <tt>/etc/apt/sources.list</tt>
581 було включено архів з пакунками більш нових версій, ніж на компакт-диску,
582 APT буде завантажувати пакунки звідти.
583 <p>
584 В прикладі в одному з попередніх розділів (див. <ref id="upgrade">)
585 ми бачили, що деякі пакунки були <tt>kept back</tt>. Зараз ми
586 вирішимо цю проблему за допомогою методу <tt>dist-upgrade</tt>:
587
588 <p>
589 <example>
590 # apt-get -u dist-upgrade
591 Reading Package Lists... Done
592 Building Dependency Tree... Done
593 Calculating Upgrade... Done
594 The following NEW packages will be installed:
595 cpp-2.95 cron exim gcc-2.95 libident libopenldap-runtime libopenldap1
596 libpcre2 logrotate mailx
597 The following packages have been kept back
598 lilo
599 The following packages will be upgraded
600 adduser ae apt autoconf cpp debhelper dpkg-dev esound esound-common ftp gcc
601 indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0
602 libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev
603 liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit
604 procps psmisc
605 31 packages upgraded, 10 newly installed, 0 to remove and 1 not upgraded.
606 Need to get 0B/7098kB of archives. After unpacking 3118kB will be used.
607 Do you want to continue? [Y/n]
608 </example>
609
610 <p>
611 Зверніть увагу, що пакунки буде оновлено і, крім цього, також буде
612 встановлено нові пакунки (нові залежності). Зауважте також, що lilo
613 все ще залишається <tt>kept back</tt>. Він, ймовірно, має серйознішу
614 проблему, ніж нова залежність. Ми можемо її з'ясувати, виконавши:
615
616 <p>
617 <example>
618 # apt-get -u install lilo
619 Reading Package Lists... Done
620 Building Dependency Tree... Done
621 The following extra packages will be installed:
622 cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
623 logrotate mailx
624 The following packages will be REMOVED:
625 debconf-tiny
626 The following NEW packages will be installed:
627 cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
628 logrotate mailx
629 The following packages will be upgraded
630 lilo
631 1 packages upgraded, 9 newly installed, 1 to remove and 31 not upgraded.
632 Need to get 225kB/1179kB of archives. After unpacking 2659kB will be used.
633 Do you want to continue? [Y/n]
634 </example>
635
636 <p>
637 Як з'ясувалось, lilo конфліктує з пакунком <package>debconf-tiny</package>,
638 а отже не може бути встановленим (чи оновленим) без видалення
639 debconf-tiny.
640 <p>
641 Щоб дізнатись, яким чином приймається рішення про збереження або видалення пакунка,
642 спробуйте:
643
644 <p>
645 <example>
646 # apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
647 Reading Package Lists... Done
648 Building Dependency Tree... Done
649 Calculating Upgrade... Starting
650 Starting 2
651 Investigating python1.5
652 Package python1.5 has broken dep on python1.5-base
653 Considering python1.5-base 0 as a solution to python1.5 0
654 Holding Back python1.5 rather than change python1.5-base
655 Investigating python1.5-dev
656 Package python1.5-dev has broken dep on python1.5
657 Considering python1.5 0 as a solution to python1.5-dev 0
658 Holding Back python1.5-dev rather than change python1.5
659 Try to Re-Instate python1.5-dev
660 Done
661 Done
662 The following packages have been kept back
663 gs python1.5-dev
664 0 packages upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
665 </example>
666
667 <p>
668 Таким чином, легко помітити, що пакунок python1.5-dev не може
669 бути встановленим через незадоволену залежність: python1.5.
670
671 </sect>
672
673 <sect id="clean">Видалення непотрібних файлів пакунків: apt-get clean та autoclean
674 <p>
675 Коли ви встановлюєте пакунок, APT завантажує потрібні файли з джерел,
676 вказаних в /etc/apt/sources.list, записує їх в локальне сховище
677 (<file>/var/cache/apt/archives/</file>) і потім встановлює, як описано вище
678 (див. <ref id="install">).
679 <p>
680 З часом локальне сховище може вирости і зайняти багато дискового
681 простору. На щастя, APT забезпечує інструменти для керування локальним
682 сховищем: методи <prgn>apt-get</prgn>&nbsp;— <tt>clean</tt> та <tt>autoclean</tt>.
683 <p>
684 <prgn>apt-get clean</prgn> видаляє все, за виключенням lock-файлів з
685 <file>/var/cache/apt/archives/</file> і <file>/var/cache/apt/archives/partial/</file>.
686 Тому, у випадку перевстановлення пакунка, APT повинен буде завантажувати його
687 знову.
688 <p>
689 <prgn>apt-get autoclean</prgn>&nbsp;— тільки ті файли пакунків, як більше не можна
690 завантажити.
691 <p>
692 Наступний приклад демонструє роботу apt-get:
693
694 <p>
695 <example>
696 # ls /var/cache/apt/archives/logrotate* /var/cache/apt/archives/gpm*
697 logrotate_3.5.9-7_i386.deb
698 logrotate_3.5.9-8_i386.deb
699 gpm_1.19.6-11_i386.deb
700 </example>
701
702 <p>
703 В теці /var/cache/apt/archives є два файли пакунка
704 <package>logrotate</package> та один файл
705 пакунка <package>gpm</package>.
706
707 <p>
708 <example>
709 # apt-show-versions -p logrotate
710 logrotate/stable uptodate 3.5.9-8
711 # apt-show-versions -p gpm
712 gpm/stable upgradeable from 1.19.6-11 to 1.19.6-12
713 </example>
714
715 <p>
716 <prgn>apt-show-versions</prgn> показує, що
717 <file>logrotate_3.5.9-8_i386.deb</file> забезпечує
718 поточну версію <package>logrotate</package>,
719 отже <file>logrotate_3.5.9-7_i386.deb</file>
720 більше не потрібен. Також <file>gpm_1.19.6-11_i386.deb</file>
721 є непотрібним, оскільки є можливість завантажити більш нову версію
722 цього пакунка.
723
724 <p>
725 <example>
726 # apt-get autoclean
727 Reading Package Lists... Done
728 Building Dependency Tree... Done
729 Del gpm 1.19.6-11 [145kB]
730 Del logrotate 3.5.9-7 [26.5kB]
731 </example>
732
733 <p>Отже, <tt>apt-get autoclean</tt> видаляє тільки застарілі файли.
734 Щоб отримати більше інформації про apt-show-versions перегляньте
735 <ref id="apt-show-versions">.
736
737 </sect>
738
739 <sect id="dselect-upgrade">Використання APT з dselect
740 <p>
741 <prgn>dselect</prgn>&nbsp;— це програма, котра допомагає користувачам обирати
742 пакунки Debian для встановлення. Вона виглядає дещо громіздкою і
743 трохи нудною, але з часом ви можете звикнути до її термінального,
744 основаного на ncurses, інтерфейсу.
745 <p>
746 Однією з особливостей dselect є її вміння враховувати те, що пакунки
747 Debian можуть „рекомендувати“ і „пропонувати“ інші пакунки під час
748 встановлення. Для використання програми запустіть <tt>dselect</tt>
749 в якості користувача root. Оберіть apt в якості методу доступу.
750 Насправді, це не обов'язково, але якщо ви не використовуєте компакт-диски
751 і хочете завантажувати пакунки з Інтернету, це найкращий спосіб
752 використання dselect.
753 <p>
754 Щоб краще зрозуміти, як працює dselect, прочитайте відповідну
755 документацію. Її можна знайти на сторінці Debian
756 <url id="http://www.debian.org/doc/ddp" name="http://www.debian.org/doc/ddp">.
757 <p>
758 Після того, як ви за допомогою dselect вибрали пакунки, використовуйте
759
760 <p>
761 <example>
762 # apt-get -u dselect-upgrade
763 </example>
764
765 <p>
766 як показано в прикладі нижче:
767
768 <p>
769 <example>
770 # apt-get -u dselect-upgrade
771 Reading Package Lists... Done
772 Building Dependency Tree... Done
773 The following packages will be REMOVED:
774 lbxproxy
775 The following NEW packages will be installed:
776 bonobo console-tools-libs cpp-3.0 enscript expat fingerd gcc-3.0
777 gcc-3.0-base icepref klogd libdigest-md5-perl libfnlib0 libft-perl
778 libgc5-dev libgcc300 libhtml-clean-perl libltdl0-dev libsasl-modules
779 libstdc++3.0 metamail nethack proftpd-doc psfontmgr python-newt talk tidy
780 util-linux-locales vacation xbill xplanet-images
781 The following packages will be upgraded
782 debian-policy
783 1 packages upgraded, 30 newly installed, 1 to remove and 0 not upgraded.
784 Need to get 7140kB of archives. After unpacking 16.3MB will be used.
785 Do you want to continue? [Y/n]
786 </example>
787
788 <p>
789 Порівняйте це з виводом apt-get dist-upgrade на цій же системі:
790
791 <p>
792 <example>
793 # apt-get -u dist-upgrade
794 Reading Package Lists... Done
795 Building Dependency Tree... Done
796 Calculating Upgrade... Done
797 The following packages will be upgraded
798 debian-policy
799 1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
800 Need to get 421kB of archives. After unpacking 25.6kB will be freed.
801 Do you want to continue? [Y/n]
802 </example>
803
804 <p>
805 Зауважте, що багато пакунків з наведеного вище прикладу були встановлені тому,
806 що інші пакунки „пропонують“ або „рекомендують“ їх. Інші були встановлені або
807 видалені (наприклад, lbxproxy) в результаті вибору, який ми зробили за допомогою
808 інтерфейсу dselect. Dselect може бути потужним інструментом, якщо використовується
809 разом з APT.
810 </sect>
811
812 <sect id="default-version">Як підтримувати змішану систему
813 <p>
814 Іноді люди бажають використовувати одну з версій Debian
815 в якості головного дистрибутиву системи та один чи декілька
816 пакунків з іншої гілки.
817 <p>
818 Щоб вказати, яка версія Debian є головною, необхідно відредагувати файл
819 <file>/etc/apt/apt.conf</file> (зазвичай його немає, в такому випадку створіть його),
820 помістивши в нього такий рядок:
821 <p>
822 <example>
823 APT::Default-Release "<var>версія</var>";
824 </example>
825 <p>
826 Де <var>версія</var>&nbsp;— це версія Debian, котру ви хочете використовувати
827 в якості головної збірки. Можна вказувати такі значення як
828 <tt>stable</tt>, <tt>testing</tt> та <tt>unstable</tt>.
829
830 Далі, щоб встановити пакунки з інших версій, ви повинні використовувати
831 APT в такий спосіб
832
833 <p>
834 <example>
835 # apt-get -t <var>збірка</var> install <var>пакунок</var>
836 </example>
837 <p>
838 Проте, що це працювало, вам потрібно мати як мінімум один рядок
839 в <file>/etc/apt/sources.list</file> з джерелом APT для відповідної
840 збірки і на цьому джерелі повинні бути необхідні пакунки.
841 <p>
842 Ви також можете здійснити запит щодо конкретної версії пакунка,
843 скориставшись наступним синтаксисом:
844
845 <example>
846 # apt-get install <var>пакунок</var>=<var>версія</var>
847 </example>
848
849 Наприклад, при виконанні вказаної нижче команди встановиться
850 пакунок <package>nautilus</package> з версією <tt>2.2.4-1</tt>.
851
852 <example>
853 # apt-get install nautilus=2.2.4-1
854 </example>
855
856 <p>
857 <em>ВАЖЛИВО</em>: збірка unstable&nbsp;— це збірка, до якої найновіші
858 версії пакунків Debian потрапляють в першу чергу. Через цю збірку
859 проходять всі ті зміни, котрих зазнають пакунки. І невеликі пакунки, і
860 дуже важливі, від роботи яких залежать інші пакунки або система в цілому.
861 З цієї причина, ця версія збірки <em>не</em> повинна використовуватись
862 недосвідченими користувачами або тими, хто ставить стабільність системи
863 на перше місце.
864 <p>
865 Збірка testing не обов'язково краща за unstable, оскільки не отримує
866 оновлень безпеки за короткий час. Для серверів та інших виробничих
867 систем завжди необхідно використовувати stable.
868 </sect>
869
870 <sect id="apt-show-versions">Яким чином оновлювати пакунки зі специфічних версій Debian
871 <p>
872 <prgn>apt-show-versions</prgn> забезпечує користувачів змішаних збірок безпечним
873 способом для оновлення їх системи без отримання з менш стабільної збірки
874 більшого, ніж вони мали на увазі. Наприклад, можна оновити лише ваші пакунки
875 з unstable, виконавши, попередньо встановивши пакунок <package>apt-show-versions</package>,
876 <p>
877 <example>
878 # apt-get install `apt-show-versions -u -b | grep unstable | cut -d ' ' -f 1`
879 </example>
880 </sect>
881
882 <sect id="pin">Як зберегти встановленими конкретні версії пакунків (складний метод)
883 <p>
884 Можливо, сталось так, що ви змінили дещо в пакунку, але не маєте часу або
885 не хочете вносити ці зміни до нової версії програми. Чи, наприклад, вам
886 просто потрібно оновити вашу збірку Debian до 3.0, але є бажання продовжувати
887 використовувати деякі версії пакунків зі збірки Debian 2.2.
888 Ви можете „приколоти“ (pin) версію, котру ви використовуєте так, щоб вона
889 більш не оновлювалась.
890 <p>
891 Використовувати цю можливість просто. Необхідно лише відредагувати файл
892 <tt>/etc/apt/preferences</tt>.
893 <p>
894 Формат простий:
895 <p>
896 <example>
897 Package: &lt;package&gt;
898 Pin: &lt;pin-означення&gt;
899 Pin-Priority: &lt;pin-пріоритет&gt;
900 </example>
901 <p>
902 Кожен запис повинен відділятись від інших порожнім рядком.
903 Наприклад, щоб зберегти версію 0.4.99 пакунка <package>sylpheed</package>,
904 в котрий я додав можливість reply-to-list, я вказую:
905 <p>
906 <example>
907 Package: sylpheed
908 Pin: version 0.4.99*
909 </example>
910 <p>
911 Зверніть увагу, що я використав символ <tt>*</tt> (зірочка). Це „маска“,
912 вона означає, що я хочу, щоб цей pin стосувався всіх версій, що починаються з
913 0.4.99. Це зроблено з тієї причини, що до версії в пакунках Debian додається
914 номер „редакції Debian“ і я не хочу відміняти встановлення цих редакцій.
915 Отже, наприклад, версії 0.4.99-1 та 0.4.99-10 будуть встановлені, як
916 тільки стануть доступними. Зауважте, що якщо ви модифікували пакунок,
917 такий метод вам не підійде.
918 <p>
919 Pin-пріоритет допомагає визначити чи оновлювати пакунок, що задовольняє
920 вимогам в рядках Packages: та Pin:, вищий пріоритет збільшує шанси
921 того, що відповідний пакунок буде встановлено. Ви можете прочитати
922 <manref name="apt_preferences" section="7">, щоб ознайомитись зі всебічним
923 обговоренням пріоритетів, але декілька прикладів допоможуть зрозуміти основну
924 ідею. Далі описуються ефекти від встановлення різних значень поля Pin-Priority:
925 для пакунку sylpheed з наведеного вище прикладу.
926 </p>
927 <p>
928 <taglist>
929 <tag>1001</tag>
930 <item>
931 Apt ніколи не замінить sylpheed, версії 0.4.99. Якщо буде потрібно,
932 apt встановить версію 0.4.99, замінивши нею пакунок з більш високою версією.
933 Тільки пакунки з пріоритетом, вищим ніж 1000 зможуть „понизити“ існуючий
934 пакунок.
935 </item>
936 <tag>1000</tag>
937 <item>
938 Ефект такий самий, як і у випадку пріоритету 1001, за винятком того,
939 що apt не буде знижувати версію вже встановленого пакунка до 0.4.99.
940 </item>
941 <tag>990</tag>
942 <item>
943 Версію 0.4.99 зможе замінити лише пакунок вищої версії зі
944 збірки, котра визначена як переважаюча, шляхом використання
945 змінної APT::Default-Release (див. <ref id="default-version"> вище).
946 </item>
947 <tag>500</tag>
948 <item>
949 Будь-яка доступна версія, вища за 0.4.99, пакунка sylpheed з будь-якого випуску
950 буде мати перевагу над версією 0.4.99, але остання буде мати
951 перевагу над нижчими версіями.
952 </item>
953 <tag>100</tag>
954 <item>
955 Вищі доступні версії sylpheed з будь-якої збірки будуть мати
956 перевагу над версією 0.4.99, також будь які встановлені вищі
957 версії slypheed; тобто 0.4.99 встановиться лише в тому випадку,
958 якщо не встановлено жодної іншої версії. Це&nbsp;— пріоритет встановлених
959 пакунків.
960 </item>
961 <tag>-1</tag>
962 <item>
963 Від'ємні значення також є прийнятними і забороняють встановлення 0.4.99.
964 </item>
965 </taglist>
966 <p>
967 „Приколювання“ пакунка може здійснюватись за такими критеріями як його
968 версія (<tt>version</tt>), випуск (<tt>release</tt>) чи
969 походження (<tt>origin</tt>) пакунка.
970 <p>
971 Фіксування за версією (<tt>version</tt>), як ми бачили, підтримує
972 літерні номери версій і, крім цього, „маски“ з можливістю вибору
973 декількох версій одночасно.
974 <!-- what's available? standard shell globs? ?*[] or more? -->
975 <p>
976 Опція <tt>release</tt> залежить від файлу Release зі сховища APT
977 або з компакт-диску. Ця опція може не використовуватись у тому випадку,
978 коли всі ваші сховища пакунків такого файлу не забезпечують. Вміст
979 ваших файлів Release можна переглянути, відвідавши теку
980 <tt>/var/lib/apt/lists/</tt>. Параметрами до release є:
981 <tt>a</tt> (archive, архів), <tt>c</tt> (components, компоненти),
982 <tt>v</tt> (version, версія), <tt>o</tt> (origin, походження) та
983 <tt>l</tt> (label, мітка).
984 <p>
985 Наприклад:
986 <p>
987 <example>
988 Package: *
989 Pin: release v=2.2*,a=stable,c=main,o=Debian,l=Debian
990 Pin-Priority: 1001
991 </example>
992 <p>
993 В цьому прикладі ми обираємо версію Debian 2.2* (що може бути
994 2.2r2, 2.2r3&nbsp;— це „точковий випуск“, що, зазвичай, містить
995 виправлення безпеки та інші дуже важливі оновлення), сховище
996 <tt>stable</tt>, розділ <tt>main</tt> (на противагу <tt>contrib</tt> чи
997 <tt>non-free</tt>) та походження і мітку Debian. Походження (o=)
998 визначає, хто створив цей файл Release, мітка (l=)&nbsp;— назва дистрибутиву:
999 Debian для власне Debian, Progeny для Progeny, і т.д. Приклад файлу
1000 Release:
1001 <p>
1002 <example>
1003 $ cat /var/lib/apt/lists/ftp.debian.org.br_debian_dists_potato_main_binary-i386_Release
1004 Archive: stable
1005 Version: 2.2r3
1006 Component: main
1007 Origin: Debian
1008 Label: Debian
1009 Architecture: i386
1010 </example>
1011 </sect>
1012 </chapt>
1013
1014 <chapt id="helpers">Дуже корисні помічники
1015 <sect id="equivs">Як встановлювати локально cкомпільовані пакунки: equivs
1016 <p>
1017 Іноді людина хоче використовувати специфічну версію програми,
1018 доступну лише у вигляді джерельних кодів, а не пакунку Debian.
1019 Але пакункова система може стати для цього певною перешкодою.
1020 Припустимо, ви хочете скомпілювати нову версію вашого серверу
1021 електронної пошти. Все б чудово, але багато пакунків в Debian
1022 залежать від MTA (Mail Transport Agent). Однак, оскільки ви
1023 встановили дещо самостійно вами скомпільоване, система керування
1024 пакунками не знатиме про його існування.
1025 <p>
1026 І тут на сцену виходить <package>equivs</package>. Щоб скористатись
1027 ним, встановіть однойменний пакунок. Equivs створює порожній пакунок
1028 з повним набором залежностей; робить так, щоб у системи керування
1029 пакунками склалось враження, що всі залежності задовольняються.
1030 <p>
1031 Перед тим, як ми почнемо, непогано було б нагадати вам, що
1032 є і більш безпечні шляхи компіляції з різноманітними параметрами
1033 тих програм, для котрих вже існують пакунки Debian, і що не потрібно
1034 використовувати equivs для заміни залежностей, якщо ви не
1035 не впевнені в тому, що робите. Щоб дізнатись більше перегляньте
1036 <ref id="sourcehandling">.
1037 <p>
1038 Отже, повернемось до нашого прикладу з MTA. Ви щойно встановили
1039 ваш наново скомпільований <prgn>postfix</prgn> і переходите
1040 до встановлення <package>mutt</package>. Раптом виявляється,
1041 що <package>mutt</package> вимагає встановити інший MTA.
1042 Але у вас вже є ваш власний.
1043 <p>
1044 Перейдіть до якоїсь теки (наприклад, <file>/tmp</file>) і запустіть:
1045
1046 <p>
1047 <example>
1048 # equivs-control <var>name</var>
1049 </example>
1050
1051 <p>
1052 Замініть <var>name</var> на назву керуючого файлу, який ви хочете
1053 створити. Він буде мати такий вигляд:
1054
1055 <p>
1056 <example>
1057 Section: misc
1058 Priority: optional
1059 Standards-Version: 3.0.1
1060
1061 Package: &lt;enter package name; defaults to equivs-dummy&gt;
1062 Version: &lt;enter version here; defaults to 1.0&gt;
1063 Maintainer: &lt;your name and email address; defaults to username&gt;
1064 Pre-Depends: &lt;packages&gt;
1065 Depends: &lt;packages&gt;
1066 Recommends: &lt;packages&gt;
1067 Suggests: &lt;package&gt;
1068 Provides: &lt;(virtual)package&gt;
1069 Architecture: all
1070 Copyright: &lt;copyright file; defaults to GPL2&gt;
1071 Changelog: &lt;changelog file; defaults to a generic changelog&gt;
1072 Readme: &lt;README.Debian file; defaults to a generic one&gt;
1073 Extra-Files: &lt;additional files for the doc directory, comma-separated&gt;
1074 Description: &lt;short description; defaults to some wise words&gt;
1075 long description and info
1076 .
1077 second paragraph
1078 </example>
1079
1080 <p>
1081 Нам просто потрібно привести його до потрібного нам вигляду.
1082 Погляньмо на формат полів і їх описи. Очевидно, нема потреби
1083 пояснювати кожне з них окремо, давайте просто зробимо те, що
1084 потрібно:
1085
1086 <p>
1087 <example>
1088 Section: misc
1089 Priority: optional
1090 Standards-Version: 3.0.1
1091
1092 Package: mta-local
1093 Provides: mail-transport-agent
1094 </example>
1095
1096 <p>
1097 Так, це все. <package>mutt</package> залежить від
1098 віртуального пакунка <package>mail-transport-agent</package>,
1099 котрий забезпечується будь-яким MTA, я міг би просто назвати
1100 пакунок <package>mail-transport-agent</package>, однак
1101 вважаю за краще використовувати схему віртуальних пакунків за
1102 допомогою Provides.
1103 <p>
1104 Тепер треба просто зібрати пакунок:
1105
1106 <p>
1107 <example>
1108 # equivs-build <var>name</var>
1109 dh_testdir
1110 touch build-stamp
1111 dh_testdir
1112 dh_testroot
1113 dh_clean -k
1114 # Add here commands to install the package into debian/tmp.
1115 touch install-stamp
1116 dh_testdir
1117 dh_testroot
1118 dh_installdocs
1119 dh_installchangelogs
1120 dh_compress
1121 dh_fixperms
1122 dh_installdeb
1123 dh_gencontrol
1124 dh_md5sums
1125 dh_builddeb
1126 dpkg-deb: building package `<var>name</var>' in `../<var>name</var>_1.0_all.deb'.
1127
1128 The package has been created.
1129 Attention, the package has been created in the current directory,
1130 </example>
1131
1132 <p>
1133 І встановити отриманий <tt>.deb</tt>-файл.
1134 <p>
1135 Як видно, <prgn>equivs</prgn> можна застосовувати по-різному.
1136 Наприклад, можна створити пакунок <tt>my-favorites</tt>, що
1137 залежить від програм, які ви зазвичай встановлюєте. Просто звільніть
1138 вашу уяву, але будьте обережними.
1139 <p>
1140 Важливо відзначити, що в теці <file>/usr/share/doc/equivs/examples</file>
1141 знаходяться приклади файлів control. Перевірте їх.
1142 </sect>
1143
1144 <sect id="localepurge">Видалення зайвих файлів локалей: localepurge
1145 <p>
1146 Багато користувачів Debian використовують тільки одну локаль.
1147 Наприклад, бразильський користувач зазвичай завжди використовує локаль
1148 <tt>pt_BR</tt> і не цікавиться локаллю <tt>es</tt>.
1149 <p>
1150 <package>localepurge</package> для таких користувачів є вельми корисним
1151 інструментом. Ви можете звільнити багато дискового простору, використовуючи
1152 лише ті локалі, котрі вам насправді потрібні. Просто виконайте
1153 <tt>apt-get install localepurge</tt>.
1154 <p>
1155 Налаштування є дуже простим, питання debconf допоможуть користувачеві
1156 здійснити його покроково. Будьте дуже обережними, відповідаючи
1157 на перше запитання, бо неправильна відповідь може видалити всі файли
1158 локалей, навіть тих, котрі ви використовуєте. Єдиним шляхом до відновлення
1159 цих файлів буде перевстановлення всіх пакунків, що їх забезпечують.
1160 </sect>
1161
1162 <sect id="helper-show-versions">Як дізнатись, які пакунки можуть бути оновлені
1163 <p>
1164 Програма <prgn>apt-show-versions</prgn> показує, які пакунки в системі
1165 можуть бути оновленими та деяку корисну інформацію.
1166 Параметр <tt>-u</tt> виводить список пакунків, котрі можуть бути
1167 оновлені:
1168 <p>
1169 <example>
1170 $ apt-show-versions -u
1171 libeel0/unstable upgradeable from 1.0.2-5 to 1.0.2-7
1172 libeel-data/unstable upgradeable from 1.0.2-5 to 1.0.2-7
1173 </example>
1174 </sect>
1175
1176 </chapt>
1177
1178 <chapt id="search">Отримання інформації про пакунки
1179 <p>
1180 Існують деякі програми-оболонки для системи APT, що значно спрощують
1181 отримання списку пакунків, доступних для встановлення або вже встановлених,
1182 а також відображення розділу, в якому знаходиться пакунок, його пріоритету,
1183 опису, тощо.
1184 <p>
1185 Однак... нашою метою зараз є вивчення можливостей власне APT. Отже, яким чином можна
1186 знайти назву потрібного нам пакунка.
1187 <p>
1188 Маємо кілька варіантів вирішення цієї задачі. Почнемо з <tt>apt-cache</tt>.
1189 Ця програма використовується системою APT для супроводу своєї бази даних.
1190 Ми зробимо тільки короткий огляд її найбільш практичних застосувань.
1191
1192 <sect id="cache">Пошук назв пакунків
1193 <p>
1194 Наприклад, уявимо, що ви хочете згадати про старі добрі дні з Atari 2600.
1195 Ви маєте бажання встановити емулятор Atari і потім завантажити деякі
1196 ігри. Ви можете зробити:
1197
1198 <p>
1199 <example>
1200 # apt-cache search atari
1201 atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
1202 circuslinux - The clowns are trying to pop balloons to score points!
1203 madbomber - A Kaboom! clone
1204 tcs - Character set translator.
1205 atari800 - Atari emulator for svgalib/X/curses
1206 stella - Atari 2600 Emulator for X windows
1207 xmess-x - X binaries for Multi-Emulator Super System
1208 </example>
1209
1210 <p>
1211 Ми знайшли декілька пакунків, що мають певне відношення до предмету пошуку, і
1212 побачили їх короткі описи. Щоб отримати більше інформації про конкретний пакунок
1213 я після цього можу використати:
1214
1215 <p>
1216 <example>
1217 # apt-cache show stella
1218 Package: stella
1219 Priority: extra
1220 Section: non-free/otherosfs
1221 Installed-Size: 830
1222 Maintainer: Tom Lear &lt;tom@trap.mtview.ca.us&gt;
1223 Architecture: i386
1224 Version: 1.1-2
1225 Depends: libc6 (&gt;= 2.1), libstdc++2.10, xlib6g (&gt;= 3.3.5-1)
1226 Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
1227 Size: 483430
1228 MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
1229 Description: Atari 2600 Emulator for X windows
1230 Stella is a portable emulator of the old Atari 2600 video-game console
1231 written in C++. You can play most Atari 2600 games with it. The latest
1232 news, code and binaries for Stella can be found at:
1233 http://www4.ncsu.edu/~bwmott/2600
1234 </example>
1235
1236 <p>
1237 В цьому виводі ми дізнались багато деталей щодо пакунку, котрий хочемо
1238 (або не хочемо) встановити і переглянули повний опис пакунка.
1239 Якщо пакунок вже встановлено до вашої системи, але є його новіша
1240 версія, ви побачите інформацію про обидві версії. Наприклад:
1241
1242 <p>
1243 <example>
1244 # apt-cache show lilo
1245 Package: lilo
1246 Priority: important
1247 Section: base
1248 Installed-Size: 271
1249 Maintainer: Russell Coker &lt;russell@coker.com.au&gt;
1250 Architecture: i386
1251 Version: 1:21.7-3
1252 Depends: libc6 (&gt;= 2.2.1-2), debconf (&gt;=0.2.26), logrotate
1253 Suggests: lilo-doc
1254 Conflicts: manpages (&lt;&lt;1.29-3)
1255 Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb
1256 Size: 143052
1257 MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e
1258 Description: LInux LOader - The Classic OS loader can load Linux and others
1259 This Package contains lilo (the installer) and boot-record-images to
1260 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
1261 .
1262 You can use Lilo to manage your Master Boot Record (with a simple text screen)
1263 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
1264
1265 Package: lilo
1266 Status: install ok installed
1267 Priority: important
1268 Section: base
1269 Installed-Size: 190
1270 Maintainer: Vincent Renardias &lt;vincent@debian.org&gt;
1271 Version: 1:21.4.3-2
1272 Depends: libc6 (&gt;= 2.1.2)
1273 Recommends: mbr
1274 Suggests: lilo-doc
1275 Description: LInux LOader - The Classic OS loader can load Linux and others
1276 This Package contains lilo (the installer) and boot-record-images to
1277 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
1278 .
1279 You can use Lilo to manage your Master Boot Record (with a simple text screen)
1280 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
1281 </example>
1282
1283 <p>
1284 Зверніть увагу, що першим в списку йде доступний пакунок, а другим&nbsp;—
1285 той, що вже встановлений в системі. Щоб отримати більш загальну інформацію
1286 про пакунок, можна скористатись:
1287
1288 <p>
1289 <example>
1290 # apt-cache showpkg penguin-command
1291 Package: penguin-command
1292 Versions:
1293 1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)
1294
1295 Reverse Depends:
1296 Dependencies:
1297 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)
1298 Provides:
1299 1.4.5-1 -
1300 Reverse Provides:
1301 </example>
1302
1303 <p>
1304 А щоб просто знайти його залежності:
1305
1306 <p>
1307 <example>
1308 # apt-cache depends penguin-command
1309 penguin-command
1310 Depends: libc6
1311 Depends: libpng2
1312 Depends: libsdl-mixer1.1
1313 Depends: libsdl1.1
1314 Depends: zlib1g
1315 </example>
1316
1317 <p>
1318 Загалом, ми маємо повний арсенал озброєнь, котрі можна використовувати
1319 для пошуку назв потрібних нам пакунків.
1320 </sect>
1321
1322 <sect id="dpkg-search">Використання dpkg для пошуку назв пакунків
1323 <p>
1324 Одним з методів пошуку назви пакунка&nbsp;— за відомою назвою якогось важливого
1325 файлу з нього. Наприклад, щоб знайти пакунок, котрий забезпечує певний
1326 необхідний вам для компіляції <tt>.h</tt>-файл, треба виконати:
1327
1328 <p>
1329 <example>
1330 # dpkg -S stdio.h
1331 libc6-dev: /usr/include/stdio.h
1332 libc6-dev: /usr/include/bits/stdio.h
1333 perl: /usr/lib/perl/5.6.0/CORE/nostdio.h
1334 </example>
1335
1336 <p>
1337 або:
1338
1339 <p>
1340 <example>
1341 # dpkg -S /usr/include/stdio.h
1342 libc6-dev: /usr/include/stdio.h
1343 </example>
1344
1345 <p>
1346 Дізнатись назви пакунків, встановлених в вашій системі (що може бути корисним,
1347 наприклад, якщо ви плануєте очистити ваш жорсткий диск), можна так:
1348
1349 <p>
1350 <example>
1351 # dpkg -l | grep mozilla
1352 ii mozilla-browse 0.9.6-7 Mozilla Web Browser
1353 </example>
1354 <p>
1355 Недоліком цієї команди є „обрізання“ назв пакунків. В наведеному вище прикладі
1356 повна назва пакунку&nbsp;— <tt>mozilla-browser</tt>. Це можна виправити,
1357 перевизначивши змінну середовища <tt>COLUMNS</tt>, ось так:
1358
1359 <p>
1360 <example>
1361 [kov]@[couve] $ COLUMNS=132 dpkg -l | grep mozilla
1362 ii mozilla-browser 0.9.6-7 Mozilla Web Browser - core and browser
1363 </example>
1364
1365 <p>
1366 або вказувати опис пакунка, чи його частину:
1367
1368 <p>
1369 <example>
1370 # apt-cache search "Mozilla Web Browser"
1371 mozilla-browser - Mozilla Web Browser
1372 </example>
1373 </sect>
1374
1375 <sect id="auto-apt">Як встановлювати пакунки „при потребі“
1376 <p>
1377 Ви компілюєте програму і, раптом, бабах! Помилка&nbsp;— немає потрібного
1378 <tt>.h</tt>-файлу. Програма <prgn>auto-apt</prgn> може вберегти
1379 вас від такого розвитку подій. Вона запитує вас, чи хочете ви встановити
1380 необхідні пакунки, зупиняє відповідний процес та відновлює його
1381 після встановлення пакунків.
1382 <p>
1383 Все, що потрібно зробити, це запустити:
1384
1385 <p>
1386 <example>
1387 # auto-apt run command
1388 </example>
1389
1390 <p>
1391 Де command&nbsp;— це команда, якій під час виконання можуть знадобитись
1392 деякі недоступні файли. Наприклад:
1393
1394 <p>
1395 <example>
1396 # auto-apt run ./configure
1397 </example>
1398
1399 <p>
1400 Тоді запити щодо встановлення потрібних пакунків та виклики apt-get
1401 будуть відбуватись автоматично. Якщо у вас запущені X, графічний інтерфейс
1402 замінить звичний текстовий.
1403 <p>
1404 З метою більшої ефективності auto-apt повинна використовувати
1405 базу даних з найсвіжішої інформацією. Це досягається шляхом виконання
1406 команд <tt>auto-apt update</tt>, <tt>auto-apt updatedb</tt> та
1407 <tt>auto-apt update-local</tt>.
1408 </sect>
1409
1410 <sect id="apt-file">Як дізнатись до якого пакунку належить файл
1411 <p>
1412 Якщо ви хочете встановити пакунок, котрий не можете знайти
1413 за допомогою <prgn>apt-cache</prgn>, але знаєте назву самої
1414 програми або деякі назви файлів з нього, ви можете скористатись
1415 <prgn>apt-file</prgn> для пошуку назви пакунка. Це виглядає приблизно
1416 так:
1417
1418 <p>
1419 <example>
1420 $ apt-file search <var>назва_пакунка</var>
1421 </example>
1422
1423 <p>
1424 Вона працює подібно до <tt>dpkg -S</tt>, однак також покаже вам
1425 невстановлені пакунки, що містять певний файл. Її також можна
1426 використовувати під час компіляції програм для відслідковування
1427 пакунків з необхідними файлами заголовків, хоча <prgn>auto-apt</prgn>
1428 є набагато кращим методом для вирішення цієї проблеми,
1429 див. <ref id="auto-apt">.
1430 <p>
1431 Також можна вивести список файлів в пакунку, виконавши:
1432
1433 <p>
1434 <example>
1435 $ apt-file list <var>назва_пакунка</var>
1436 </example>
1437
1438 <p>
1439 <prgn>apt-file</prgn>, як і auto-apt, зберігає
1440 всю необхідно інформацію (про те, які файли в якому пакунку знаходяться),
1441 в базі даних, котру потрібно оновлювати. Це робиться так:
1442
1443 <p>
1444 <example>
1445 # apt-file update
1446 </example>
1447
1448 <p>
1449 Зазвичай, <prgn>apt-file</prgn> використовує ту ж саму базу даних,
1450 що й <prgn>auto-apt</prgn> (див. <ref id="auto-apt">).
1451
1452 </sect>
1453
1454 <sect id="apt-listchanges">Як залишатись проінформованим про зміни в пакунках
1455 <p>
1456 Кожен пакунок встановлює в свою теку для документації (<tt>/usr/share/doc/packagename</tt>)
1457 файл під назвою <tt>changelog.Debian.gz</tt>, що містить список
1458 змін, зроблених в останній версії. Ви можете прочитати ці файли за допомогою,
1459 наприклад, <tt>zless</tt>, але це трохи нецікаво після завершення оновлення системи
1460 займатись пошуками журналів змін для кожного оновленого пакунка.
1461 <p>
1462 За допомогою інструменту <prgn>apt-listchanges</prgn> цю задачу
1463 можна автоматизувати. Для початку потрібно встановити
1464 пакунок <package>apt-listchanges</package>. Під час встановлення
1465 Debconf його налаштує. Деякі питання, можливо, не будуть
1466 відображатись, в залежності від того, який пріоритет ви
1467 вказали при налаштуванні самого Debconf. Давайте такі відповіді
1468 на питання, які вам більше довподоби.
1469 <p>
1470 Спочатку вас запитають, яким чином apt-listchanges інформуватиме
1471 вас про зміни. Їх можуть відсилати вам електронною поштою,
1472 що, вочевидь, виглядає доцільним при автоматичних оновленнях,
1473 або ви можете переглядати ці зміни за допомогою чогось схожого
1474 на <prgn>less</prgn> перед тим як почнеться власне процес
1475 оновлення пакунків. Якщо ви не хочете, щоб <prgn>apt-listchanges</prgn>
1476 запускалась автоматично під час оновлень системи, можете вибрати
1477 варіант відповіді <tt>none</tt>.
1478 <p>
1479 Після встановлення apt-listchanges, як тільки apt завантажить пакунки
1480 (або візьме їх з компакт-диску, або з підмонтованому диску),
1481 apt-listchanges виведе список змін, внесених до пакунків, перед їх
1482 встановленням.
1483 </sect>
1484 </chapt>
1485
1486 <chapt id="sourcehandling">Робота з джерельними пакунками
1487 <sect id="source">Завантаження джерельних пакунків
1488 <p>
1489 Звичайною річчю в світі вільного програмного забезпечення є
1490 вивчення джерельного коду чи, навіть, внесення виправлень
1491 в помилковий код. Щоб здійснити це, вам потрібно завантажити
1492 джерельні коди програми. Система APT пропонує простий
1493 метод отримання джерельного коду багатьох програм, що містяться
1494 в дистрибутиві, включаючи всі файли, потрібні для створення
1495 .deb-пакунку програми.
1496 <p>
1497 Іншим загальноприйнятим використанням джерельних пакунків Debian
1498 є адаптація більш свіжих версій програм, наприклад, зі збірки unstable,
1499 для використання в stable. Компіляція пакунка в середовищі stable
1500 згенерує .deb-файл з залежностями, пристосованими до
1501 доступних в цій збірці пакунків.
1502 <p>
1503 Для досягнення цього, запис <tt>deb-src</tt> в вашому
1504 <tt>/etc/apt/sources.list</tt> повинен вказувати на unstable
1505 і бути дозволеним (розкоментованим). Див. <ref id="sources.list">.
1506
1507 <p>
1508 Для завантаження джерельного пакунка скористайтесь такою командою:
1509
1510 <p>
1511 <example>
1512 $ apt-get source packagename
1513 </example>
1514 <p>
1515 При цьому завантажується три файла: <tt>.orig.tar.gz</tt>,
1516 <tt>.dsc</tt> та <tt>.diff.gz</tt>. Для пакунків, створених
1517 спеціально для Debian, останнього файлу немає, а в назві
1518 першого зазвичай відсутня вставка <tt>orig</tt>.
1519 <p>
1520 Файл <tt>.dsc</tt> використовується програмою dpkg-source
1521 для розпаковування джерельного пакунка в теку
1522 <var>назва_пакунка-версія</var>. Кожен завантажений джерельний
1523 пакунок має теку <tt>debian/</tt>, в якій знаходяться необхідні
1524 для створення .deb-пакунка файли.
1525 <p>
1526 Щоб після завантаження пакунок автоматично збирався, просто
1527 додайте <tt>-b</tt> до командного рядка, ось так:
1528
1529 <p>
1530 <example>
1531 $ apt-get -b source packagename
1532 </example>
1533
1534 <p>
1535 Якщо ви вирішили не створювати .deb-файл одразу після завантаження,
1536 ви можете зробити це пізніше, виконавши команду
1537
1538 <p>
1539 <example>
1540 $ dpkg-buildpackage -rfakeroot -uc -b
1541 </example>
1542
1543 <p>
1544 в теці, створеній для пакунка після його завантаження. Щоб встановити
1545 пакунок, збудований за допомогою вказаної вище команди, потрібно
1546 скористатись менеджером пакунків напряму, наприклад:
1547
1548 <p>
1549 <example>
1550 # dpkg -i <var>файл.deb</var>
1551 </example>
1552
1553 <p>
1554 Існує відмінність між методом <tt>source</tt> та іншими методами
1555 <prgn>apt-get</prgn>. Метод <tt>source</tt> можуть використовувати
1556 звичайні користувачі, він не потребує спеціальних прав root.
1557 Файли завантажуються до теки, з якої викликається команда
1558 <tt>apt-get source package</tt>.
1559 </sect>
1560
1561 <sect id="build-dep">Пакунки, потрібні для компіляції джерельних пакунків
1562 <p>
1563 Зазвичай, для компіляції джерельного пакунка потрібні деякі заголовки
1564 та бібліотеки спільного користування. В усіх джерельних пакунках
1565 в файлі control є поле під назвою Build-Depends:, котре показує,
1566 які додаткові пакунки потрібні для збірки джерельного.
1567 <p>
1568 З APT ці пакунки можна завантажувати дуже просто. Просто запустіть
1569 <tt>apt-get build-dep package</tt>, де package&nbsp;— це назва пакунка, який
1570 ви хочете зібрати. Наприклад:
1571
1572 <p>
1573 <example>
1574 # apt-get build-dep gmc
1575 Reading Package Lists... Done
1576 Building Dependency Tree... Done
1577 The following NEW packages will be installed:
1578 comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
1579 libgpmg1-dev
1580 0 packages upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
1581 Need to get 1069kB of archives. After unpacking 3514kB will be used.
1582 Do you want to continue? [Y/n]
1583 </example>
1584
1585 <p>
1586 Пакунки, що будуть встановлені, потрібні для коректної збірки
1587 <package>gmc</package>. Важливо відмітити, що ця команда не завантажує
1588 джерельний пакунок програми, котру ви маєте компілювати. Для цього потрібно
1589 окремо запустити <tt>apt-get source</tt>.
1590
1591 <p>
1592 Якщо вашою метою є лише перевірка того, які пакунки потрібні для
1593 збірки даного пакунка, ви можете, як варіант, використати команду
1594 <tt>apt-cache show</tt> (див. <ref id="search">), яка, серед
1595 іншої інформації, показує також список таких пакунків в рядку
1596 <tt>Build-Depends</tt>.
1597
1598 <p>
1599 <example>
1600 # apt-cache showsrc <var>пакунок</var>
1601 </example>
1602
1603 </sect>
1604 </chapt>
1605
1606 <chapt id="erros">Як виправляти помилки
1607 <sect id="erros-comuns">Загальні помилки
1608 <p>
1609 Помилки завжди будуть траплятись, більшість з них пов'язані з неуважністю
1610 користувачів. Далі наводиться список деяких помилок, про які найчастіше
1611 повідомляють, і методи їх вирішення.
1612
1613 <p>
1614 Якщо під час виконання <tt>apt-get install package</tt> ви отримуєте подібне
1615 повідомлення...
1616
1617 <p>
1618 <example>
1619 Reading Package Lists... Done
1620 Building Dependency Tree... Done
1621 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 No such file or directory)
1622 W: You may want to run apt-get update to correct these missing files
1623 E: Couldn't find package penguineyes
1624 </example>
1625
1626 <p>
1627 ви забули запустити <tt>apt-get update</tt> після внесення останньої
1628 зміни до файлу <tt>/etc/apt/sources.list</tt>.
1629 <p>
1630 Якщо помилка виглядає так:
1631
1632 <p>
1633 <example>
1634 E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)
1635 E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
1636 </example>
1637
1638 <p>
1639 коли ви намагаєтесь запустити <prgn>apt-get</prgn> з будь-яким
1640 методом, окрім <tt>source</tt>, значить ви не маєте прав root, тобто
1641 запускаєте програму як звичайний користувач.
1642 <p>
1643 Помилка, подібна до наведеної вище трапляється ще й тоді, коли ви
1644 намагаєтесь запустити дві копії <prgn>apt-get</prgn> одночасно або
1645 при спробі виконати <prgn>apt-get</prgn> в той час, коли <prgn>dpkg</prgn>
1646 є активним. Єдиний метод, який можна застосовувати одночасно з іншими&nbsp;—
1647 це метод <tt>source</tt>.
1648 <p>
1649 Якщо процес встановлення переривається посередині і виявляється, що
1650 потім встановлювати або видаляти пакунки неможливо, то
1651 виконайте такі команди:
1652
1653 <p>
1654 <example>
1655 # apt-get -f install
1656 # dpkg --configure -a
1657 </example>
1658
1659 <p>
1660 І спробувати знову. Запуск останніх двох команд може знадобитись
1661 більше одного разу. Це важливий урок для тих авантюристів, котрі
1662 використовують unstable.
1663
1664 <p>
1665 Якщо ви отримуєте помилку „E: Dynamic MMap ran out of room“ при
1666 запуску <tt>apt-get update</tt>, додайте такий рядок до
1667 <file>/etc/apt/apt.conf</file>:
1668
1669 <example>
1670 APT::Cache-Limit 10000000;
1671 </example>
1672
1673 </sect>
1674
1675 <sect id="help">Де мені шукати підтримки?
1676 <p>
1677 Якщо ви у безвихідному становищі, проконсультуйтесь з обширною
1678 документацією системи управління пакунків Debian.
1679 Параметри <tt>--help</tt> і сторінки довідки можуть дуже
1680 вам допомогти, як і документація, що знаходиться в підтеках
1681 <tt>/usr/share/doc</tt>, наприклад <tt>/usr/share/doc/apt</tt>.
1682 <p>
1683 Якщо ця документація не в змозі розвіяти ваші сумніви, спробуйте
1684 знайти відповідь в списках розсилки Debian. Ви можете знайти
1685 більше інформації про спеціальні списки для користувачів на
1686 веб-сайті Debian: <url
1687 id="http://www.debian.org" name="http://www.debian.org">.
1688 <p>
1689 Пам'ятайте, що ці списки і ресурси повинні використовувати
1690 тільки користувачі Debian; користувачі інших систем знайдуть кращу
1691 підтримку на ресурсах спільнот їх власних збірок.
1692 </sect>
1693 </chapt>
1694
1695 <chapt id="distros">Які дистрибутиви підтримують APT?
1696 <p>
1697 Ось назви деяких дистрибутивів, котрі використовують APT:
1698 <p>
1699 Debian GNU/Linux (<url id="http://www.debian.org" name="http://www.debian.org">)
1700 - саме для цього дистрибутиву APT і був розроблений
1701 <p>
1702 Conectiva (<url id="http://www.conectiva.com.br" name="http://www.conectiva.com.br">)
1703 - це перший дистрибутив, який портував APT для використання з rpm
1704 <p>
1705 Libranet (<url id="http://www.libranet.com" name="http://www.libranet.com">)
1706 <p>
1707 Mandrake (<url id="http://www.mandrake.com" name="http://www.mandrake.com">)
1708 <p>
1709 PLD (<url id="http://www.pld.org.pl" name="http://www.pld.org.pl">)
1710 <p>
1711 Vine (<url id="http://www.vinelinux.org" name="http://www.vinelinux.org">)
1712 <p>
1713 APT4RPM (<url id="http://apt4rpm.sf.net" name="http://apt4rpm.sf.net">)
1714 <p>
1715 Alt Linux (<url id="http://www.altlinux.ru/" name="http://www.altlinux.ru/">)
1716 <p>
1717 Red Hat (<url id="http://www.redhat.com/" name="http://www.redhat.com/">)
1718 <p>
1719 Sun Solaris (<url id="http://www.sun.com/" name="http://www.sun.com/">)
1720 <p>
1721 SuSE (<url id="http://www.suse.de/" name="http://www.suse.de/">)
1722 <p>
1723 Yellow Dog Linux (<url id="http://www.yellowdoglinux.com/"
1724 name="http://www.yellowdoglinux.com/">)
1725 </chapt>
1726
1727 <chapt id="agradecimentos">Подяки
1728 <p>
1729 Велика подяка моїм чудовим друзям з проекту Debian-BR і самого
1730 Debian, які постійно допомагають мені і завжди додають сил
1731 для праці на благо людства, а також підтримують мене в моїх
1732 потугах зберегти світ. :)
1733 <p>
1734 Також я хочу подякувати CIPSGA за посильну допомогу нашому проекту
1735 та всім вільним проектам&nbsp;— носіям величних ідей.
1736 <p>
1737
1738 І особливі подяки:
1739 <p>
1740 Yooseong Yang &lt;yooseong@debian.org&gt;
1741 <p>
1742 Michael Bramer &lt;grisu@debian.org&gt;
1743 <p>
1744 Bryan Stillwell &lt;bryan@bokeoa.com&gt;
1745 <p>
1746 Pawel Tecza &lt;pawel.tecza@poczta.fm&gt;
1747 <p>
1748 Hugo Mora &lt;h.mora@melix.com.mx&gt;
1749 <p>
1750 Luca Monducci &lt;luca.mo@tiscali.it&gt;
1751 <p>
1752 Tomohiro KUBOTA &lt;kubota@debian.org&gt;
1753 <p>
1754 Pablo Lorenzzoni &lt;spectra@debian.org&gt;
1755 <p>
1756 Steve Langasek &lt;vorlon@netexpress.net&gt;
1757 <p>
1758 Arnaldo Carvalho de Melo &lt;acme@conectiva.com.br&gt;
1759 <p>
1760 Erik Rossen &lt;rossen@freesurf.ch&gt;
1761 <p>
1762 Ross Boylan &lt;RossBoylan@stanfordalumni.org&gt;
1763 <p>
1764 Matt Kraai &lt;kraai@debian.org&gt;
1765 <p>
1766 Aaron M. Ucko &lt;ucko@debian.org&gt;
1767 <p>
1768 Jon &Aring;slund &lt;d98-jas@nada.kth.se&gt;
1769 </chapt>
1770
1771 <chapt id="novas">Нові версії цього підручника
1772 <p>
1773 Цей підручник створено в рамках проекту <url id="http://www.debian-br.org"
1774 name="Debian-BR"> з метою допомоги у щоденному використанні Debian.
1775 <p>
1776 Нові версії цього документу будуть доступними на
1777 сторінці проекту документації Debian
1778 <url id="http://www.debian.org/doc/ddp"
1779 name="http://www.debian.org/doc/ddp">.
1780 <p>
1781 Коментарі та зауваження можна відсилати мені напряму за адресою
1782 <email>kov@debian.org</email>.
1783 </chapt>
1784
1785 </book>
1786
1787 </debiandoc>

  ViewVC Help
Powered by ViewVC 1.1.5