HPUNIX Сайт о ОС и не только!

Глава 6 - Управление пакетами в Debian

24 марта 2009 - unix
Глава Шесть - Управление пакетами в Debian

Эта глава основывается на более старенькой версии текста британского оригинала. Проверьте британский вариант тоже.

Чтоб понизить нагрузку на репозитарии Debian по сети, установите локальный HTTP прокси-сервер squid для кэширования пакетов, скачиваемых системой APT, и настройте переменную окружения http_proxy либо задайте значение параметру http в файле /etc/apt/apt.conf (для того, чтоб APT использовала этот прокси-сервер - прим. переводчика). Эти меры значительно улучшат производительность сетевых обновлений, в особенности, если Вы имеете несколько Debian-машин в сети.

Although the pinning feature of apt_preferences(5) is powerful, it does not solve all the dependency issues since dependency requirements tend to pull in newer versions of other fundamental program packages.

Внедрение способа, описанного в /hdbk/root, раздел 8.6.34 желательно для обеспечения стабильности системы и сразу доступа к последним версиям программного обеспечения.

Хотя эта глава создана для использования на Woody-версии Debian, большая часть инфы также применима к Potato-версии (кроме apt_preferences(5) и разделов, связанных с /etc/apt/preferences).

6.1 Введение

Если чтение всей документации разработчиков очень мучительно вам, то поначалу прочтите эту главу и позже услаждайтесь всей мощью системы Debian, используя дистрибутивы testing/unstable :-).

6.1.1 Главные инструменты

Bash:
  1. dselect - инструмент для управления пакетами с меню-подобным интерфейсом (высокоуровневый инструмент)
  2. dpkg - инсталлятор пакетов (основная утилита для работы с файлами-пакетами)
  3. apt-get - инсталлятор пакетов (утилита для работами с репозитариями пакетов,
  4. интерфейс командной строчки к системе APT)
  5. tasksel - инсталлятор задач (набора пакетов)
  6. aptitude - инсталлятор пакетов (пакеты & задачки, интерфейс к APT на базе ncurses)
  7. deity - кандидатура ncurses-интерфейса к APT
  8. synaptic, gsynaptic - графические утилиты для работы с APT

Данные инструменты принадлежат различным уровням работы с пакетами. dselect работает над системой APT (команда apt-get) и программкой dpkg.

APT употребляет файлы /var/lib/apt/lists/* для отслеживания доступных пакетов, в то время как dpkg для этих целей употребляет файл /var/lib/dpkg/available. Если Вы установили пакеты конкретно используя программку apt-get либо схожими средствами (aptitude), то перед тем, как запускать команды dselect select, tasksel либо dpkg -l, не забудьте обновить файл /var/lib/dpkg/available через пункт меню [U]pdate программки dselect либо, запустив в командной строке команду "dselect update".

Потому что пакеты имееют зависимости, программка apt-get автоматом при установке пакета выбирает к установке дополнительные пакеты, от которых устанавливаемый пакет зависит (depends), но она не трогает пакеты, связанные с ним зависимостями "советует" (recommends) и "предлагает" (suggests). В то же время программка dselect через меню предлагает установить пакеты, основываясь на зависимостях вида "зависит" (depends), "советует" (recommends) и "предлагает" (suggests).

Программка aptitude имеет опцию для автоматической установки всех пакетов, избираемых этими видами зависимостей. Смотрите Зависимости пакетов, раздел 2.2.8.

6.1.2 Комфортные инструменты

Bash:
  1. apt-ca/hdbk/e - проверка локального кэша пакетов
  2. dpkg-reconfigure - повторная конфигурация уже установленного пакета (если он употребляет debconf)
  3. dpkg-source - управляет начальными файлами пакета
  4. dpkg-buildpackage - aвтоматизирует сборку пакета
  5. ...

6.2 Базы управления пакетами в Debian

Вы сможете установить набор пакетов, именуемых задачей, установить пакеты по одному либо обновить систему, используя инструменты управления пакетами, описанные ниже . Также обращайтесь к Советы по установке системы Debian, Глава 3, Обновление до дистрибутива testing, Глава 5 и Rescue editors, раздел 11.2.

6.2.1 Установка задачки с помощью программ tasksel либо aptitude

Программка tasksel является Дебиановским Установщиком Задач, который применяется при установке системы в облегченном "simple" режиме.

Когда Для вас в системе нужна некая функциональность, которая реализуется обилием пакетов, внедрение tasksel - самый наилучший метод это сделать. Последовательность команд должна быть таковой:

Bash:
  1. # dselect update
  2. # tasksel

Программка aptitude также предлагает доступ к задачкам.

Но она не только лишь дает Для вас возможность избрать для установки задачку, да и позволяет выборочно через меню отменить установку неких пакетов из состава задачки.

6.2.2 Установка системы APT - нет перевода!!!!

If you try to track mixed environment as described here, you may likely to hit some package dependency conflicts. It is good idea not to mix flavors. Followings are for people who is willing to experiment knowing some risks.

For selective upgrade while tracking the testing distribution, the APT system (>Woody) must be set up as in Перевод системы APT к ее Woody-версии, раздел 5.1 to use apt_preferences(5) features.

First, add the sources for stable, testing, and unstable to your /etc/apt/sources.list. Then, edit /etc/apt/preferences to set the proper Pin-Priority. [31]

Bash:
  1. Package: *
  2. Pin: release a=stable
  3. Pin-Priority: 500
  4.  
  5. Package: *
  6. Pin: release a=testing
  7. Pin-Priority: 600
  8.  
  9. Package: *
  10. Pin: release a=unstable
  11. Pin-Priority: 50

6.2.3 Программка dselect

После старта программка dselect автоматом выбирает все пакеты с ценностями "Required" (требующиеся), "Important" (принципиальные) и "Standard" (стандартные). В системе Potato некие огромные пакеты вроде teTex либо Emacs попадали в этот перечень, и самым наилучшим был их пропуск при исходной установке системы методом ручного снятия отметки соответствущих пакетов (нажатие кнопки `_'). В Woody же эти пакеты уже помечены ценностью "Optional"" (опициональный).

Программка dselect имеет несколько необыкновенный интерфейс юзера. Существует четыре несколько странноватых команды (регистр букв важен!):

Bash:
  1. Кнопка Действие
  2. Q Выход. Подтвердить текущий выбор пакетов и выйти из программки.
  3. (не принимать во внимание зависимости)
  4. R Возвратить все вспять! Я не имел это ввиду.
  5. D Проклятье!

    Мне не тревожит, что задумывается dselect. Просто сделай это!

  6. U установить все пакеты как рекомендуемые

Глава Шесть - Управление пакетами в Debian
С помощью D и Q Вы сможете избрать конфликтующие пакеты (на собственный ужас и риск). С этими командами нужно обращаться осторожно.

В текущее время dselect является довольно продвинутым инвентарем с меню-интерфейсом, который предлагает узкий контроль над выбором пакетов, а именно, по зависимостям suggests (предлагает) и recommends (советует).

Для понижения "разговорчивости" программки добавьте в файл /etc/dpkg/dselect.cfg строчку с опцией "expert". Для неспешных машин Вы сможете запускать dselect на другой более резвой машине для поиска подходящих пакетов, а на неспешной машине уже использовать apt-get install для их установки.

dselect не дает доступ к пакетам, которые не preferred by the Pin-Priority.

6.2.4 Программка aptitude

aptitude - это новый инстраллятор пакетов с меню-интерфейсом, схожий на dselect. Он также может употребляться как альтернативна консольной команде apt-get. Изучите страничку aptitude(1).

Программка aptitude обрабатывает одно-клавишные команды, вводимые в нижнем регистре

Bash:
  1. Кнопка Действие
  2. F10 Меню
  3. ? Помощь по кнопками управления
  4. u Обновить информацию об доступных пакетах в репозитарии
  5. g Скачать и установить избранные пакеты
  6. q Выйти из текущего экрана с сохранением конфигураций
  7. x Выйти без сохранения конфигураций
  8. Enter Просмотр инфы о пакете

Программка aptitude опционально может автоматом устанавливать пакеты, основываясь на зависимостях не только лишь depends, но recommends и suggests. Вы сможете изменять ее поведение, выбрав в меню F10 -> Options -> Dependency handling.

Программка aptitude предлагает доступ ко всем версиям пакета.

6.2.5 Команды apt-ca/hdbk/e и apt-get

While tracking testing as described in the above example, мы можем управлять системой последующими командами:

  • apt-get -u upgrade

    This tracks the testing distribution and upgrades all the packages on the system while installing their dependencies from testing.

  • apt-get -u dist-upgrade

    This tracks the testing distribution and upgrades all the packages on the system while installing and resolving their dependencies from testing.

  • apt-get -u dselect-upgrade

    This tracks the testing distribution and upgrades all the packages on the system according to the selections of dselect.

  • apt-get -u install package

    This installs package and its dependencies from the testing distribution.

  • apt-get -u install package/unstable

    Устанавливает пакет package из unstable-дистрибутива, при всем этом пакеты, от которых он зависит, берутся из testing-дистрибутива.

  • apt-get -u install -t unstable package

    Устанавливает пакет package из unstable-дистрибутива, при всем этом, пакеты от которых он также зависит берутся из unstable с помощью установки Pin-Priority unstable в 990.

  • apt-ca/hdbk/e policy foo bar ...

    Инспектирует статус пакетов foo bar ....

  • apt-ca/hdbk/e show foo bar ... | less

    Инспектирует информацию по пакетам foo bar ....

  • apt-get install foo=2.2.4-1

    Устанавливает определенную версию 2.2.4-1 пакета foo.

  • apt-get -u install foo bar-

    Устанавливает пакет foo и удаляет пакет bar.

  • apt-get remove bar

    Удаляет пакет bar, но не трогает его конфигурационные файлы.

  • apt-get remove --purge bar

    Удаляет пакет bar совместно со всеми его конфигурационными файлами.

В приведенных выше примерах внедрение функции -u гарантирует, что apt-get выведет перечень всех пакетов, подлежащих обновлению, и запросит доказательство у юзера до собственных действий. Вот так можно установить опцию -u в режим по дефлоту:

Bash:
  1. $ cat >> /etc/apt/apt.conf << .
  2. // Всегда демонстрировать пакеты для обновления (-u)
  3. APT::Get::Show-Upgraded "e";
  4. .

Используйте опцию -s для имитации обновления без выполнения каких-то реальных операций.

6.2.6 Tracking a flavor of Debian distribution

Depending on your preference for a flavor of Debian to track, you can /hdbk/ange the sample /etc/apt/preferences in Установка системы APT - нет перевода!!!!, раздел 6.2.2 to fit your needs:

Bash:
  1. track stable: /hdbk/ange Pin-Priority of testing to 50
  2. track testing: keep settings as shown above
  3. track testing(unstable): /hdbk/ange Pin-Priority of unstable to 500
  4. track unstable(testing): /hdbk/ange Pin-Priority of unstable to 800

A guideline for the /hdbk/oice of Pin-Priority is to move from the top to bottom in the above table as the time moves from a time immediately after a distribution release to a time of freeze for the next release.

Caution: tracking the testing flavor of Debian has a side effect of providing very slow security fixes.

If you mix flavors of Debian, testing with stable or unstable with stable, you will be likely to pull in unintentionally key packages from testing or unstable that may be buggy. So be warned.

Examples of /etc/apt/preferences whi/hdbk/ lock some key packages to the more mature version while tracking the less mature version for other nonessential packages are available in the examples subdirectory as preferences.testing and preferences.unstable. On the other хэнд, preferences.stable forces all packages to be downgraded to stable.

6.2.7 Откат всех пакетов до уровня stable

Чтоб откатить все пакеты до уровня stable, отредактируйте файл /etc/apt/preferences последующим образом:

Bash:
  1. Package: *
  2. Pin: release a=stable
  3. Pin-Priority: 1001

и запустите команду "apt-get upgrade", которая вызовет принудительный откат из-за значения Pin-priority > 1000. Необходимо предупредить, что могут появиться маленькие накладки с зависимостями.

6.2.8 Обзор файла /etc/apt/preferences

В примере файла /etc/apt/preferences, представленного в разделе Установка системы APT - нет перевода!!!!, раздел 6.2.2, строчка "Package: *" в первой строке значит, что эта секция применяется ко всем пакетам. Вы сможете использовать имя пакета заместо "*" для указания значения Pin-Priority этого пакета.

Во 2-ой строке запись "Pin: release a=stable" значит, что apt-get получает файл Packages.gz из архива Debian, у которого в файле Release есть строчка "Ar/hdbk/ive: stable".

В последней строке запись "Pin-Priority: 500" указвает значение Pin-Priority равное 500.

Если существует несколько пакетов с одним и этим же именованием, устанавливается пакет с большим значением Pin-Priority

А именно, значения Pin-Priority имеют последующий смысл:

  • 1001 и выше: Downgradable priorities.

    Пакеты с Pin-Priority из этого диапозона могут быть понижены в версии.

  • от 100 до 1000: Стандартные ценности.

    Такие пакеты нельзя понижать в версии. Вот несколько главных значений Pin-Priority:

    • 990: ценность установлен через --target-release либо опцию -t. Подробнее на страничке apt-get(8).

    • 500: ценность всех пакетов по дефлоту.

    • 100: ценность установленных пакетов в текущее время.

  • 0 - 99: неавтоматические ценности. (Они употребляются исключительно в случае, если пакет не установлен и нет другой доступной версии пакета.)

  • наименее нуля: Версия пакета никогда не выбирается.

Эффект схожий от --target-release может быть получен от установки файла /etc/apt/apt.conf последующим образом:

Bash:
  1. # e/hdbk/o 'APT::Default-Release "testing";' >> /etc/apt/apt.conf

Функция --target-release в командой строке и установки в файле /etc/apt/apt.conf имеют больший ценность установок в файле /etc/apt/preferences.

Будьте внимательны с этим побочным эффектом при работе с файлом /etc/apt/preferences.

6.3 Команды выживания в системе Debian

Владея этими познаниями, Вы сможете пребывать в нескончаемом "обновлении" :-)

6.3.1 Программные ошибки в Debian и поддержка

Если у Вас появились задачи с определенным пакетом, обследуйте последующие веб-сайты перед тем, как обращаться за помощью либо оформлять отчет об ошибке. (странички идиентично отлично будут смотреться в браузерах lynx, links и w3m):

Bash:
  1. $ lynx http://bugs.debian.org/
  2. $ lynx http://bugs.debian.org/имя-пакета # если понятно имя пакета
  3. $ lynx http://bugs.debian.org/номер-ошибки # если известен номер ошибки

Зайдите на Гугл (www.гугл.com) для поиска слов, включив фразу "site:debian.org".

Если что-то не ясно, изучите замечательное управление. Установите переменную окружения CDPATH последующим образом:

Bash:
  1. export CDPATH=.:/usr/local:/usr/share/doc

и наберите

Bash:
  1. $ cd ИмяПакета
  2. $ pager README.Debian # если файл существует
  3. $ mc

Огромное количество ресурсов по поддержке приведены по адресу Support for Debian, Глава 15.

6.3.2 Разрешение заморочек APT upgrade

Препядствия с зависимостями пакетов могут случаться при обновлениях в unstable/testing, обрисованных в Обновление системы Debian, раздел 5.3. В большинстве случаев это случается так как обновляемый пакет имеет зависимости, которые нельзя удовлетворить. Подобные задачи решаются так:

Bash:
  1. # apt-get dist-upgrade

Если это не работает, то повторяйте одну из последующих команд до разрешения препядствия:

Bash:
  1. # apt-get upgrade -f # продолжение обновления (upgrade) даже после появления ошибки
  2. ... либо
  3. # apt-get dist-upgrade -f # продолжение обновления дистрибутива (dist-upgrade) даже после появления ошибки

Некие вправду некорректные скрипты могут привести к неизменной дилемме. Обычно лучше разрешать подобные ситуации, исследовав файлы /var/lib/dpkg/info/packagename.{post,pre}{inst,rm} скриптов сбойного пакета и потом запустить команду:

Bash:
  1. # dpkg --configure -a # настраивает все ненастроенные пакеты

Если скрипт сетует на отсутствие какого-либо конфигурационного файла, выищите его в /etc.

Если он существует, но с расширением .new (либо схожим), измените его имя на имя без этого расширения (команда mv).

Неувязка зависимостей пакетов может появляться при установке пакета в смесь unstable/testing. Существует несколько путей обойти зависимости.

Bash:
  1. # apt-get install -f package # не принимать во внимание сломанные зависимости

Другой способ поправить эту ситуацию заключается в использовании пакета equivs.

Смотрите /usr/share/doc/equivs/README.Debian and The equivs package, раздел 6.5.2.

6.3.3 Восстановление через dpkg

В последних случаях восстановление неработоспособной программки dselect (APT) на серьезно покоробленной системе может быть выполнено с помощью программки dpkg без использования APT:

Bash:
  1. # cd /var/ca/hdbk/e/apt/ar/hdbk/ives
  2. # dpkg -i libc6* libdb2* perl*
  3. # dpkg -i apt* dpkg* debconf*
  4. # dpkg -i * # до того времени, пока ошибки не закончат появляться

Если какого-нибудь пакета нет, получите его с используя:

Bash:
  1. # mc # используйте "FTP-соединение", указав Debian FTP-сервер

Стоит увидеть, что с недавнешнего времени сами файлы пакетов на HTTP/FTP-сервере размещаются в новеньком каталоге /pool, а не в традиционном месте - каталоге /dist. (Смотрите Каталог pool, раздел 2.1.10.)

Потом устанавливаем пакеты:

Bash:
  1. # dpkg -i /var/ca/hdbk/e/apt/ar/hdbk/ives/packagefile.deb

Сломанные зависимости либо исправляем, либо поступаем таким макаром:

Bash:
  1. # dpkg --ignore-depends=пакет1,... -i имя_файла_пакета.deb
  2. # dpkg --force-depends -i имя_файла_пакета.deb
  3. # dpkg --force-depends --purge пакет
  4. # dpkg --force-confmiss -i имя_файла_пакета.deb # Установка отсутствующих conf-файлов

6.3.4 Восстановление инфы о избранных пакетах

Если файл /var/lib/dpkg/status оказался поврежден по какой-нибудь причине, система Debian теряет информацию о избранных пакетах и попадает в затруднительное положение. Отыскиваете старенькую версию файла /var/lib/dpkg/status под именованием /var/lib/dpkg/status-old либо /var/backups/dpkg.status.*.

Хороший мыслях является размещение каталога /var/backups/ на отдельном разделе жесткого диска, потому что он содержит массу принципиальных системных данных.

Если старенькый файл /var/lib/dpkg/status недоступен, Вы все таки сможете вернуть потерянную информацию из каталогов из /usr/share/doc/:

Bash:
  1. # ls /usr/share/doc | \
  2. grep -v [A-Z] | \
  3. grep -v '^texmf$' | \
  4. grep -v '^debian$' | \
  5. awk '{print $1 " install"}' | \
  6. dpkg --set-selections
  7. # dselect --expert # reinstall system, de-select as needed

6.3.5 Восстановление системы после сбоя каталога /var

Потому что каталог /var содержит часто обновляемые данные, такие как почта, он подвержен различного рода порче. Выделение его на независящий раздел жесткого диска ограничивает риск. Если сбой все таки произошел, то для восстановления Вашей Debian системы Для вас пригодится вернуть и этот каталог.

Получите скелет содержимого каталога /var от малой рабочей системы Debian, основанной на той же либо более старой версии Debian, к примеру таковой, var.tar.gz, и расположите его в корневой каталог сломанной системы. Дальше:

Bash:
  1. # cd /
  2. # mv var var-old # если все таки что-то полезное осталось
  3. # tar xvzf var.tar.gz # используйте скелет от Woody
  4. # aptitude # либо dselect

Это должно воссоздать рабочую систему. Вы сможете облегчить восстановление инфы о избранных пакетах, используя прием из раздела Восстановление инфы о избранных пакетах, раздел 6.3.4. ([FIXME]: This procedure needs more experiments to verify.)

6.3.6 Установка пакета в систему, которая не загружается

Загрузите Linux со спасательного диска/дискеты Debian либо альтернативного раздела мультизагрузочной Linux-системы. See Booting the system, раздел 8.1. Подмонтируйте незагружающуюся систему к каталогу /target и используйте у dpkg /hdbk/root-режим установки.

Bash:
  1. # dpkg --root /target -i имя_пакета.deb

Потом настройте пакеты и исправьте трудности.

Меж иным, если предпосылкой обычной загрузки является нарушенный загрузчик lilo, Вы сможете загрузить систему с внедрением стандартного спасательного диска Debian. На загрузочное приглашение boot: введите (предполагается, что корневой раздел Вашей Linux-системы - /dev/hda12, что необходимо войти на 3-ий уровень выполнения системы):

Bash:
  1. boot: rescue root=/dev/hda12 3

После чего Вы загружаете фактически на сто процентов функционирующую системы на ядре с гибкого диска. (может быть, при загрузке будут некие препядствия с отсутствием поддержки неких способностей в ядре либо каких-то модулей).

6.3.7 Что делать, если команда dpkg не работает

Неработоспособность программки dpkg приводит к невозможности установки хоть какого .deb файла. Последующая процедура поможет Для вас выйти из схожей ситуации. (в последующей команде можно поменять "links" на Ваш возлюбленный браузер)

Bash:
  1. $ links http://http.us.debian.org/debian/pool/main/d/dpkg/
  2. ... скачиваем пакет dpkg_версия_архитектура.deb
  3. $ su
  4. password: *****
  5. # ar x dpkg_version_ar/hdbk/.deb
  6. # mv data.tar.gz /data.tar.gz
  7. # cd /
  8. # tar xzfv data.tar.gz

Для архитектуры i386 также можно использовать последующий адресок: http://packages.debian.org/dpkg.

6.4 Нирвана в командах Debian

Осознавшие смысл этих команд спасутся от нескончаемых мучений ада обновлений и достигнут нирваны в Debian.

6.4.1 Информация о файле

Чтоб отыскать пакет, к которому некоторый файл принадлежит, сделайте:

Bash:
  1. $ dpkg {-S|--sear/hdbk/} эталон # отыскать слово эталон в установленных пакетах
  2. $ zgrep -e эталон /local/copy/of/debian/woody/Contents-i386.gz
  3. #... отыскать эталон (название файла) в архиве Debian

Либо используйте специально созданную для этого команду:

Bash:
  1. # apt-get install dlocate
  2. $ dlocate имя_файла # более стремительная кандидатура командам dpkg -L и dpkg -S
  3. ...
  4. # apt-get install auto-apt # инструментарий для установки пакетов по запросу
  5. # auto-apt update # сделать базу данных для auto-apt
  6. $ auto-apt sear/hdbk/ эталон # поиск эталона во всех пакета, установленных и нет.

6.4.2 Информация о пакете

Поиск и вывод инфы из архива пакетов. Удостоверьтесь, что система APT настроена на соответственный архив(файл /etc/apt/sources.list).

Если Вы желаете узреть, как пакеты установлены из дистрибутивов testing/unstable, пользуйтесь командой apt-ca/hdbk/e policy— очень комфортно.

Bash:
  1. # apt-get /hdbk/eck # обновить кэш и проверить его на предмет сломанных пакетов
  2. $ apt-ca/hdbk/e sear/hdbk/ эталон # поиск пакета по текстовому эталону
  3. $ apt-ca/hdbk/e policy эталон # информация по пакету priority/dists
  4. $ apt-ca/hdbk/e show -a эталон # показать описание пакета во всех дистрибутивах
  5. $ apt-ca/hdbk/e showsrc эталон # показать описание пакетов с начальным текстом
  6. $ apt-ca/hdbk/e showpkg эталон # отладочная информация по пакету
  7. # dpkg --audit|-C # поиск неполностью установленных пакетов
  8. $ dpkg {-s|--status} пакет ... # описание установленного пакета
  9. $ dpkg -l пакет ... # вывести статус установленного пакета (по одной строке на пакет)
  10. $ dpkg -L пакет ... # вывести перечень файлов, установленных пакетом

Команда apt-ca/hdbk/e showsrc не заявлена для релиза Woody, но она работает:)

Вы также сможете отыскать информацию по пакету в последующих файлах (я использую mc для их просмотра):

Bash:
  1. /var/lib/apt/lists/*
  2. /var/lib/dpkg/available

Сопоставление последующих файлов дает информацию о том, что все-таки вышло в последний сеанс установки.

Bash:
  1. /var/lib/dpkg/status
  2. /var/backups/dpkg.status*

6.4.3 Автоматическая установка с помощью APT

Глава Шесть - Управление пакетами в Debian
Для автоматической установки добавьте последующую строчку в файл /etc/apt/apt.conf:

Bash:
  1. Dpkg::Options {"--force-confold";}

Это эквивалентно запуску команды apt-get -q -y packagename.

Потому что на все вопросы дается утвердительный ответ "да", то время от времени это может вызвать задачи, потому используйте эту возможность с осторожностью. Смотрите странички apt.conf(5) и dpkg(1).

Позднее Вы сможете повтороно изменять хоть какой определенный пакет методом Повторное конфигурирование установленных пакетов, раздел 6.4.4.

6.4.4 Повторное конфигурирование установленных пакетов

Используйте последующие команды для повторного конфигурирования хоть какого уже установленного пакета.

Bash:
  1. # dpkg-reconfigure --priority=medium пакет [...]
  2. # dpkg-reconfigure --all # повторно конфигурирвоать все пакеты
  3. # dpkg-reconfigure locales # генерировать дополнительные локали
  4. # dpkg-reconfigure --p=low xserver-xfree86 # повторно настроить X-сервер

Do this for debconf if you need to /hdbk/ange the debconf dialog mode permanently.

Некие программки идут со особыми настроечными скриптами.

Bash:
  1. apt-setup - делает перечень /etc/apt/sources.list
  2. install-mbr - устанавливает менеджер главной загрузочной записи
  3. tzconfig - устанавливает временную зону
  4. gpmconfig - настроить бес мыши gpm
  5. eximconfig - настроить Exim (MTA)
  6. texconfig - настроить TeTeX
  7. apa/hdbk/econfig - настроить Apa/hdbk/e (httpd)
  8. cvsconfig - настроить CVS
  9. sndconfig - настроить звук
  10. ...
  11. update-alternatives - set default command, e.g., vim as vi
  12. update-rc.d - System-V init script management
  13. update-menus - Debian menu system
  14. ...

6.4.5 Операции remove и purge с пакетами

Удаление пакета с сохранением его конфигурации:

Bash:
  1. # apt-get remove пакет ...
  2. # dpkg --remove пакет ...

Удаление пакета, включая его конфигурацию:

Bash:
  1. # apt-get remove --purge пакет ...
  2. # dpkg --purge пакет ...

6.4.6 Удержание старенькых пакетов

К примеру, удержание пакетов libc6 и libc6-dev при работе с командами dselect и apt-get -u upgrade package может быть выполнено так:

Bash:
  1. # e/hdbk/o -e "libc6 hold\nlibc6-dev hold" | dpkg --set-selections

Но, для команды apt-get -u install пакет этот "hold" не будет помехой. Для того, чтоб удержать пакет от обновления методом автоматического отката в командах apt-get -u upgrade пакет либо apt-get -u dist-upgrade, добавьте последующие строчки в файл /etc/apt/preferences:

Bash:
  1. Package: libc6
  2. Pin: release a=stable
  3. Pin-Priority: 2000

Тут элемент "Package:" не может использовать запись вида "libc6*".

Если Для вас необходимо удержать все бинарные пакеты, связанные с пакетом с начальными текстами glibc в синхронном состоянии, Для вас необходимо перечислить всех их тут очевидным образом.

Последующая команда выведет всех удержанные от обновления пакеты:

Bash:
  1. dpkg --get-selections "*"|grep -e "hold$"

6.4.7 Система на консистенции stable/testing/unstable

Команда apt-show-versions выводит перечень версий доступных пакетов по дистрибутивам.

Bash:
  1. $ apt-show-versions | fgrep /testing | wc
  2. ... как много пакетов мы имеет в testing
  3. $ apt-show-versions -u
  4. ... перечень пакетов, подлежащих обновлению
  5. $ apt-get install `apt-show-versions -u -b | fgrep /unstable`
  6. ... обновляет пакеты из unstable на их более новые версии

6.4.8 Удаление файлов кэшированных пакетов

В процессе установки через APT в каталоге /var/ca/hdbk/e/apt/ar/hdbk/ives кэшируются файлы пакетов, и их можно удалить.

Bash:
  1. # apt-get autoclean # удаляет только неиспользованные файлы пакетов
  2. # apt-get clean # удаляет все файлы из кэша

6.4.9 Запись/копирование конфигурации системы

Для сотворения локальной копии перечня состояния избранных пакетов сделайте:

Bash:
  1. # debconf-get-selections > debconfsel.txt
  2. # dpkg --get-selections "*" >мои_выбранные_пакеты # либо используйте \* заместо *

Внедрение "*" приводит к помещению в файл мои_выбранные_пакеты записей о пакетах, подлежащие удалению ("purge").

Вы сможете перенести этот файл на другой компьютер и установить по нему системы:

Bash:
  1. # dselect update
  2. # debconf-set-selections < debconfsel.txt
  3. # dpkg --set-selections <мои_выбранные_пакеты
  4. # apt-get -u dselect-upgrade # либо dselect install

6.4.10 Портирование пакета в систему на базе stable

Для частичного обновления системы на базе stable нужно пересобрать пакет в окружении stable системы, используя соответственный пакет с начальным текстом. Это дозволит избежать огромного количества обновлений пакетов, от которых устанавливаемый пакет зависит. Во-1-х, добавьте последующие записи в файл to /etc/apt/sources.list:

Bash:
  1. deb-src http://http.us.debian.org/debian testing \
  2. main contrib non-free
  3. deb-src http://http.us.debian.org/debian unstable \
  4. main contrib non-free

Тут любая запись deb-src разбита на две строчки для удобства показа, но в файле sources.list такое разбиение на строчки неприемлимо.

Дальше получаем начальный текст и собираем пакет:

Bash:
  1. $ apt-get update # обновляем кэш перечня пакетов
  2. $ apt-get source пакет
  3. $ dpkg-source -x пакет.dsc
  4. $ cd пакет-версия
  5. ... изучаем требующиеся пакеты (зависимости Build-depends в .dsc файле) и
  6. устанавливаем их также. Для вас также пригодится пакет "fakeroot".

  7.  
  8. $ dpkg-buildpackage -rfakeroot
  9.  
  10. ...либо (без сигнатуры)
  11. $ dpkg-buildpackage -rfakeroot -us -uc # если необходимо, позднее воспользуйтесь "debsign"
  12.  
  13. ...Потом для установки пакетов исполняем
  14. $ su -c "dpkg -i имя_файла_пакета.deb"

Обычно необходимо установить несколько пакетов с суффиком "-dev" для ублажения зависимостей пакета. Программка debsign находится в пакете devscripts. Программка auto-apt способна упростить ублажение таких зависимостей.

Используйте программку fakeroot, чтоб не заниматься сборкой пакетов под root.

В Woody эти вопросы с зависимостями могут быть облегчены. К примеру, дл компиляции пакета pine, который поставляется исключительно в виде начального текста, сделайте:

Bash:
  1. # apt-get build-dep pine
  2. # apt-get source -b pine

6.4.11 Local package ar/hdbk/ive

In order to create a local package ar/hdbk/ive whi/hdbk/ is compatible with APT and the dselect system, Packages needs to be created and package files need to be populated in a particular directory tree.

A local deb repository similar to an official Debian ar/hdbk/ive can be мейд in this way:

Bash:
  1. # apt-get install dpkg-dev
  2. # cd /usr/local
  3. # install -d pool # physical packages are located here
  4. # install -d dists/unstable/main/binary-i386
  5. # ls -1 pool | sed 's/_.*$/ priority section/' | uniq > override
  6. # editor override # adjust priority and section
  7. # dpkg-scanpackages pool override /usr/local/ \
  8. > dists/unstable/main/binary-i386/Packages
  9. # cat > dists/unstable/main/Release << EOF
  10. Ar/hdbk/ive: unstable
  11. Version: 3.0
  12. Component: main
  13. Origin: Local
  14. Label: Local
  15. Ar/hdbk/itecture: i386
  16. EOF
  17. # e/hdbk/o "deb file:/usr/local unstable main" \
  18. >> /etc/apt/sources.list

Alternatively, a quick-and-dirty local deb repository can be мейд:

Bash:
  1. # apt-get install dpkg-dev
  2. # mkdir /usr/local/debian
  3. # mv /some/where/package.deb /usr/local/debian
  4. # dpkg-scanpackages /usr/local/debian /dev/null | \
  5. gzip - > /usr/local/debian/Packages.gz
  6. # e/hdbk/o "deb file:/usr/local/debian ./" >> /etc/apt/sources.list

These ar/hdbk/ives can be remotely accessed by providing access to these directories through either HTTP or FTP methods and /hdbk/anging entries in /etc/apt/sources.list accordingly.

6.4.12 Convert or install an alien binary package

alien enables the conversion of binary packages provided in Redhat rpm, Stampede slp, Slackware tgz, and Solaris pkg file formats into a Debian deb package. If you want to use a package from another Linux distribution than the one you have installed on your system, you can use alien to convert it to your preferred package format and install it. alien also supports LSB packages.

6.4.13 Verify installed package files

debsums enables verification of installed package files against MD5 /hdbk/ecksums. Some packages do not have available MD5 /hdbk/ecksums. A possible temporary fix for sysadmins:

Bash:
  1. # cat >>/etc/apt/apt.conf.d/90debsums
  2. DPkg::Post-Install-Pkgs {"xargs /usr/bin/debsums -sg";};
  3. ^D

per Joerg Wendland joergland@debian.org (untested).

6.4.14 Optimized sources.list

In short, fancy efforts to create an optimized sources.list did not produce a significant improvement for me from a location in the USA. I manually /hdbk/ose a nearby site using apt-setup.

apt-spy creates sources.list automatically, based on latency and bandwidth. netselect-apt creates a more complete sources.list, but uses an inferior method of /hdbk/oosing the best mirror (ping time comparison).

Bash:
  1. # apt-get install apt-spy
  2. # cd /etc/apt ; mv sources.list sources.list.org
  3. # apt-spy -d testing -l sources.apt

6.5 Other Debian peculiarities

6.5.1 The dpkg-divert command

File diversions are a way of forcing dpkg not to install a file into its default location, but to a diverted location. Diversions can be used through the Debian package scripts to move a file away when it causes a conflict.

System administrators can also use a diversion to override a package's configuration file, or whenever some files (whi/hdbk/ aren't marked as conffiles) need to be preserved by dpkg, when installing a newer version of a package whi/hdbk/ contains those files (see Сохранение текущей конфигурации, раздел 2.2.4).

Bash:
  1. # dpkg-divert [--add] filename # add "diversion"
  2. # dpkg-divert --remove filename # remove "diversion"

It's usually a good idea not to use dpkg-divert unless it is absolutely necessary.

6.5.2 The equivs package

If you compile a program from source, it is best to make it into a real local debianized package (*.deb). Use equivs as a last resort.

Bash:
  1. Package: equivs
  2. Priority: extra
  3. Section: admin
  4. Description: Circumventing Debian package dependencies
  5. This is a dummy package whi/hdbk/ can be used to create Debian
  6. packages, whi/hdbk/ only contain dependency information.

6.5.3 Alternative commands

To make the command vin vim, use update-alternatives:

Bash:
  1. # update-alternatives --display vi
  2. ...
  3. # update-alternatives --config vi
  4. Selection Command
  5. -----------------------------------------------
  6. Один /usr/bin/elvis-tiny
  7. Два /usr/bin/vim
  8. *+ Три /usr/bin/nvi
  9.  
  10. Enter to keep the default[*], or type selection number: 2

Items in the Debian alternatives system are kept in /etc/alternatives as symlinks.

To set your favorite X Window environment, apply update-alternatives to /usr/bin/x-session-manager and /usr/bin/x-window-manager. For details, see Custom X sessions, раздел 9.4.5.1.

/bin/sh is a direct symlink to /bin/bash or /bin/dash. It's safer to use /bin/bash to be compatible with old Bashism-contaminated scripts but better discipline to use /bin/dash to enforce POSIX compliance. Upgrading to a 2.4 Linux kernel tends to set this to /bin/dash.

6.5.4 System-V init andnlevels

The defaultnlevel to boot into can be set in /etc/inittab.

Unlike other distributions, Debian makes the management ofnlevel completely the sysadmin's responsibility. Management of System-V style init on Debian is intended to be performed through update-rc.d scripts.

Starting /etc/init.d/name innlevel 1,2,3 and stopping in 4,5 with sequencing priority number 20 (normal) can be done by:

Bash:
  1. # update-rc.d name start 20 1 Два 3 . stop 20 4 5 .

Removing symbolic links while the script in init.d still exists can be done by:

Bash:
  1. # update-rc.d -f name remove

For editingnlevels, I /hdbk/eat.

I edit entries manually using the mv command at the shell prompt of mc while copying link entries using Alt-Enter. For example:

Bash:
  1. # mv S99xdm K99xdm # disable xdm (X display manager)

I even disable a daemon by inserting exit Нуль at the start of an init.d script as a quick hack.

These are conffiles after all.

6.5.5 Отключение неиспользующихся сервисов

Дистрибутив Debian серъезно относится к вопросам безопасности и ждет роль компетентного админа. Потому время от времени простота использования перебегает на 2-ой план, и многие сервисы идут с наивысшим уровнем безопасности, а сама система с наименьшим набором работающих сервисов после установки по дефлоту.

Если Вы имеете какие-то сомнения относительно сервисов (Exim, DHCP, ...), запустите команду ps aux либо проверьте содержимое файлов /etc/init.d/* и /etc/inetd.conf. Также проверьте файл /etc/hosts.deny подробнее в Restricting logins with PAM, раздел 9.2.1. Очень нужная команда pidof (смотрите pidof(8)).

С недавнешних пор в Debian система X11 не позволяет удаленные TCP/IP подключения. Смотрите Using X over TCP/IP, раздел 9.4.6. Проброс трафика системы X Window в тунеле SSH также запрещена.

Смотрите Connecting to a remote X server - ssh, раздел 9.4.8.

[


Osamu Aoki osamu#at#debian.org
Перевод Ильи В. Головко qref#at#yandex

Похожие статьи

  • Глава Три - Советы по установке системы Debian

    Официальная документация по установке Debian размещается по адресу http://www.debian.org/releases/stable/, и http://www.debian.org/releases/stable/installmanual. Версии документов, находящихся в...

  • Глава Два - Базы Debian

    Эта секция обеспечивает основную информацию по системе Debian для юзеров. За авторитетной информацией обращайтесь к документам: Управление по политике Debian Управление по созданию пакето...

  • Глава Четыре - Управление по Debian

    Эта секция поможет новеньким ориентироваться в мире Debian. Если Вы уже хотя бы незначительно использовали Unix-подобные операционные системы, то, возможно, знакомы со всем тем, о чем я тут пишу. Пожал...

  • Глава Пятнадцать - Support for Debian

    The following resources provide help, advice, and support for Debian. Try your best to use self-help resources before crying out loud in the mailing lists. :) Note that you can access a lot of doc...

  • Глава Один - Введение

    Этот Справочник по Debian дает широкий обзор системы Debian в виде управления юзера после установки. Предназначается для тех, кто не опасается работы в командной строке. Я предполагаю, что ч...

Теги:
Рейтинг: +18 Голосов: 291 1507 просмотров
Комментарии (0)

Нет комментариев. Ваш будет первым!

Найти на сайте: параметры поиска

Windows 7

Среда Windows 7 на первых порах кажется весьма непривычной для многих.

Windows 8

Если резюмировать все выступления Microsoft на конференции Build 2013.

Windows XP

Если Windows не может корректно завершить работу, в большинстве случаев это

Windows Vista

Если к вашему компьютеру подключено сразу несколько мониторов, и вы регулярно...