Когда мы запускаем apt-get update
, Ubuntu читает URL-адреса из /etc/apt/sources.list
и сохраняет информацию о пакете в /var/lib/apt/lists
.
Могу ли я настроить этот каталог? Без вреда /var/apt/lists
и /etc/apt/sources.list
. Когда я хочу установить пакет, используя apt-get, он будет читать информацию о пакете из определенного каталога (/custom/apt/lists
) вместо /var/lib/apt/lists
и обновлять из /custom/apt/sources.list
вместо /etc/apt/sources.list
.
Да, вы можете, две вещи, которые вы ищете:
/etc/apt/sources.list.d/*
равен Dir::Etc::SourceParts
. /etc/apt/sources.list
равен Dir::Etc::SourceList
/var/lib/apt/lists/
равен Dir::State::Lists
На странице руководства apt-get
их несколько. Пример использования всех из них:
apt-get update -o Dir::Etc::SourceParts "/some/path/with/lists/" -o Dir::Etc::SourceList "some.list" -o Dir::State::Lists "/custom/apt/lists"
Что я делаю, так это добавляю файл в /etc/apt/sources.list.d/
, указав только путь к папке, где находятся файлы deb (но это папка должна содержать файл с именем Packages
, сгенерированный dpkg-scanpackages
), затем apt update
, затем установите все необходимые мне пакеты из этой папки, а затем удалите файл из /etc/apt/sources.list.d/
еще раз и снова вызовите apt update
.
Это пример файла, который можно скопировать в /etc/apt/sources.list.d/
:
deb file:///path/to/where/your/deb/files/are/ ./
Проблема с этим подходом заключается в том, что вам нужно вызвать apt update
с флагами --allow-insecure-repositories --allow-unauthenticated
и вызов apt install
с флагом --allow-unauthenticated
.
Мне пришлось сделать это, чтобы создать сценарий, который рекурсивно загружает файлы .deb пакетов apt (и их зависимостей). Если вы хотите взглянуть, это соответствующий коммит, который реализует вышеизложенное: https://github.com/nblockchain/geewallet/commit/dea77d07c40dd63a82094c65635fdd73c7bfbcc4