[ назад ] [ Содержание ] [ 1 ] [ 2 ] [ 3 ] [ A ] [ вперед ]
Эта глава основывается на более старой версии текста английского оригинала. Проверьте английский вариант тоже.
Чтобы снизить нагрузку на репозитарии 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.
Использование chroot-метода предпочтительно для обеспечения стабильности системы и одновременно доступа к последним версиям программного обеспечения.
Хотя эта глава предназначена для использования на Woody-версии Debian, большая
часть информации также применима к Potato-версии (за исключением
apt_preferences(5)
и разделов, связанных с
/etc/apt/preferences
).
Если чтение всей документации разработчиков слишком утомительно для Вас, то сначала прочтите эту главу и потом наслаждайтесь всей мощью системы Debian, используя дистрибутивы testing/unstable :-).
dselect – инструмент для управления пакетами с меню-подобным интерфейсом (высокоуровневый инструмент) dpkg – инсталлятор пакетов (основная утилита для работы с файлами-пакетами) apt-get – инсталлятор пакетов (утилита для работами с репозитариями пакетов, интерфейс командной строки к системе APT) tasksel – инсталлятор задач (набора пакетов) aptitude – инсталлятор пакетов (пакеты & задачи, интерфейс к APT на базе ncurses) deity – альтернатива ncurses-интерфейса к APT 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
имеет опцию для
автоматической установки всех пакетов, выбираемых этими видами зависимостей.
apt-cache - проверка локального кэша пакетов dpkg-reconfigure - повторная конфигурация уже установленного пакета (если он использует debconf) dpkg-source - управляет исходными файлами пакета dpkg-buildpackage - aвтоматизирует сборку пакета ...
Вы можете установить набор пакетов, называемых задачей, установить пакеты по одному или обновить систему, используя инструменты управления пакетами, описанные ниже .
tasksel
или aptitude
Программа tasksel
является Дебиановским Установщиком
Задач, который используется при установке системы в упрощенном
"simple" режиме.
Когда Вам в системе нужна некоторая функциональность, которая реализуется
множеством пакетов, использование tasksel
- самый лучший способ
это сделать. Последовательность команд должна быть такой:
# dselect update # tasksel
Программа aptitude
также предлагает доступ к задачам. Но
она не только дает Вам возможность выбрать для установки задачу, но и
позволяет выборочно через меню отменить установку некоторых пакетов из состава
задачи.
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-версии, раздел 2.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. [1]
Package: * Pin: release a=stable Pin-Priority: 500 Package: * Pin: release a=testing Pin-Priority: 600 Package: * Pin: release a=unstable Pin-Priority: 50
dselect
После старта программа dselect
автоматически выбирает все пакеты с
приоритетами "Required" (требующиеся), "Important" (важные)
и "Standard" (стандартные). В системе Potato некоторые большие
пакеты вроде teTex или Emacs попадали в этот список, и самым лучшим был их
пропуск при начальной установке системы путем ручного снятия отметки
соответствущих пакетов (нажатие клавиши `_'). В Woody же эти пакеты уже
помечены приоритетом "Optional"" (опициональный).
Программа dselect
имеет несколько необычный интерфейс
пользователя. Существует четыре несколько странных команды (регистр букв
важен!):
Клавиша Действие Q Выход. Подтвердить текущий выбор пакетов и выйти из программы. (не принимать во внимание зависимости) R Вернуть все назад! Я не имел это ввиду. D Проклятье! Мне не волнует, что думает dselect. Просто сделай это! U установить все пакеты как рекомендуемые
При помощи D и Q Вы можете выбрать конфликтующие
пакеты (на свой страх и риск). С этими командами следует обращаться осторожно.
В настоящее время dselect
является достаточно продвинутым
инструментом с меню-интерфейсом, который предлагает тонкий контроль над выбором
пакетов, в частности, по зависимостям suggests (предлагает) и
recommends (рекомендует).
Для снижения "разговорчивости" программы добавьте в файл
/etc/dpkg/dselect.cfg
строку с опцией "expert". Для
медленных машин Вы можете запускать dselect
на другой более
быстрой машине для поиска нужных пакетов, а на медленной машине уже
использовать apt-get install для их установки.
dselect
не дает доступ к пакетам, которые не preferred by the
Pin-Priority.
aptitude
aptitude
- это новый инстраллятор пакетов с меню-интерфейсом,
похожий на dselect
. Он также может использоваться как
альтернативна консольной команде apt-get
. Изучите страницу
aptitude(1)
.
Программа aptitude
обрабатывает одно-клавишные команды, вводимые в
нижнем регистре
Клавиша Действие F10 Меню ? Помощь по клавишами управления u Обновить информацию об доступных пакетах в репозитарии g Скачать и установить выбранные пакеты q Выйти из текущего экрана с сохранением изменений x Выйти без сохранения изменений Enter Просмотр информации о пакете
Программа aptitude
опционально может автоматически устанавливать
пакеты, основываясь на зависимостях не только depends, но
recommends и suggests. Вы можете изменять ее
поведение, выбрав в меню F10 -> Options -> Dependency
handling.
Программа aptitude
предлагает доступ ко всем версиям пакета.
apt-cache
и 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-cache policy foo bar ...
Проверяет статус пакетов foo bar ....
apt-cache 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 в режим по умолчанию:
$ cat >> /etc/apt/apt.conf << . // Всегда показывать пакеты для обновления (-u) APT::Get::Show-Upgraded "true"; .
Используйте опцию -s для имитации обновления без выполнения каких-либо действительных операций.
Depending on your preference for a flavor of Debian to track, you can change
the sample /etc/apt/preferences
in Установка системы APT - нет перевода!!!!, раздел 3.2.2
to fit your needs:
track stable: change Pin-Priority of testing to 50 track testing: keep settings as shown above track testing(unstable): change Pin-Priority of unstable to 500 track unstable(testing): change Pin-Priority of unstable to 800
A guideline for the choice 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
which 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 hand,
preferences.stable
forces all packages to be downgraded to
stable.
Чтобы откатить все пакеты до уровня stable, отредактируйте файл
/etc/apt/preferences
следующим образом:
Package: * Pin: release a=stable Pin-Priority: 1001
и запустите команду "apt-get upgrade", которая вызовет принудительный откат из-за значения Pin-priority > 1000. Нужно предупредить, что могут возникнуть небольшие накладки с зависимостями.
/etc/apt/preferences
В примере файла /etc/apt/preferences
, представленного в разделе Установка системы APT - нет перевода!!!!, раздел 3.2.2,
строка "Package: *" в первой строчке означает, что эта секция
применяется ко всем пакетам. Вы можете использовать имя пакета вместо
"*" для указания значения Pin-Priority этого пакета.
Во второй строчке запись "Pin: release a=stable" означает, что
apt-get
получает файл Packages.gz
из архива Debian, у
которого в файле Release
есть строка "Archive: 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
следующим образом:
# echo 'APT::Default-Release "testing";' >> /etc/apt/apt.conf
Опция --target-release в командой строке и установки в файле
/etc/apt/apt.conf
имеют больший приоритет установок в файле
/etc/apt/preferences
. Будьте внимательны с этим побочным эффектом
при работе с файлом /etc/apt/preferences
.
Обладая этими знаниями, Вы можете пребывать в вечном "обновлении" :-)
Если у Вас возникли проблемы с определенным пакетом, исследуйте следующие сайты
перед тем, как обращаться за помощью или оформлять отчет об ошибке. (страницы
одинаково хорошо будут выглядеть в браузерах lynx
,
links
и w3m
):
$ lynx http://bugs.debian.org/ $ lynx http://bugs.debian.org/имя-пакета # если известно имя пакета $ lynx http://bugs.debian.org/номер-ошибки # если известен номер ошибки
Зайдите на Google (www.google.com) для поиска слов, включив фразу "site:debian.org".
Если что-то не ясно, изучите замечательное руководство. Установите переменную окружения CDPATH следующим образом:
export CDPATH=.:/usr/local:/usr/share/doc
и наберите
$ cd ИмяПакета $ pager README.Debian # если файл существует $ mc
Проблемы с зависимостями пакетов могут случаться при обновлениях в unstable/testing, описанных в Обновление системы Debian, раздел 2.3. Чаще всего это случается потому, что обновляемый пакет имеет зависимости, которые нельзя удовлетворить. Подобные проблемы решаются так:
# apt-get dist-upgrade
Если это не работает, то повторяйте одну из следующих команд до разрешения проблемы:
# apt-get upgrade -f # продолжение обновления (upgrade) даже после возникновения ошибки ... или # apt-get dist-upgrade -f # продолжение обновления дистрибутива (dist-upgrade) даже после возникновения ошибки
Некоторые действительно неправильные скрипты могут привести к постоянной
проблеме. Обычно лучше разрешать подобные ситуации, изучив файлы
/var/lib/dpkg/info/packagename.{post,pre}{inst,rm}
скриптов сбойного пакета и затем запустить команду:
# dpkg --configure -a # настраивает все ненастроенные пакеты
Если скрипт жалуется на отсутствие какого-нибудь конфигурационного файла,
поищите его в /etc
. Если он существует, но с расширением
.new (или подобным), измените его имя на имя без этого расширения
(команда mv
).
Проблема зависимостей пакетов может возникать при установке пакета в смесь unstable/testing. Существует несколько путей обойти зависимости.
# apt-get install -f package # не принимать во внимание сломанные зависимости
Альтернативный метод исправить эту ситуацию заключается в использовании пакета
equivs
. Смотрите
/usr/share/doc/equivs/README.Debian
.
dpkg
В крайних случаях восстановление неработоспособной программы
dselect
(APT) на серьезно поврежденной системе может быть
выполнено при помощи программы dpkg
без использования APT:
# cd /var/cache/apt/archives # dpkg -i libc6* libdb2* perl* # dpkg -i apt* dpkg* debconf* # dpkg -i * # до тех пор, пока ошибки не перестанут появляться
Если какого-либо пакета нет, получите его с используя:
# mc # используйте "FTP-соединение", указав Debian FTP-сервер
Стоит заметить, что с недавнего времени сами файлы пакетов на HTTP/FTP-сервере
располагаются в новом каталоге /pool
, а не в классическом месте -
каталоге /dist
.
Затем устанавливаем пакеты:
# dpkg -i /var/cache/apt/archives/packagefile.deb
Сломанные зависимости или исправляем, или поступаем таким образом:
# dpkg --ignore-depends=пакет1,... -i имя_файла_пакета.deb # dpkg --force-depends -i имя_файла_пакета.deb # dpkg --force-depends --purge пакет # dpkg --force-confmiss -i имя_файла_пакета.deb # Установка отсутствующих conf-файлов
Если файл /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/
:
# ls /usr/share/doc | \ grep -v [A-Z] | \ grep -v '^texmf$' | \ grep -v '^debian$' | \ awk '{print $1 " install"}' | \ dpkg --set-selections # dselect --expert # reinstall system, de-select as needed
/var
Так как каталог /var
содержит регулярно обновляемые данные, такие
как почта, он подвержен разного рода порче. Выделение его на независимый
раздел жесткого диска ограничивает риск. Если сбой все же произошел, то для
восстановления Вашей Debian системы Вам понадобится восстановить и этот
каталог.
Получите скелет содержимого каталога /var
от минимальной рабочей
системы Debian, основанной на той же или более древней версии Debian, например
такой,
, и
поместите его в корневой каталог сломанной системы. Далее:
var.tar.gz
# cd / # mv var var-old # если все же что-то полезное осталось # tar xvzf var.tar.gz # используйте скелет от Woody # aptitude # или dselect
Это должно воссоздать рабочую систему. Вы можете облегчить восстановление информации о выбранных пакетах, используя прием из раздела Восстановление информации о выбранных пакетах, раздел 3.3.4. ([FIXME]: This procedure needs more experiments to verify.)
Загрузите Linux со спасательного диска/дискеты Debian или альтернативного
раздела мультизагрузочной Linux-системы. Подмонтируйте незагружающуюся систему
к каталогу /target
и используйте у dpkg
chroot-режим
установки.
# dpkg --root /target -i имя_пакета.deb
Затем настройте пакеты и исправьте проблемы.
Между прочим, если причиной нормальной загрузки является нарушенный загрузчик
lilo
, Вы можете загрузить систему с использованием стандартного
спасательного диска Debian. На загрузочное приглашение boot: введите
(подразумевается, что корневой раздел Вашей Linux-системы -
/dev/hda12
, что нужно войти на третий уровень исполнения системы):
boot: rescue root=/dev/hda12 3
После этого Вы загружаете практически полностью функционирующую системы на ядре с гибкого диска. (возможно, при загрузке будут некоторые проблемы с отсутствием поддержки некоторых возможностей в ядре или каких-либо модулей).
dpkg
не работает
Неработоспособность программы dpkg
приводит к невозможности
установки любого .deb файла. Следующая процедура поможет Вам
выйти из подобной ситуации. (в следующей команде можно заменить
"links" на Ваш любимый браузер)
$ links http://http.us.debian.org/debian/pool/main/d/dpkg/ ... скачиваем пакет dpkg_версия_архитектура.deb $ su password: ***** # ar x dpkg_version_arch.deb # mv data.tar.gz /data.tar.gz # cd / # tar xzfv data.tar.gz
Для архитектуры i386 также можно использовать следующий адрес: http://packages.debian.org/dpkg.
Осознавшие смысл этих команд спасутся от вечных мучений ада обновлений и достигнут нирваны в Debian.
Чтобы найти пакет, к которому некий файл принадлежит, сделайте:
$ dpkg {-S|--search} образец # найти слово образец в установленных пакетах $ zgrep -e образец /local/copy/of/debian/woody/Contents-i386.gz #... найти образец (имя файла) в архиве Debian
Или используйте специально предназначенную для этого команду:
# apt-get install dlocate $ dlocate имя_файла # более быстрая альтернатива командам dpkg -L и dpkg -S ... # apt-get install auto-apt # инструментарий для установки пакетов по запросу # auto-apt update # создать базу данных для auto-apt $ auto-apt search образец # поиск образца во всех пакета, установленных и нет.
Поиск и вывод информации из архива пакетов. Убедитесь, что система APT
настроена на соответствующий архив(файл /etc/apt/sources.list
).
Если Вы хотите увидеть, как пакеты установлены из дистрибутивов
testing/unstable, пользуйтесь командой
apt-cache policy— очень удобно.
# apt-get check # обновить кэш и проверить его на предмет сломанных пакетов $ apt-cache search образец # поиск пакета по текстовому образцу $ apt-cache policy образец # информация по пакету priority/dists $ apt-cache show -a образец # показать описание пакета во всех дистрибутивах $ apt-cache showsrc образец # показать описание пакетов с исходным текстом $ apt-cache showpkg образец # отладочная информация по пакету # dpkg --audit|-C # поиск неполностью установленных пакетов $ dpkg {-s|--status} пакет ... # описание установленного пакета $ dpkg -l пакет ... # вывести статус установленного пакета (по одной строчке на пакет) $ dpkg -L пакет ... # вывести список файлов, установленных пакетом
Команда apt-cache showsrc не заявлена для релиза Woody, но она работает:)
Вы также можете найти информацию по пакету в следующих файлах (я использую mc для их просмотра):
/var/lib/apt/lists/* /var/lib/dpkg/available
Сравнение следующих файлов дает информацию о том, что же произошло в последний сеанс установки.
/var/lib/dpkg/status /var/backups/dpkg.status*
Для автоматической установки добавьте следующую строку в файл
/etc/apt/apt.conf
:
Dpkg::Options {"--force-confold";}
Это эквивалентно запуску команды apt-get -q -y
packagename. Так как на все вопросы дается утвердительный
ответ "да", то иногда это может вызвать проблемы, поэтому используйте
эту возможность с осторожностью. Смотрите страницы apt.conf(5)
и
dpkg(1)
.
Позже Вы можете повтороно конфигурировать любой конкретный пакет путем Повторное конфигурирование установленных пакетов, раздел 3.4.4.
Используйте следующие команды для повторного конфигурирования любого уже установленного пакета.
# dpkg-reconfigure --priority=medium пакет [...] # dpkg-reconfigure --all # повторно конфигурирвоать все пакеты # dpkg-reconfigure locales # генерировать дополнительные локали # dpkg-reconfigure --p=low xserver-xfree86 # повторно настроить X-сервер
Do this for debconf
if you need to change the debconf
dialog mode permanently.
Некоторые программы идут со специальными настроечными скриптами.
apt-setup - создает список /etc/apt/sources.list install-mbr - устанавливает менеджер главной загрузочной записи tzconfig - устанавливает временную зону gpmconfig - настроить демон мыши gpm eximconfig - настроить Exim (MTA) texconfig - настроить TeTeX apacheconfig - настроить Apache (httpd) cvsconfig - настроить CVS sndconfig - настроить звук ... update-alternatives - set default command, e.g., vim as vi update-rc.d - System-V init script management update-menus - Debian menu system ...
Удаление пакета с сохранением его конфигурации:
# apt-get remove пакет ... # dpkg --remove пакет ...
Удаление пакета, включая его конфигурацию:
# apt-get remove --purge пакет ... # dpkg --purge пакет ...
Например, удержание пакетов libc6
и libc6-dev
при
работе с командами dselect
и apt-get -u upgrade
package может быть выполнено так:
# echo -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
:
Package: libc6 Pin: release a=stable Pin-Priority: 2000
Здесь элемент "Package:" не может использовать запись
вида "libc6*". Если Вам нужно удержать все бинарные
пакеты, связанные с пакетом с исходными текстами glibc
в
синхронном состоянии, Вам нужно перечислить всех их здесь явным образом.
Следующая команда выведет всех удержанные от обновления пакеты:
dpkg --get-selections "*"|grep -e "hold$"
Команда apt-show-versions
выводит список версий доступных пакетов
по дистрибутивам.
$ apt-show-versions | fgrep /testing | wc ... как много пакетов мы имеет в testing $ apt-show-versions -u ... список пакетов, подлежащих обновлению $ apt-get install `apt-show-versions -u -b | fgrep /unstable` ... обновляет пакеты из unstable на их более новые версии
В процессе установки через APT в каталоге /var/cache/apt/archives
кэшируются файлы пакетов, и их можно удалить.
# apt-get autoclean # удаляет только неиспользованные файлы пакетов # apt-get clean # удаляет все файлы из кэша
Для создания локальной копии списка состояния выбранных пакетов сделайте:
# debconf-get-selections > debconfsel.txt # dpkg --get-selections "*" >мои_выбранные_пакеты # или используйте \* вместо *
Использование "*" приводит к помещению в файл мои_выбранные_пакеты записей о пакетах, подлежащие удалению ("purge").
Вы можете перенести этот файл на другой компьютер и установить по нему системы:
# dselect update # debconf-set-selections < debconfsel.txt # dpkg --set-selections <мои_выбранные_пакеты # apt-get -u dselect-upgrade # или dselect install
Для частичного обновления системы на базе stable необходимо
пересобрать пакет в окружении stable системы, используя
соответствующий пакет с исходным текстом. Это позволит избежать большого
количества обновлений пакетов, от которых устанавливаемый пакет зависит.
Во-первых, добавьте следующие записи в файл to
/etc/apt/sources.list
:
deb-src http://http.us.debian.org/debian testing \ main contrib non-free deb-src http://http.us.debian.org/debian unstable \ main contrib non-free
Здесь каждая запись deb-src разбита на две строки для удобства
показа, однако в файле sources.list
такое разбиение на строки
недопустимо.
Далее получаем исходный текст и собираем пакет:
$ apt-get update # обновляем кэш списка пакетов $ apt-get source пакет $ dpkg-source -x пакет.dsc $ cd пакет-версия ... изучаем требующиеся пакеты (зависимости Build-depends в .dsc файле) и устанавливаем их также. Вам также понадобится пакет "fakeroot". $ dpkg-buildpackage -rfakeroot ...или (без сигнатуры) $ dpkg-buildpackage -rfakeroot -us -uc # если нужно, позже воспользуйтесь "debsign" ...Затем для установки пакетов выполняем $ su -c "dpkg -i имя_файла_пакета.deb"
Обычно нужно установить несколько пакетов с суффиком "-dev" для
удовлетворения зависимостей пакета. Программа debsign
находится в
пакете devscripts
. Программа auto-apt
способна
упростить удовлетворение таких зависимостей. Используйте программу
fakeroot
, чтобы не заниматься сборкой пакетов под root.
В Woody эти вопросы с зависимостями могут быть упрощены. Например, дл
компиляции пакета pine
, который поставляется только в виде
исходного текста, выполните:
# apt-get build-dep pine # apt-get source -b pine
In order to create a local package archive which 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 archive can be made in this way:
# apt-get install dpkg-dev # cd /usr/local # install -d pool # physical packages are located here # install -d dists/unstable/main/binary-i386 # ls -1 pool | sed 's/_.*$/ priority section/' | uniq > override # editor override # adjust priority and section # dpkg-scanpackages pool override /usr/local/ \ > dists/unstable/main/binary-i386/Packages # cat > dists/unstable/main/Release << EOF Archive: unstable Version: 3.0 Component: main Origin: Local Label: Local Architecture: i386 EOF # echo "deb file:/usr/local unstable main" \ >> /etc/apt/sources.list
Alternatively, a quick-and-dirty local deb repository can be made:
# apt-get install dpkg-dev # mkdir /usr/local/debian # mv /some/where/package.deb /usr/local/debian # dpkg-scanpackages /usr/local/debian /dev/null | \ gzip - > /usr/local/debian/Packages.gz # echo "deb file:/usr/local/debian ./" >> /etc/apt/sources.list
These archives can be remotely accessed by providing access to these
directories through either HTTP or FTP methods and changing entries in
/etc/apt/sources.list
accordingly.
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.
debsums
enables verification of installed package files against
MD5 checksums. Some packages do not have available MD5 checksums. A possible
temporary fix for sysadmins:
# cat >>/etc/apt/apt.conf.d/90debsums DPkg::Post-Install-Pkgs {"xargs /usr/bin/debsums -sg";}; ^D
per Joerg Wendland joergland@debian.org
(untested).
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 (which aren't marked as conffiles) need to
be preserved by dpkg
, when installing a newer version of a package
which contains those files.
# dpkg-divert [--add] filename # add "diversion" # dpkg-divert --remove filename # remove "diversion"
It's usually a good idea not to use dpkg-divert
unless it is
absolutely necessary.
equivs
packageIf 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.
Package: equivs Priority: extra Section: admin Description: Circumventing Debian package dependencies This is a dummy package which can be used to create Debian packages, which only contain dependency information.
To make the command vi
run vim
, use
update-alternatives
:
# update-alternatives --display vi ... # update-alternatives --config vi Selection Command ----------------------------------------------- 1 /usr/bin/elvis-tiny 2 /usr/bin/vim *+ 3 /usr/bin/nvi 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
.
/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
.
init
and runlevels
The default runlevel to boot into can be set in /etc/inittab
.
Unlike other distributions, Debian makes the management of runlevel 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
in runlevel 1,2,3 and
stopping in 4,5 with sequencing priority number 20 (normal) can be done by:
# update-rc.d name start 20 1 2 3 . stop 20 4 5 .
Removing symbolic links while the script in init.d
still exists
can be done by:
# update-rc.d -f name remove
For editing runlevels, I cheat. I edit entries manually using the
mv
command at the shell prompt of mc
while copying
link entries using Alt-Enter. For example:
# mv S99xdm K99xdm # disable xdm (X display manager)
I even disable a daemon by inserting exit 0 at the start of an
init.d
script as a quick hack. These are conffiles
after all.
Дистрибутив Debian серъезно относится к вопросам безопасности и ожидает участие компетентного администратора. Поэтому иногда простота использования переходит на второй план, и многие сервисы идут с наивысшим уровнем безопасности, а сама система с минимальным набором работающих сервисов после установки по умолчанию.
Если Вы имеете какие-то сомнения относительно сервисов (Exim, DHCP, ...),
запустите команду ps aux или проверьте содержимое файлов
/etc/init.d/*
и /etc/inetd.conf
. Также проверьте
файл /etc/hosts.deny
. Очень полезная команда pidof
(смотрите pidof(8)
).
С недавних пор в Debian система X11 не позволяет удаленные TCP/IP подключения. Проброс трафика системы X Window в тунеле SSH также запрещена.
[ назад ] [ Содержание ] [ 1 ] [ 2 ] [ 3 ] [ A ] [ вперед ]
Краткий справочник по Debian
CVS, Чтв 18. Янв 2007, 11:54:40 UTCosamu#at#debian.org
qref#at#yandex.ru