Это из https://help.ubuntu.com/community/LiveCDCustomizationFromScratch.
Здесь я должен сделать внутри среды chroot,
dpkg-divert --local --rename --add /sbin/initctl
Это говорит ОС, что "отныне, когда вы устанавливаете пакеты, каким бы ни был пакет (--local), если этот пакет пытается установить /sbin/initctl, установите его (--add) в /sbin/initctl.distrib (--rename)"? Я пытался понять руководство, но не смог понять точно.
Это что, если файл перенаправляется в другой файл этой командой dpkg-divert (скажем, xfile в xfile.distrib) с помощью пакета, то когда пакет используется, xfile.distrib используется вместо оригинального xfile?
.
Я попробовал cat /var/lib/dpkg/diversions
и это дает мне такой список.
/usr/share/dict/words
/usr/share/dict/words.pre-dictionaries-common
dictionaries-common
/usr/share/man/man1/sh.1.gz
/usr/share/man/man1/sh.distrib.1.gz
dash
/usr/share/man/man1/dh_gstscancodecs.1.gz
...
Файл содержит список файлов, а не имена пакетов, и я не могу его понять. Например, что означает первая строка /usr/share/dic/words
?
.
Пожалуйста, кто-нибудь подтвердите, правильно ли я понимаю и что означает этот список.
Сообщает ли ОС, что "с этого момента, когда вы устанавливаете пакеты, независимо от того, какой пакет (- local), если этот пакет пытается установить / sbin / initctl, установите его (- add) в /sbin/initctl.distrib (--rename) "
- rename
указывает ему немедленно переместить любой существующий файл - добавьте
рядом с" сообщением ОС "Это то, что если файл перенаправляется в другой файл этой командой dpkg-divert (скажем, из xfile в xfile.distrib) пакетом, то при использовании пакета xfile.distrib используется вместо исходного xfile?
Нет. Кто бы ни организовал переадресацию, он должен предоставить что-нибудь вместо этого xfile
(в данном случае это вы). На этой странице они делают:
ln -s / bin / true / sbin / initctl
Файл diversions
состоит из трехстрочных групп:
Итак, для следующих трех строк:
/usr/share/dict/words
/usr/share/dict/words.pre-dictionaries-common
dictionaries-common
dpkg
будет перенаправлять установки / usr / share / dict / слова
из пакетов, отличных от общих словарей
(скажем, wamerican
, например) до /usr/share/dict/words.pre-hibitedaries-common
.Если вы установите wamerican
, вы увидите это в действии:
# dpkg -S /usr/share/dict/words
diversion by dictionaries-common from: /usr/share/dict/words
diversion by dictionaries-common to: /usr/share/dict/words.pre-dictionaries-common
wamerican: /usr/share/dict/words
Это руководство немного устарело: initctl
- Upstart, который больше не используется. Вы даже не можете его больше установить. Управление службами осуществляется с помощью systemd, а теперь вместо него используется systemctl
.