В составе большинства deb-пакетов содержатся данные, которые никогда не
понадобятся пользователю, например, файлы с переводами элементов интерфейса на
другие языки или документация. Начиная с версии 1.15.8 в dpkg появилась
возможность не устанавливать лишние данные.
Для контроля за тем, какую информацию установить, а какую нет, предусмотрены
две опции: --path-include=маска и --path-exclude=маска. В качестве маски могут
быть использованы любые glob-выражения, допустимые в shell (man glob).
Так как обычно для установки используются высокоуровневые утилиты, подобные
apt, вызывать dpkg вручную и задавать дополнительные опции не совсем удобно.
Поэтому логичнее изменить методику вызова dpkg в системе, создав
соответствующую инструкцию в каталоге /etc/dpkg/dpkg.cfg.d/.
Например, создадим файл etc/dpkg/dpkg.cfg.d/excludes, в котором зададим маски
для включаемых и исключаемых каталогов, на примере ограничения установки
локалей и системных руководств:
# Не устанавливаем локали за исключением русских:
path-exclude=/usr/share/locale/*
path-include=/usr/share/locale/ru/*
path-include=/usr/share/locale/locale.alias
# Не устанавливаем переводы системных руководств, за исключением перевода на русский язык
path-exclude=/usr/share/man/*
path-include=/usr/share/man/man[1-9]/*
path-include=/usr/share/man/ru*/*
Следует иметь в виду, что все ранее установленные части пакета, подпадающие под
маску исключения, будут удалены только после обновления пакета. Т.е. если
необходимо освободить место немедленно, не дожидаясь появления обновлений,
можно инициировать переустановку всех пакетов в системе:
aptitude reinstall
или
apt-get --reinstall install
|