HOWTO Менеджер внешних носителей depack
Материал из Gentoo Linux Wiki
Содержание |
[править] Что это такое?
Исходные файлы пакетов Gentoo находятся в папке, определяемой переменной DISTDIR в файле /etc/make.globals. Обычным значением этой переменной является /usr/portage/distfiles. Иногда бывает неудобно хранить все исходные файлы в этой папке на жестком диске. Например когда ограничен доступ к интернету и исходные файлы заказываются на DVD, то нет смысла все их сбрасывать на диск (это порядка 40-50 Гб), или когда место на жестком диске ограничено.
Однако, в случае установки или переустановки какого-либо пакета (например, в случае изменения use флагов), команда emerge ищет исходные файлы именно в папке distfiles и, при их отсутствии, пытается получить их из интернета (реакция по умолчанию). Если доступ к интернету закрыт, то будет инициирована ошибка при отсутствии первого же файла и установка завершиться.
Одним из способов решения этой проблемы является копирование необходимых исходных файлов с внешних носителей в папку distfiles только на момент установки, установка пакета, очистка папки distfiles (при необходимости экономии места).
Программа depack является менеджером внешних носителей, содержащих исходные файлы gentoo, и предназначена для реализации такого решения.
[править] Установка и удаление
Для установки depack необходимо получить исходные файлы. ebuild для программы depack не включен в официальное дерево портежей, поэтому необходимо воспользоваться руководством Portage Overlay для правильного размещения файлов depack в системе. Затем надо установить depack стандартным для gentoo способом:
# emerge depack
Для удаления пакета необходимо выполнить стандартную команду:
# emerge --unmerge depack
[править] Использование
[править] Настройка локали
Сразу после установки depack автоматически настраивается на одну из следующих кодировок: koi8r, utf8, cp1251. В случае, если установленная кодировка отличается от указанной, то сообщения программы будут на английском языке.
Для добавления кодировки (или языка) необходимо сделать копию одного из файлов в папке /usr/share/depack/locale, перекодировать (перевести) его, a затем в файле /etc/depack/config присвоить переменной LOCALE имя этого файла. Например
LOCALE=koi8u
[править] База внешних носителей
Следующим шагом является создание базы носителей (далее по тексту - DVD). Каждому DVD в базе соответствует таблица, содержащая его список файлов. Для создания таблицы-описания DVD необходимо его смонтировать и выполнить команду создания таблицы-описания. Например, точкой монтирования является /mnt/dvd, DVD подписан как "2008-01 001", тогда команда
depack -C /mnt/dvd "2008-01 001"
создаст таблицу "2008-01 001", содержащую описание (список файлов) этого DVD.
Другие команды работы с базой носителей:
depack -L вывод списка таблиц базы
depack -D "table" удаление таблицы table из базы
depack -A <name> добавление таблицы описания носителя, определяемого файлом <name>.
[править] Список файлов пакета
Для вывода общего списка файлов, необходимых для установки какого-либо пакета, нужно выполнить команду
depack <package>
где <package> - имя нужного пакета. При этом выводятся все необходимые файлы, в том числе файлы пакетов, которые будут установлены как зависимости заданного пакета.
depack может вывести имена всех файлов, необходимых для выполнения команд
emerge --update --deep --newuse world emerge --update --deep --newuse system
Для этого вместо имени пакета необходимо ввести слова world или system соответственно:
depack world depack system
Вывод содержит три колонки:
- имя носителя, который содержит файл
- "+" если файл есть в папке /usr/portage/distfiles, "-" если такого файла нет
- имя файла
В случае, если файл не определен ни в одной таблице (отсутствует), то в 1-й колонке будет выведен текст <unknown>.
[править] Копирование исходных файлов
Для копирования файлов, нужных для установки заданного пакета, с DVD в папку /usr/portage/distfiles предназначена команда
depack -c -p <dvd> <package>
где <dvd> - точка монтирования DVD, <package> - имя пакета.
Если файлы пакета находятся на разных DVD, то эту команду надо выполнить для каждого диска. depack автоматически определяет наличие файлов на смонтированном диске и копирует только те, которые на нем присутствуют.
Чтобы каждый раз не указывать ключ -p <dvd>, можно определить переменную PATH_FILES в файле /etc/depack/config. Например, если точкой монтирования для DVD является /mnt/dvd, то
PATH_FILES=/mnt/dvd
тогда команда будет иметь вид
depack -c <package>
[править] Дополнительно
Полный список возможностей программы depack можно посмотреть на домашней странице программы depack.
