Сколько файлов во всех пакетах в Ubuntu +/- 1000%?

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

Поэтому я хотел бы знать, сколько пакетов примерно в Ubuntu (эффективность 10 достаточно), чтобы я мог провести некоторые оценки сложности алгоритма.

Оригинальный код, кажется, не поддерживается на протяжении десятилетий, и автор недоступен по последнему известному адресу (я написал его год назад, но он не ответил). Программа, похоже, вышла из Ubuntu в 17.10. Кроме того, код не содержит комментариев и тестов (никогда не делайте этого, пожалуйста!), И мне нужно угадать, какова была цель древовидной структуры данных (это могло быть проблемой программирования) и могу ли я просто замените его на быструю стороннюю реализацию значения ключа.

1
задан 9 January 2018 в 12:49

2 ответа

Команда apt-file может использоваться для поиска того, какой пакет предоставляет данный файл. Вам нужно запустить apt-file update, чтобы он мог загрузить список файлов, и:

$ apt-file update
apt-file is now using the user's cache directory.
If you want to switch back to the system-wide cache directory,
 run 'apt-file purge'
Downloading complete file http://jp.archive.ubuntu.com/ubuntu/dists/xenial/Contents-amd64.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  9 31.7M    9 2927k    0     0   282k      0  0:01:54  0:00:10  0:01:44  481k

Итак, Contents-amd64.gz - это файл размером 31 МБ после сжатия. Открывая его в Vim, я вижу, что у него 5400831 строк, в заголовке около 30 строк:

This file maps each file available in the Ubuntu
system to the package from which it originates.  It includes packages
from the DIST distribution for the ARCH architecture.

You can use this list to determine which package contains a specific
file, or whether or not a specific file is available.  The list is
updated weekly, each architecture on a different day.

When a file is contained in more than one package, all packages are
listed.  When a directory is contained in more than one package, only
the first is listed.

The best way to search quickly for a file is with the Unix `grep'
utility, as in `grep <regular expression> CONTENTS':

 $ grep nose Contents
 etc/nosendfile                                          net/sendfile
 usr/X11R6/bin/noseguy                                   x11/xscreensaver
 usr/X11R6/man/man1/noseguy.1x.gz                        x11/xscreensaver
 usr/doc/examples/ucbmpeg/mpeg_encode/nosearch.param     graphics/ucbmpeg
 usr/lib/cfengine/bin/noseyparker                        admin/cfengine

This list contains files in all packages, even though not all of the
packages are installed on an actual system at once.  If you want to
find out which packages on an installed Debian system provide a
particular file, you can use `dpkg --search <filename>':

 $ dpkg --search /usr/bin/dselect
 dpkg: /usr/bin/dselect


FILE                                                    LOCATION

Итак, у нас есть:

5,4 миллиона файлов, дайте или возьмите несколько.

2
ответ дан 9 January 2018 в 12:49

В моей системе 17.10 у меня установлено 181 367 файлов и каталогов (это число отображается, например, всякий раз, когда вы apt install что-то) в 1360 пакетах (apt list --installed | wc -l). Это в среднем около 133 файлов / каталогов на пакет.

В 17.10 имеется 58 108 пакетов (apt list | grep -c artful), поэтому если предположить, что мои установленные пакеты являются репрезентативными, то получается примерно 7 749 038 файлов и каталогов.

2
ответ дан 9 January 2018 в 12:49
  • 1
    Хороший... Я добавил bach_alias для этого (с функцией) promptdir() { PROMPT_DIRTRIM=$1; } только для создания живым легче... – dgoosens 17 August 2018 в 03:10
  • 2
    Хороший... Я добавил bach_alias для этого (с функцией) promptdir() { PROMPT_DIRTRIM=$1; } только для создания живым легче... – dgoosens 17 August 2018 в 03:10

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

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