Как правильно управлять зависимостями пакета pacman?

Я запустил Arch live ISO на компьютере без доступа в интернет. <br/> Пытаюсь установить <a href="https://archlinux.org/packages/extra/x86_64/git/" rel="nofollow">пакет git</a> из архивов на флешке. Не интересуйтесь, почему я так поступаю. На начальном этапе не стал настраивать live ISO, решил действовать именно так. <br/> <br/> Я устанавливаю пакеты напрямую: сначала зависимости (включая зависимости их зависимостей), а затем сам git. Однако после попытки установки pacman требует доступ в интернет, что выражается в постоянном выводе сообщений в терминал. <br/>
  • 12 апреля 2025 г. 17:35
Ответы на вопрос 2
При установке пакетов в Arch Linux с помощью `pacman`, особенно в ситуации, когда вы работаете с офлайн-установкой, важно правильно управлять зависимостями и убедиться, что все необходимые пакеты и их зависимости находятся в вашем локальном репозитории (например, на флешке).

Вот шаги, которые вы можете предпринять:

1. **Соберите все необходимые пакеты**: Прежде всего, вам нужно убедиться, что у вас есть все пакеты и их зависимости. Для пакета `git` это может включать в себя такие пакеты, как `perl`, `openssl`, `curl` и т. д. Вы можете использовать команду:
   ```bash
   pacman -S git --print-resolved | grep -v "^\s" | awk '{print $1}'
   ```
   Эта команда покажет все необходимые зависимости для `git`. После этого вам нужно загрузить все перечисленные пакеты и переместить их на флешку.

2. **Используйте локальный репозиторий**: Если у вас есть несколько пакетов, которые необходимо установить, проще всего создать локальный репозиторий. Создайте каталог (например, `localrepo`) и переместите все необходимые `.pkg.tar.zst` файлы в этот каталог. Затем создайте файл `db.json` в этом каталоге с помощью команды:
   ```bash
   repo-add localrepo.db.tar.gz /path/to/localrepo/*.pkg.tar.zst
   ```

3. **Настройте `pacman` для использования локального репозитория**: Вам нужно будет добавить новый репозиторий в файл `/etc/pacman.conf`. Для этого откройте его в текстовом редакторе и добавьте следующее в конец файла:
   ```
   [localrepo]
   SigLevel = Never
   Server = file:///path/to/localrepo
   ```

4. **Установите пакеты**: Теперь, когда `pacman` знает о вашем локальном репозитории, вы можете установить необходимые пакеты, используя команду:
   ```bash
   pacman -S git
   ```
   Пакет и его зависимости будут установлены из вашего локального репозитория.

5. **Избегайте ненужных запросов на интернет**: Если `pacman` по-прежнему пытается обратиться в интернет, убедитесь, что у вас нет подключений, которые могут пытаться проверять обновления или дополнительные репозитории. Проверьте настройки в `/etc/pacman.conf` и убедитесь, что все неиспользуемые репозитории закомментированы.

Следуя этим шагам, вы сможете корректно установить пакет `git` и его зависимости в среде без доступа в интернет.
После попытки установки pacman хочет интернет, что проявляется спамящим выводом в терминал.
...
Задача в том чтобы pacman не пытался что то загрузить.

pacman и не пытается что-то загрузить, почитайте внимательно выдаваемую на экран ошибку.
Если кратко, то проблема в рефлекторе( Reflector ) а точнее в reflector.service который у archiso по видимому стоит в автозапуске .
Reflector пытается подобрать/обновить зеркала и естественно сделать этого не может из за отсутствующего интернета.
Простым решением будет просто остановить его
systemctl stop reflector.service

п.с.
по поводу офлайн инсталяции возможно будет полезна тема -- Offline installation
Похожие вопросы