pacman создает новые папки download-XXXXXX в /var/cache/pacman/pkg

Вопрос или проблема

Версия Pacman: pacman 7.0.0.r3.g7736133-1

Мое интернет-соединение плохое. При выполнении pacman -Syu я заметил, что pacman не возобновляет загрузку. После расследования я обнаружил, что каждый раз, когда я запускаю процесс обновления, pacman создает новую папку download-XXXXXX в /var/cache/pacman/pkg. Поэтому он не может возобновить текущее обновление после прерывания.

Есть ли способ сказать pacman загружать все пакеты в /var/cache/pacman/pkg и прекратить создание новых папок в нем, чтобы он мог возобновить прерванную загрузку?

Мой pacman.conf

#
# /etc/pacman.conf
#
# См. руководство вручную pacman.conf(5) для получения параметров и директив репозитория

#
# ОБЩИЕ ПАРАМЕТРЫ
#
[options]
# Следующие пути закомментированы с их значениями по умолчанию.
# Если вы хотите использовать другие пути, раскомментируйте и обновите пути.
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
#GPGDir      = /etc/pacman.d/gnupg/
#HookDir     = /etc/pacman.d/hooks/
HoldPkg      = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto

# Pacman не будет обновлять пакеты, указанные в IgnorePkg, и члены IgnoreGroup
#IgnorePkg   =
#IgnoreGroup =

#NoUpgrade   =
#NoExtract   =

# Разные параметры
#UseSyslog
Color
#NoProgressBar
CheckSpace
VerbosePkgLists
ParallelDownloads = 8
ILoveCandy
#DisableDownloadTimeout

# По умолчанию pacman принимает пакеты, подписанные ключами, которые его локальное хранилище
# доверяет (см. pacman-key и его руководство), а также неподписанные пакеты.
SigLevel    = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required

# ПРИМЕЧАНИЕ: Вы должны запустить `pacman-key --init` перед первым использованием pacman; локальное
# хранилище ключей затем может быть заполнено ключами всех официальных упаковщиков Arch Linux
# с помощью `pacman-key --populate archlinux`.

#
# РЕПОЗИТОРИИ
#   - могут быть определены здесь или включены из другого файла
#   - pacman будет искать репозитории в порядке, определенном здесь
#   - локальные/кастомные зеркала могут быть добавлены здесь или в отдельных файлах
#   - репозитории, указанные первыми, будут иметь приоритет, когда пакеты
#     имеют одинаковые имена, независимо от номера версии
#   - URL-адреса будут иметь $repo замененным на имя текущего репозитория
#   - URL-адреса будут иметь $arch замененным на имя архитектуры
#
# Записи репозитория имеют формат:
#       [имя-репозитория]
#       Server = ИмяСервера
#       Include = ПутьВключения
#
# Заголовок [имя-репозитория] имеет решающее значение - он должен присутствовать и
# не должен быть закомментирован, чтобы включить репозиторий.
#

# Тестовые репозитории по умолчанию отключены. Чтобы включить, раскомментируйте
# заголовок имени репозитория и строки Include. Вы можете добавить предпочитаемые серверы сразу
# после заголовка, и они будут использоваться перед зеркалами по умолчанию.

#[arcolinux_repo_testing]
#SigLevel = Optional TrustedOnly
#Include = /etc/pacman.d/arcolinux-mirrorlist

[arcolinux_repo]
SigLevel = Optional TrustedOnly
Include = /etc/pacman.d/arcolinux-mirrorlist

[arcolinux_repo_3party]
SigLevel = Optional TrustedOnly
Include = /etc/pacman.d/arcolinux-mirrorlist

[arcolinux_repo_xlarge]
SigLevel = Optional TrustedOnly
Include = /etc/pacman.d/arcolinux-mirrorlist

#[core-testing]
#Include = /etc/pacman.d/mirrorlist

[core]
Include = /etc/pacman.d/mirrorlist

#[extra-testing]
#Include = /etc/pacman.d/mirrorlist

[extra]
Include = /etc/pacman.d/mirrorlist

# Если вы хотите запускать 32-битные приложения на вашей системе x86_64,
# включите многоцелевые репозитории по мере необходимости здесь.

#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist

[multilib]
Include = /etc/pacman.d/mirrorlist

# Пример кастомного репозитория пакетов. См. руководство pacman для
# советов по созданию собственных репозиториев.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

Ответ или решение

Решение проблемы с созданием папок download-XXXXXX в /var/cache/pacman/pkg

Введение

Ваша проблема с менеджером пакетов pacman заключается в том, что он создаёт новые временные папки download-XXXXXX в каталоге /var/cache/pacman/pkg при каждой попытке обновления. Это препятствует возможности возобновления загрузки в случае обрыва соединения. В данной статье мы рассмотрим, как можно оптимизировать загрузку пакетов в pacman, чтобы избежать создания этих временных папок и обеспечить возможность возобновления загрузок.

Причины

Из-за низкой скорости интернет-соединения вам часто приходится прерывать загрузку. При каждом запуске pacman -Syu, когда загрузка прерывается, pacman создаёт новую папку download-XXXXXX, что мешает ему возобновить предыдущую загрузку, так как он не использует уже загруженные данные. Это затрудняет работу с обновлениями и может значительно увеличить время, необходимое для выполнения обновления пакетов.

Решение

  1. Настройка XferCommand: Основное решение заключается в использовании переменной конфигурации XferCommand, позволяющей вам выбирать, как pacman будет загружать файлы. Если хотите предотвратить создание новых папок, вы можете использовать инструменты, которые поддерживают возобновляемую загрузку, такие как curl или wget. Для начала выполните следующие действия.

    В вашем файле /etc/pacman.conf, раскомментируйте и измените XferCommand следующим образом:

    XferCommand = /usr/bin/wget --continue -O %o %u

    или

    XferCommand = /usr/bin/curl -C - -o %o %u

    Это позволит вам возобновлять прерванные загрузки, загружая недостающие части файлов вместо создания новых папок.

  2. Отключение временных папок: Непосредственно нет способа полностью отключить создание временных папок в конфигурации pacman. Однако, используя вышеуказанный параметр, вы минимизируете влияние этой проблемы.

  3. Увеличьте время загрузки: Если ваше соединение часто прерывается, вам может помочь настройка DisableDownloadTimeout. Это позволит избежать автоматического таймаута для загрузки:

    DisableDownloadTimeout
  4. Настройка ParallelDownloads: Убедитесь, что использование ParallelDownloads установлено на разумное значение (например, 2 или 4), поскольку слишком большое количество одновременных загрузок может ухудшить качество соединения и привести к обрывам.

Заключение

Следуя данным рекомендациям, вы сможете значительно улучшить ситуацию с загрузкой пакетов в pacman, избегая создания избыточных временных папок и повышая устойчивость к прерываниям загрузки. Также важно регулярно проверять качество интернет-соединения и при возможности использовать более стабильные источники для загрузки, что дополнительно поможет снизить вероятность проблем в будущем.

Если после выполнения этих шагов проблема сохраняется, возможно, стоит рассмотреть обновление самого pacman до последней стабильной версии, так как новые версии могут содержать оптимизации и исправления, которые улучшат процесс загрузки пакетов.

Оцените материал
Добавить комментарий

Капча загружается...