Bin-sbin-merge

Материал из ALT Linux Wiki

Унификация /usr/bin и /usr/sbin

Под унификацией /usr/bin и /usr/sbin понимается перенос содержимого /usr/sbin в каталог /usr/bin с последующей заменой каталога /usr/sbin на симлинк, указывающий на /usr/bin. Унификация позволит исключить неочевидные конфликты пакетов между собой, когда у root вызывается исполняемый файл из одного пакета, а у пользователей из другого. Тем не менее подобная унификация чревата рядом проблем, которые следует решить, прежде чем приступать к работам по объединению:

  • Необходимо выявить все скрытые конфликты пакетов между собой и исправить их: https://bugzilla.altlinux.org/54344
  • Необходимо выявить и исправить пакеты имеющие внутренние конфликты:
    • Пакеты, имеющие в /usr/bin и /usr/sbin разные исполняемые файлы (пакет passwd). В таких ситуациях следует перенести исполняемые файлы из /usr/sbin и /usr/bin в другое место, заменив их скриптом запуска, запускающий тот или иной бинарный файл в зависимости от того, кто его запускает (пользователь или root).
    • Пакеты, использующие consolehelper. Их необходимо переводить на использование polkit (уже сделано). Если пакет не может быть переведён на polkit (beesu такой случай), то нужно перенести исполняемый файл из /usr/sbin в /usr/libexec и поправить путь в console.apps до программы.
    • Пакеты, имеющие разные одноимённые симлинки в /usr/bin и /usr/sbin. Таким пакетом является sendmail-common mailq (/usr/bin/mailq -> ../sbin/sendmail; /usr/sbin/mailq -> sendmail); newaliases (/usr/bin/newaliases -> ../sbin/sendmail; /usr/sbin/newaliases -> sendmail). Сам /usr/sbin/sendmail в postfix, sendmail-submit, ssmtp.
    • Пакеты, имеющие симлинки в /usr/sbin на /usr/bin и наоборот. При установке таких пакетов на уже смерженные системы может произойти непоправимое, установится симлинк, а не исполняемый файл. Поэтому симлинки должны быть заменены на хардлинки. Это может быть сделано автоматически. Примерный список таких пакетов:
 alterator: alterator-cmdline
 alternatives: alternatives-update
 bonnie++: bonnie++
 net-tools: arp ifconfig route
 iproute2: ip lnstat nstat rtmon ss tc
 fbset: fbset modeline2fb
 psmisc: fuser (/usr/bin/fuser -> ../../sbin/fuser)
 iftop: iftop
 systemd: systemctl
 lshw-gui: lshw-gui
 lsof: lsof (/usr/bin/lsof -> ../sbin/lsof)
 makemap: makemap
 squashfs-tools: mksquashfs
 udev: udevadm
 usbip: usbip

Каких-то определённых сроков перехода нет. Но, вероятно, это должно быть сделано до бранчевания p12.

Полезные ссылки

  1. https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin