- Вопрос или проблема
- Ответ или решение
- Шаг 1: Проверка списков пакетов
- Шаг 2: Получение информации о необходимых пакетах
- Шаг 3: Визуализация зависимостей
- Шаг 4: Проверка статусов установленных пакетов
- Шаг 5: Соберите недостающие пакеты
- Шаг 6: Установка загруженных пакетов
- Альтернативный подход: Использование Live-сессии
- Заключение
Вопрос или проблема
Как и многие другие до меня, я застрял, пытаясь установить пакет на Ubuntu без доступа к интернету на машине. Однако я уже пытался провести пробные запуски и перенес все перечисленные пакеты в директорию архива, и, тем не менее, когда я пытаюсь установить с параметрами –no-download –fix-missing, это не удается из-за отсутствующих пакетов, но не указывает, какие именно пакеты отсутствуют. Как я могу узнать, чего не хватает?
Спасибо всем.
Apt получает информацию из файлов в /var/lib/apt/lists/*
сокращенный вывод.
Package: findutils
Source: findutils (4.4.2-9)
Version: 4.4.2-9+b1
Essential: yes
Installed-Size: 1406
Maintainer: Andreas Metzler <[email protected]>
Architecture: amd64
Pre-Depends: libc6 (>= 2.17)
--
Homepage: http://savannah.gnu.org/projects/findutils/
Description-md5: ad1a783819241ffdf3ff5f37a676af59
Tag: implemented-in::c, interface::commandline, role::program,
scope::utility, suite::gnu, use::searching, works-with::file
Section: utils
Priority: required
Filename: pool/main/f/findutils/findutils_4.4.2-9+b1_amd64.deb
Size: 485428
MD5sum: 143e4e14fe6c6a88e39505b1816d0c18
SHA1: fd2730bfd4b56c97b2831ad02676059c46a1728d
SHA256: 7d348fffa276db57f43a2588c77cf90fbca472631d680f9476f53b28d285da62
Package: locate
Source: findutils (4.4.2-9)
Version: 4.4.2-9+b1
Installed-Size: 316
Maintainer: Andreas Metzler <[email protected]>
Architecture: amd64
Replaces: findutils (<< 4.2.31-2)
Depends: libc6 (>= 2.14), findutils (>> 4.2.31-1)
Conflicts: slocate (<= 3.1-1.1)
Description: поддержка и запрос индекса дерева директорий
Multi-Arch: foreign
Homepage: http://savannah.gnu.org/projects/findutils/
Description-md5: bff4cb1129be08196a6ed2311b3d1fbc
Tag: implemented-in::c, implemented-in::shell, interface::commandline,
role::program, use::searching
Section: utils
Priority: optional
Filename: pool/main/f/findutils/locate_4.4.2-9+b1_amd64.deb
Size: 178800
MD5sum: b260d30715188574d190476776a36f84
SHA1: 40662450594d9a5b0729300485f3741568d11585
SHA256: 82d281ddf0d0bae6d32f443a1ec3ffc35db44a4dfe3c02ddc03bfeb97e4451e7
Package: fio
--
Depends: python (>= 2.3), python-gtk2 (>= 2.4), python-glade2, findutils (>= 4.1.1)
Description: Набор утилит для поиска и исправления общих ошибок в файловом хранилище
Homepage: http://www.pixelbeat.org/fslint/
Description-md5: 4b58d63667576a6e98df13a69973c798
Tag: implemented-in::python, interface::commandline, interface::x11,
role::program, scope::utility, uitoolkit::gtk, use::checking,
works-with::file, x11::application
--
Conflicts: findutils (<= 4.2.31-1), slocate (<= 3.1-1.1)
Description: быстрое нахождение файлов в файловой системе по их имени
Homepage: http://carolina.mff.cuni.cz/~trmac/blog/mlocate
Description-md5: 34e9c00f37885dbcdfb61296f24c84df
Tag: implemented-in::c, interface::commandline, role::program,
scope::utility, use::searching
Section: utils
--
Depends: perl5, java-common, findutils (>= 4.0)
Recommends: default-jdk | java-compiler
Description: Генератор makefile для Java-программ
Description-md5: d3b43fe924d8d2af5b151a166a5b70ce
Tag: devel::buildtools, devel::lang:java, interface::commandline,
role::program, scope::utility
Section: devel
--
Depends: bash (>= 3.0), coreutils (>= 8.5), debianutils (>= 4.0), findutils (>= 4.0.0), grep (>= 2.0.0), gawk (>= 4.0.0) | mawk (>= 1.3.0), sed (>= 4.0.0), wget
Suggests: libc-bin (>= 2.0)
Description: Подкаст-агрегатор/скачиватель, оптимизированный для cron
Homepage: http://podget.sourceforge.net
Description-md5: 9718309415a69325a09cd64000c082a9
Tag: implemented-in::shell, role::program, works-with-format::xml:rss
Section: misc
Я искал термин findutils. Но без доступа к интернету поиск пакетов для ubuntu
И устанавливайте пакеты напрямую с помощью dpkg.
Я надеюсь, что правильно понял ваш вопрос.
Если у вас есть доступ к интернету в Live-сессии, вы можете скачать пакеты там, после того как активируете необходимые источники пакетов. смонтируйте раздел, где находится ваша / из вашей системы установки.
sudo apt-get update && sudo apt-get -d -o dir::cache::archives="/pfad/to/mountpoint/var/cache/archives" install package-name
и используйте dpkg для их установки. небольшой обзор dpkg
Ответ или решение
Для установки пакетов в Ubuntu без доступа к интернету, важно корректно определить недостающие пакеты. Несмотря на наличие всех необходимых зависимостей, команда apt-get --no-download --fix-missing install
может выдать ошибку, не указывая отсутствующие пакеты. Рассмотрим пошаговый процесс, который поможет вам выявить недостающие пакеты и успешно завершить установку.
Шаг 1: Проверка списков пакетов
Пакеты и их зависимости хранятся в директории /var/lib/apt/lists/*
. Для начала, убедитесь, что вы обновили списки пакетов перед отключением от сети. Это можно сделать с помощью команды:
sudo apt-get update
Однако, если интернет недоступен, проверьте, что файлы списков пакетов уже существуют в указанной директории.
Шаг 2: Получение информации о необходимых пакетах
Используйте команду apt-cache
для проверки информации о необходимых пакетах и их зависимостях. Например:
apt-cache depends <имя_пакета>
Эта команда покажет, какие пакеты необходимы для установки и их статус.
Шаг 3: Визуализация зависимостей
Давайте рассмотрим, как визуализировать зависимости для конкретного пакета. Создайте текстовый файл, в который вы будете направлять вывод команд для последующего анализа. Например:
apt-cache depends <имя_пакета> > зависимости.txt
Содержимое этого файла позволит вам выяснить, какие пакеты необходимы, а также выявить их статусы (установлены или нет).
Шаг 4: Проверка статусов установленных пакетов
Для определения установленных пакетов можно использовать следующую команду:
dpkg -l | grep <имя_пакета>
Если пакет установлен, вы увидите его статус, если нет — это означает, что пакет отсутствует.
Шаг 5: Соберите недостающие пакеты
Теперь, когда вы знаете, какие пакеты отсутствуют, вы можете загрузить их заранее с другого устройства с доступом в интернет. Для этого используйте команды:
sudo apt-get download <имя_пакета>
или
apt-get install --download-only <имя_пакета>
Это позволит вам сохранить необходимые .deb
файлы на флешке или внешнем диске.
Шаг 6: Установка загруженных пакетов
Перенесите собранные пакеты обратно в вашу систему и выполните установку с помощью dpkg
:
sudo dpkg -i /путь/к/пакету/*.deb
Альтернативный подход: Использование Live-сессии
Если у вас есть возможность, воспользуйтесь Live-сессией с доступом к интернету. В вашем случае выполните:
- Подключение к интернету.
- Смонтируйте вашу файловую систему.
- Обновите источники пакетов и загрузите необходимые файлы, указав их путь к кэшу:
sudo apt-get update && sudo apt-get -d install <имя_пакета>
Затем выполните установку через dpkg
, как указано ранее.
Заключение
Управление зависимостями и недостающими пакетами без доступа к интернету — это сложная, но реализуемая задача. Изучение использованных в системе записей о пакетах и зависимостях является ключевым моментом в решении данной проблемы. Следуя представленным шагам, вы сможете успешно установить все необходимые элементы, чтобы ваша система функционировала корректно.