Вопрос или проблема
Допустим, у меня есть эта строка в “/etc/fstab“:
/iso/apt.iso /mnt/apt iso9660 loop 0 0
И я выполняю эти команды от имени root:
mount --all
apt-cdrom add --no-mount --cdrom /mnt/apt
Я ожидал, что диск будет добавлен как источник APT, но ничего не происходит. Что не так?
ОБНОВЛЕНИЕ:
Я следовал этому совету, и теперь получаю это:
Использование точки монтирования CD-ROM /media/cdrom/
Идентификация.. [61c5dd7c11a32dc999e655c235cd698e-2]
Сканирование диска на наличие файлов индекса..
Найдено 0 индексов пакетов, 0 индексов источников, 0 индексов перевода и 0 подписей
W: Не удалось примонтировать '/dev/sr0' к '/media/cdrom/'
E: Не удается найти файлы пакета, возможно, это не диск Debian или неправильная архитектура?
Это происходит с изменениями в “/etc/apt/apt.conf” или без них.
вот что сработало для меня:
во-первых, строка в /etc/fstab
должна выглядеть так:
/iso/apt.iso /mnt/apt iso9660 user,loop 0 0
затем, с примонтированной точкой монтирования, выполните apt-cdrom
так:
apt-cdrom -m -d=/mnt/apt add
если apt все еще просит вставить диск, добавьте эти строки в apt.conf
Acquire::cdrom::mount "/mnt/apt";
APT::CDROM::NoMount;
Думаю, это тоже сработает для вас 🙂
Монтирование образа iso в каталог
mkdir /mnt/hp
mount -o loop /root/HPE_ProLiant_Value_Add_Software-10.80-1.iso /mnt/hp
apt-cdrom
анализирует содержимое каталога и создает записи в /etc/apt/sources.list
apt-cdrom --no-auto-detect --no-mount --cdrom /mnt/hp/ add
Записи выглядят так
deb cdrom:[HP Management Component Pack 10.80]/ bionic 10.80/non-free
deb cdrom:[HP Management Component Pack 10.80]/ stretch 10.80/non-free
deb cdrom:[HP Management Component Pack 10.80]/ xenial 10.80/non-free
Замените данные cdrom в записях на ссылку на точку монтирования, также мне пришлось добавить [trusted=yes]
, чтобы избежать проблем с устаревшими ключами
deb [trusted=yes] file:/mnt/hp/ bionic 10.80/non-free
deb [trusted=yes] file:/mnt/hp/ stretch 10.80/non-free
deb [trusted=yes] file:/mnt/hp/ xenial 10.80/non-free
Убедитесь, что ваш iso все еще примонтирован при использовании apt.
Ответ или решение
Чтобы добавить ISO-файл в качестве источника APT, необходимо выполнить несколько шагов. Эта задача может быть полезна, когда вы работаете с дистрибутивами Linux, такими как Debian или Ubuntu, и хотите добавить пакеты из локально сохраненного ISO-образа, например, на случай, когда отсутствует подключение к интернету.
Теория
Для того чтобы добавить ISO-файл как источник APT, существует последовательность действий, связанных с файловой системой и конфигурацией APT. Прежде всего, нужно правильно смонтировать ISO-файл. Вы можете использовать файл /etc/fstab
для автоматического монтирования, а также вручную монтировать образ применяя команду mount
. После успешного монтирования следует использовать apt-cdrom
для добавления образа в качестве источника репозиториев. Это нужно для обновления списка доступных пакетов и дальнейшей работы с ними.
Пример
Давайте разберем настройки файла /etc/fstab
, которые монтируют ISO на указанный путь. Предположим, у вас есть строка в /etc/fstab
следующего содержания:
/iso/apt.iso /mnt/apt iso9660 loop 0 0
Эта строка означает, что файл apt.iso
, находящийся в каталоге /iso
, будет монтирован на /mnt/apt
с файловой системой ISO 9660, используя устройственный файл loop
. Однако, если вы столкнулись с проблемами, вам стоит убедиться, что у вас есть возможность монтировать образы, не обладая правами суперпользователя. Для этого добавьте опцию user
:
/iso/apt.iso /mnt/apt iso9660 user,loop 0 0
После перезагрузки или выполнения mount -a
, ISO будет смонтирован.
После успешного монтирования используйте команду apt-cdrom
следующим образом:
apt-cdrom -m -d=/mnt/apt add
Флаг -m
говорит утилите не пытаться автоматически монтировать диск, так как вы это уже сделали вручную, а -d=/mnt/apt
указывает путь к монтированной директории.
Применение
В случае, если APT все еще просит вставить диск при использовании команды apt-cdrom
, может быть полезно изменить конфигурацию APT непосредственно через файл /etc/apt/apt.conf
. В нем вы можете задать:
Acquire::cdrom::mount "/mnt/apt";
APT::CDROM::NoMount;
Эти строки указывают APT на то, что не следует пытаться монтировать что-либо дополнительно, и что монтированная директория уже используется.
Затем, когда вы убедились, что команда apt-cdrom
отработала успешно и добавила записи в ваш файл /etc/apt/sources.list
, убедитесь, что эти записи корректны для использования с уже смонтированным ISO-образом. Обычно apt-cdrom
добавляет записи, начинающиеся с deb cdrom:
, однако вам понадобится изменить cdrom:
на file:/
, чтобы APT мог работать с локальным путем. Также стоит добавить trusted=yes
для избежания проблем с устаревшими ключами:
deb [trusted=yes] file:/mnt/apt/ bionic main
Эти изменения гарантируют, что при следующем обновлении списка пакетов, APT будет считывать данные из локального ISO-образа.
В заключение, при потребности использовать пакеты из ISO-образа без подключения к интернету, описанная последовательность действий обеспечит надежное и стабильное добавление локальных пакетов Debian в ваш список источников APT, что особенно полезно в корпоративной среде или при работе с критическими системами без интернет-доступа. Всегда проверяйте монтирование образа перед использованием APT, чтобы избежать ошибок доступа к файлам.