где «apt-cache зависит» собирает информацию о зависимости от?

Я хочу изменить зависимости пакета debian, и я внесли изменения в его файл управления. Но в списке apt-cache depends pkg_name все еще отображаются удаленные зависимости. Итак, где эта команда выводит список зависимостей debian-пакета? Не из файла управления?

2
задан 4 May 2017 в 15:02

4 ответа

Я не получаю четкое представление о том, что вы пытаетесь сделать, но я пытаюсь ответить на ваш вопрос. Откуда «зависит от кеша зависит», чтобы получить информацию о зависимости?

Когда вы запустите apt-get update, он извлекает все метаданные пакетов из репозиториев, упомянутых в каталоге /etc/apt/sources.list и /etc/apt/sources.list.d.

Эти метаданные хранятся в двух файлах

/var/cache/apt/pkgcache.bin и var/cache/apt/srcpkgcache.bin

apt-cache использует эти два файла кэша для отображения запросов пользователя.

Как эти файлы обновляются?

srcpkgcache.bin включает всю информацию, которую вы получаете из Интернета по строкам deb и deb-src Где «apt-cache depends» собирает информация о зависимости от? .

Где в качестве pkgcache.bin кэширует информацию в srcpkgcache.bin и информацию, извлеченную из файлов статуса apt и dpkg. Эти изменения изменяются при каждом изменении, выполненном apt или dpkg.

1
ответ дан 18 July 2018 в 13:50

apt-cache данные поступают из списков внутри:

/var/lib/apt/lists

например:

grep -i "Package: wget$" -A10 /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_zesty_main_binary-amd64_Packages

Однако, как вы знаете, метаданные пакета deb содержат список зависимостей.

Итак, если вы хотите увидеть, что файл deb думает о своих собственных запусках зависимостей:

dpkg -I package-name.deb | grep -i depends
2
ответ дан 18 July 2018 в 13:50

Я не получаю четкое представление о том, что вы пытаетесь сделать, но я пытаюсь ответить на ваш вопрос. Откуда «зависит от кеша зависит», чтобы получить информацию о зависимости?

Когда вы запустите apt-get update, он извлекает все метаданные пакетов из репозиториев, упомянутых в каталоге /etc/apt/sources.list и /etc/apt/sources.list.d.

Эти метаданные хранятся в двух файлах

/var/cache/apt/pkgcache.bin и var/cache/apt/srcpkgcache.bin

apt-cache использует эти два файла кэша для отображения запросов пользователя.

Как эти файлы обновляются?

srcpkgcache.bin включает всю информацию, которую вы получаете из Интернета по строкам deb и deb-src Где «apt-cache depends» собирает информация о зависимости от? .

Где в качестве pkgcache.bin кэширует информацию в srcpkgcache.bin и информацию, извлеченную из файлов статуса apt и dpkg. Эти изменения изменяются при каждом изменении, выполненном apt или dpkg.

1
ответ дан 24 July 2018 в 20:16

apt-cache данные поступают из списков внутри:

/var/lib/apt/lists

например:

grep -i "Package: wget$" -A10 /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_zesty_main_binary-amd64_Packages

Однако, как вы знаете, метаданные пакета deb содержат список зависимостей.

Итак, если вы хотите увидеть, что файл deb думает о своих собственных запусках зависимостей:

dpkg -I package-name.deb | grep -i depends
2
ответ дан 24 July 2018 в 20:16
  • 1
    несмотря на изменение списка зависимостей в файле из упомянутого вами каталога, все еще отображаются удаленные зависимости, когда выполняется «apt-cache depend». Есть идеи? – sam95 9 May 2017 в 09:53
  • 2
    Не так много, есть двоичный файл /var/cache/apt/pkgcache.bin , который apt создает его с этими списками для выполнения более быстрых запросов, попробуйте удалить это, посмотреть, что произойдет. – Ravexina 9 May 2017 в 09:56

Другие вопросы по тегам:

Похожие вопросы: