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

Вывод содержит три колонки:

  1. имя носителя, который содержит файл
  2. "+" если файл есть в папке /usr/portage/distfiles, "-" если такого файла нет
  3. имя файла

В случае, если файл не определен ни в одной таблице (отсутствует), то в 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.

Личные инструменты