Вопрос или проблема
Я пытаюсь настроить зеркало пакетов Ubuntu на локальном сервере для использования в локальной сети, которая не будет подключаться к интернету в течение длительных периодов времени. Я следовал инструкциям с нескольких сайтов, в основном с этого источника, который показывает, как использовать apt-mirror для этого. Я считаю, что настроил сервер правильно. Он скачал несколько гигабайт данных и сообщил о успешном завершении. Затем я настроил сервер nginx, и я могу зайти на сайт, используя мой IP адрес и видеть папку, папки dists и pool. В dists находится папка bionic. Затем я изменил файл /etc/apt/sources.list на моем клиентском компьютере и указал IP адрес моего сервера вместо сайтов-архивов Ubuntu. Вот как это выглядит сейчас:
# deb cdrom:[Ubuntu 18.04.1 LTS _Bionic Beaver_ - Release amd64 (20180725)]/ bionic main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://192.168.10.118/ubuntu/ bionic main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://192.168.10.118/ubuntu/ bionic-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://192.168.10.118/ubuntu/ bionic universe
deb http://192.168.10.118/ubuntu/ bionic-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://192.168.10.118/ubuntu/ bionic multiverse
deb http://192.168.10.118/ubuntu/ bionic-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://192.168.10.118/ubuntu/ bionic-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu bionic partner
# deb-src http://archive.canonical.com/ubuntu bionic partner
deb http://192.168.10.118/ubuntu bionic-security main restricted
deb http://192.168.10.118/ubuntu bionic-security universe
deb http://192.168.10.118/ubuntu bionic-security multiverse
Я также изменил файл mirror.list перед загрузкой, чтобы извлечь bionic, и в моей папке dists находится bionic, полный пакетов. Затем я выполнил sudo apt-get update и получил следующий вывод:
sudo apt-get update
Get:1 http://192.168.10.118/ubuntu bionic InRelease [242 kB]
Get:2 http://192.168.10.118/ubuntu bionic-updates InRelease [88.7 kB]
Get:3 http://192.168.10.118/ubuntu bionic-backports InRelease [74.6 kB]
Get:4 http://192.168.10.118/ubuntu bionic-security InRelease [83.2 kB]
Ign:5 http://192.168.10.118/ubuntu bionic/main i386 Packages
Get:6 http://192.168.10.118/ubuntu bionic/main amd64 Packages [1,019 kB]
Get:7 http://192.168.10.118/ubuntu bionic/main Translation-en [516 kB]
Get:8 http://192.168.10.118/ubuntu bionic/main amd64 DEP-11 Metadata [477 kB]
Get:9 http://192.168.10.118/ubuntu bionic/main DEP-11 48x48 Icons [118 kB]
Get:10 http://192.168.10.118/ubuntu bionic/main DEP-11 64x64 Icons [245 kB]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Hit:14 http://ppa.launchpad.net/teejee2008/ppa/ubuntu bionic InRelease
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Ign:33 http://dl.google.com/linux/chrome/deb stable InRelease
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Get:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages [9,156 B]
Ign:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages
Ign:43 http://192.168.10.118/ubuntu bionic/universe i386 Packages
Ign:44 http://192.168.10.118/ubuntu bionic/multiverse i386 Packages
Ign:5 http://192.168.10.118/ubuntu bionic/main i386 Packages
Ign:45 http://192.168.10.118/ubuntu bionic-updates/main i386 Packages
Ign:46 http://192.168.10.118/ubuntu bionic-updates/restricted i386 Packages
Ign:47 http://192.168.10.118/ubuntu bionic-updates/universe i386 Packages
Ign:48 http://192.168.10.118/ubuntu bionic-updates/multiverse i386 Packages
Get:49 http://dl.google.com/linux/chrome/deb stable Release [943 B]
Get:50 http://192.168.10.118/ubuntu bionic-backports/universe amd64 Packages [2,852 B]
Get:50 http://192.168.10.118/ubuntu bionic-backports/universe amd64 Packages [2,852 B]
Get:50 http://192.168.10.118/ubuntu bionic-backports/universe amd64 Packages [2,852 B]
Get:50 http://192.168.10.118/ubuntu bionic-backports/universe amd64 Packages [2,852 B]
Get:50 http://192.168.10.118/ubuntu bionic-backports/universe amd64 Packages [2,852 B]
Ign:50 http://192.168.10.118/ubuntu bionic-backports/universe amd64 Packages
Ign:56 http://192.168.10.118/ubuntu bionic-backports/universe i386 Packages
Ign:57 http://192.168.10.118/ubuntu bionic-backports/universe Translation-en
Get:58 http://192.168.10.118/ubuntu bionic-backports/universe amd64 DEP-11 Metadata [5,104 B]
Get:58 http://192.168.10.118/ubuntu bionic-backports/universe amd64 DEP-11 Metadata [5,104 B]
Get:58 http://192.168.10.118/ubuntu bionic-backports/universe amd64 DEP-11 Metadata [5,104 B]
Get:58 http://192.168.10.118/ubuntu bionic-backports/universe amd64 DEP-11 Metadata [5,104 B]
Get:58 http://192.168.10.118/ubuntu bionic-backports/universe amd64 DEP-11 Metadata [5,104 B]
Get:58 http://192.168.10.118/ubuntu bionic-backports/universe amd64 DEP-11 Metadata [5,104 B]
Get:58 http://192.168.10.118/ubuntu bionic-backports/universe amd64 DEP-11 Metadata [5,104 B]
Ign:58 http://192.168.10.118/ubuntu bionic-backports/universe amd64 DEP-11 Metadata
Ign:66 http://192.168.10.118/ubuntu bionic-backports/universe DEP-11 48x48 Icons
Ign:67 http://192.168.10.118/ubuntu bionic-backports/universe DEP-11 64x64 Icons
Ign:68 http://192.168.10.118/ubuntu bionic-security/main i386 Packages
Ign:69 http://192.168.10.118/ubuntu bionic-security/universe i386 Packages
Ign:70 http://192.168.10.118/ubuntu bionic-security/multiverse i386 Packages
Ign:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages
Ign:43 http://192.168.10.118/ubuntu bionic/universe i386 Packages
Ign:44 http://192.168.10.118/ubuntu bionic/multiverse i386 Packages
Ign:5 http://192.168.10.118/ubuntu bionic/main i386 Packages
Ign:45 http://192.168.10.118/ubuntu bionic-updates/main i386 Packages
Ign:46 http://192.168.10.118/ubuntu bionic-updates/restricted i386 Packages
Ign:47 http://192.168.10.118/ubuntu bionic-updates/universe i386 Packages
Ign:48 http://192.168.10.118/ubuntu bionic-updates/multiverse i386 Packages
Get:71 http://dl.google.com/linux/chrome/deb stable Release.gpg [819 B]
Ign:50 http://192.168.10.118/ubuntu bionic-backports/universe amd64 Packages
Ign:56 http://192.168.10.118/ubuntu bionic-backports/universe i386 Packages
Ign:57 http://192.168.10.118/ubuntu bionic-backports/universe Translation-en
Ign:58 http://192.168.10.118/ubuntu bionic-backports/universe amd64 DEP-11 Metadata
Ign:66 http://192.168.10.118/ubuntu bionic-backports/universe DEP-11 48x48 Icons
Ign:67 http://192.168.10.118/ubuntu bionic-backports/universe DEP-11 64x64 Icons
Ign:68 http://192.168.10.118/ubuntu bionic-security/main i386 Packages
Ign:69 http://192.168.10.118/ubuntu bionic-security/universe i386 Packages
Ign:70 http://192.168.10.118/ubuntu bionic-security/multiverse i386 Packages
Ign:11 http://192.168.10.118/ubuntu bionic/restricted i386 Packages
Ign:43 http://192.168.10.118/ubuntu bionic/universe i386 Packages
Ign:44 http://192.168.10.118/ubuntu bionic/multiverse i386 Packages
Err:5 http://192.168.10.118/ubuntu bionic/main i386 Packages
404 Not Found [IP: 192.168.10.118 80]
Ign:45 http://192.168.10.118/ubuntu bionic-updates/main i386 Packages
Ign:46 http://192.168.10.118/ubuntu bionic-updates/restricted i386 Packages
Ign:47 http://192.168.10.118/ubuntu bionic-updates/universe i386 Packages
Ign:48 http://192.168.10.118/ubuntu bionic-updates/multiverse i386 Packages
Ign:50 http://192.168.10.118/ubuntu bionic-backports/universe amd64 Packages
Ign:56 http://192.168.10.118/ubuntu bionic-backports/universe i386 Packages
Ign:57 http://192.168.10.118/ubuntu bionic-backports/universe Translation-en
Ign:58 http://192.168.10.118/ubuntu bionic-backports/universe amd64 DEP-11 Metadata
Err:66 http://192.168.10.118/ubuntu bionic-backports/universe DEP-11 48x48 Icons
404 Not Found [IP: 192.168.10.118 80]
Ign:67 http://192.168.10.118/ubuntu bionic-backports/universe DEP-11 64x64 Icons
Ign:68 http://192.168.10.118/ubuntu bionic-security/main i386 Packages
Ign:69 http://192.168.10.118/ubuntu bionic-security/universe i386 Packages
Ign:70 http://192.168.10.118/ubuntu bionic-security/multiverse i386 Packages
Err:45 http://192.168.10.118/ubuntu bionic-updates/main i386 Packages
404 Not Found [IP: 192.168.10.118 80]
Ign:46 http://192.168.10.118/ubuntu bionic-updates/restricted i386 Packages
Ign:47 http://192.168.10.118/ubuntu bionic-updates/universe i386 Packages
Ign:48 http://192.168.10.118/ubuntu bionic-updates/multiverse i386 Packages
Ign:50 http://192.168.10.118/ubuntu bionic-backports/universe amd64 Packages
Ign:56 http://192.168.10.118/ubuntu bionic-backports/universe i386 Packages
Err:68 http://192.168.10.118/ubuntu bionic-security/main i386 Packages
404 Not Found [IP: 192.168.10.118 80]
Ign:69 http://192.168.10.118/ubuntu bionic-security/universe i386 Packages
Ign:70 http://192.168.10.118/ubuntu bionic-security/multiverse i386 Packages
Reading package lists... Done
E: Repository 'http://dl.google.com/linux/chrome/deb stable Release' changed its 'Origin' value from 'Google, Inc.' to 'Google LLC'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
Таким образом, он находит пакеты в зеркале. Меня немного беспокоит строка Ign:XX. Я не уверен, означает ли это, что она игнорируется? Когда я пытаюсь установить что-то базовое, например git, это не удается.
sudo apt-get install git
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package git is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or is only available from another source
E: Package 'git' has no installation candidate
sudo apt-get install git-gui
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package git-gui
Я пробовал устанавливать несколько базовых пакетов, но до сих пор всегда получал одно и то же сообщение о том, что пакет не найден. Есть ли у кого-нибудь идеи, что здесь может быть не так, или что я могу попробовать сделать, чтобы исправить это?
Проблема первая:
Если вы посмотрите внизу вашего измененного mirror.list, эта строка является проблемной:
E: Repository 'http://dl.google.com/linux/chrome/deb stable Release' changed its 'Origin' value from 'Google, Inc.' to 'Google LLC'
У меня была такая же проблема, и это легко исправить. Это происходит, потому что компания, владеющая репозиторием APT, изменила свое название с Google Inc на Google LLC.
Откройте терминал и введите:
sudo apt update
Вас попросят подтвердить новое происхождение репозитория:
Do you want to accept these changes and continue updating from this repository? [y/N]
Введите “y”, и все будет в порядке. Это все.
Проблема вторая:
Проверьте, существует ли это:
/etc/apt/apt.conf.d/50appstream
Если существует, его нужно удалить следующим образом:
sudo rm /etc/apt/apt.conf.d/50appstream
Далее
Архитектуру нужно добавить в sources.list, например, как в этом примере:
deb [arch=amd64] file:/wherever ubuntu bionic main restricted universe multiverse ...etc.
Теперь обновления должны работать.
Примечание для всех, кто ищет это – я только что создал зеркало для Noble, используя apt-mirror, и обновление/обновление apt просто не работали, пока я не удалил файл /etc/apt/apt.conf.d/50appstream.
Кроме того, у меня постоянно возникали ошибки (404) на “icons-64×64.tar” и подобные, которые упоминаются в этом файле. Не уверен, какова его роль, кроме указанного, а именно “Этот файл предоставляется appstreamcli(1) для загрузки метаданных DEP-11”, что бы это ни значило.
Ответ или решение
Настройка локального зеркала пакетов Ubuntu – это задача, которая может помочь в управлении обновлениями и установками программного обеспечения в среде, ограниченной доступом к интернету. Однако, несмотря на корректное следование инструкциям по настройке apt-mirror и настройке локального сервера для работы с пакетами, могут возникнуть проблемы, например, "не нахождение" пакетов при выполнении команд apt-get.
Теория
Основная идея использования apt-mirror заключается в локальном копировании репозиториев Ubuntu на сервер внутри сети. Это позволяет пользователям локальной сети устанавливать и обновлять пакеты, не обращаясь к внешним серверам. Тем не менее, успешная настройка такой системы требует учета множества нюансов, таких как корректная конфигурация файлов sources.list и mirror.list, правильная архитектура пакетов и поддержание актуальности зеркала.
Пример
На практике, вы уже выполнили значительную часть работы по настройке зеркала. Вы следовали инструкциям из различных источников и упомянули, что сервер успешно скачал пакеты и был настроен nginx для их обслуживания. Однако, при попытке установки пакетов на клиентской машине возникает ошибка, указывающая на отсутствие пакетов, несмотря на их наличие в зеркале.
Применение
-
Проблема с файлом sources.list:
Возможно, проблема кроется в файле/etc/apt/sources.list
. Убедитесь, что указанные в нем адреса правильно указывают на dists и pool директории, исходя из их структуры. Проверьте правильность URL и наличие необходимых поддиректорий, таких какdists/bionic/main/binary-amd64/Packages.gz
. -
Архитектура:
Ваша текущая настройка может не поддерживать установку для архитектуры i386, что подтверждается множеством ошибок "404 Not Found" для i386 пакетов. В файле sources.list добавьте ограничение архитектуры, если ваш сервер поддерживает только пакеты amd64:deb [arch=amd64] http://192.168.10.118/ubuntu bionic main restricted
Аналогично следует внести изменения в остальных строках списка источников.
-
Удаление файла /etc/apt/apt.conf.d/50appstream:
У некоторых пользователей возникали ошибки, связанные с недоступностью некоторых метаданных (DEP-11), управляемых файлом appstream. Удаление этого файла помогло устранить ошибки 404, связанные с иконками и другими метаданными:sudo rm /etc/apt/apt.conf.d/50appstream
-
Проверка целостности dists директории:
Убедитесь, что все необходимые файлы манифестов (Packages.gz
,Sources.gz
, и индексы) присутствуют в их соответствующих директориях (binary-amd64
,source
и т.д.) и полностью скачаны. -
Порт и доступность:
Проверьте настройки nginx и убедитесь, что сервер отвечает на запросы по указанному IP и порту без ограничений. Посмотрите nginx-логи (/var/log/nginx/access.log
и/var/log/nginx/error.log
) на предмет необычных ошибок. -
Acceptance изменений в репозиториях третьих сторон:
Когда вы видите такие сообщения, какE: Repository 'http://dl.google.com/linux/chrome/deb stable Release' changed its 'Origin'
, это означает, что идентификационные данные репозитория изменились, и их необходимо принять вручную:sudo apt update
Это действие предложит вам возможность принять изменения в репозитории.
Заключение
Создание и поддержание локального зеркала требует тщательной проверки всех компонентов на каждом этапе. Советуем вносить изменения постепенно и проверять каждый шаг для отладки проблем. Если даже после всех предложенных шагов проблема не решается, может потребоваться пересборка зеркала с более тщательной проверкой конфигураций и зависимостей.