Рейтинг:0

значение "dpkg-divert --local --rename --add /sbin/initctl"

флаг za

Это из https://help.ubuntu.com/community/LiveCDCustomizationFromScratch.
Здесь я должен делать внутри среды chroot,

dpkg-divert --local --rename --add /sbin/initctl

Говорит ли ОС, что «с этого момента, когда вы устанавливаете пакеты, независимо от того, какой пакет (--local), если этот пакет пытается установить /sbin/initctl, установите его (--add) в /sbin/initctl. распространить (--переименовать)" ? Я пытался понять руководство, но не мог понять его точно.

Дело в том, что если файл перенаправляется в другой файл с помощью этой команды dpkg-divert (скажем, из xfile в xfile.distrib) пакетом, то при использовании пакета вместо исходного xfile используется xfile.distrib?
Я пытался кошка /var/lib/dpkg/diversions и он дает мне этот список.

/usr/доля/дикт/слова
/usr/share/dict/words.pre-dictionaries-common
словари-общие
/usr/share/man/man1/sh.1.gz
/usr/share/man/man1/sh.distrib.1.gz
бросаться
/usr/share/man/man1/dh_gstscancodecs.1.gz
...

Файл содержит список файлов, а не имена пакетов, и я не могу его понять. Например, что означает первая строка /usr/доля/дик/слова иметь в виду?
Пожалуйста, подтвердите, правильно ли я понимаю, что означает этот список.

Рейтинг:0
флаг us

Сообщает ли он ОС, что «с этого момента, когда вы устанавливаете пакеты, независимо от того, какой пакет (--local), если этот пакет пытается установить /sbin/initctl, установите его (--add) в /sbin/initctl. распространить (--переименовать)"

  • --переименовать говорит ему немедленно переместить любой существующий файл
  • я бы поставил --Добавлять рядом с "сообщить ОС"

Дело в том, что если файл перенаправляется в другой файл с помощью этой команды dpkg-divert (скажем, из xfile в xfile.distrib) пакетом, то при использовании пакета вместо исходного xfile используется xfile.distrib?

Нет. Тот, кто устроил диверсию, должен предоставить что-то вместо этого. xfile (в данном случае это вы). На этой странице они делают:

ln -s /bin/true /sbin/initctl

диверсии файл состоит из трехстрочных групп:

  1. Файл, который нужно перенаправить
  2. Отклоненное местоположение
  3. Пакет, устанавливающий диверсию

Итак, для следующих трех строк:

/usr/доля/дикт/слова
/usr/share/dict/words.pre-dictionaries-common
словари-общие

дпкг отвлечет установки /usr/доля/дикт/слова из пакетов, кроме словари-общие (сказать, американский, например) к /usr/share/dict/words.pre-dictionaries-common. Если вы установите американский, вы можете увидеть это в действии:

# dpkg -S /usr/share/dict/words
диверсия по словарям-общим из: /usr/share/dict/words
перенаправление по словарям-общим на: /usr/share/dict/words.pre-dictionaries-common
американский: /usr/share/dict/words

Это руководство немного устарело: initctl это Upstart, который больше не используется. Вы даже не можете установить его больше. Управление службами осуществляется с помощью systemd, и теперь вы используете systemctl вместо.

флаг za
Спасибо! Теперь я почти понимаю это. Вопрос: теперь, когда другие пакеты будут устанавливаться в перенаправленное место (файл), будут ли эти другие пакеты использовать новый перенаправленный файл (с измененным именем) вместо исходного файла? поэтому мой вопрос заключается в том, если отклонение только для установки или для фактического использования, кроме пакета, который устанавливает отклонение. (и да, я знал, что приведенное выше руководство LiveCDFromScratch слишком старое, поэтому его почти невозможно использовать. Я надеюсь, что люди Ubuntu обновят эти документы.)
muru avatar
флаг us
Никто, кроме `dpkg` и создателя диверсии, не знает о диверсии. Любой, кто использует `/path/to/some/file`, который был перенаправлен, будет использовать то, что находится в данный момент.
флаг za
Ах спасибо большое!
флаг us
@muru У меня даже нет initctl в /sbin. только инит. Ubuntu 18.04.6 LTS\n\l Что делали эти строки, когда это имело смысл? сохранить процесс инициализации в безопасности?
muru avatar
флаг us
@CEOatApartico на следующих шагах установлено несколько пакетов. Некоторые пакеты запускают или перезапускают службы после установки, и это делается с помощью команды `initctl`. Поскольку нет смысла делать это в chroot (и это вызовет ошибки, потому что init не запускается в chroot), они заменяют его на `true` для остальной части установки.

Ответить или комментировать

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