Bin-sbin-merge: различия между версиями
(Новая страница: «== Унификация /usr/bin и /usr/sbin == Под унификацией /usr/bin и /usr/sbin понимается перенос содержимого /usr/sbin в каталог /usr/bin с последующей заменой каталога /usr/sbin на симлинк, указывающий на /usr/bin. Унификация позволит исключить неочевидные конфликты пакетов между собой,...») |
(→Унификация /usr/bin и /usr/sbin: Выделить пути) |
||
Строка 1: | Строка 1: | ||
== Унификация /usr/bin и /usr/sbin == | == Унификация {{path|/usr/bin}} и {{path|/usr/sbin}} == | ||
Под унификацией /usr/bin и /usr/sbin понимается перенос содержимого /usr/sbin в каталог /usr/bin с последующей заменой каталога /usr/sbin на симлинк, указывающий на /usr/bin. | Под унификацией {{path|/usr/bin}} и {{path|/usr/sbin}} понимается перенос содержимого {{path|/usr/sbin}} в каталог {{path|/usr/bin}} с последующей заменой каталога {{path|/usr/sbin}} на симлинк, указывающий на {{path|/usr/bin}}. | ||
Унификация позволит исключить неочевидные конфликты пакетов между собой, когда у root вызывается исполняемый файл из одного пакета, а у пользователей из другого. | Унификация позволит исключить неочевидные конфликты пакетов между собой, когда у root вызывается исполняемый файл из одного пакета, а у пользователей из другого. | ||
Тем не менее подобная унификация чревата рядом проблем, которые следует решить, прежде чем приступать к работам по объединению: | Тем не менее подобная унификация чревата рядом проблем, которые следует решить, прежде чем приступать к работам по объединению: | ||
* Необходимо выявить все скрытые конфликты пакетов между собой и исправить их: https://bugzilla.altlinux.org/54344 | * Необходимо выявить все скрытые конфликты пакетов между собой и исправить их: https://bugzilla.altlinux.org/54344 | ||
* Необходимо выявить и исправить пакеты имеющие внутренние конфликты: | * Необходимо выявить и исправить пакеты имеющие внутренние конфликты: | ||
** Пакеты, имеющие в /usr/bin и /usr/sbin разные исполняемые файлы (пакет passwd). В таких ситуациях следует перенести исполняемые файлы из /usr/sbin и /usr/bin в другое место, заменив их скриптом запуска, запускающий тот или иной бинарный файл в зависимости от того, кто его запускает (пользователь или root). | ** Пакеты, имеющие в {{path|/usr/bin}} и {{path|/usr/sbin}} разные исполняемые файлы (пакет {{pkg|passwd}}). В таких ситуациях следует перенести исполняемые файлы из {{path|/usr/sbin}} и {{path|/usr/bin}} в другое место, заменив их скриптом запуска, запускающий тот или иной бинарный файл в зависимости от того, кто его запускает (пользователь или root). | ||
** Пакеты, использующие consolehelper. Их необходимо переводить на использование polkit (уже сделано). Если пакет не может быть переведён на polkit (beesu такой случай), то нужно перенести исполняемый файл из /usr/sbin в /usr/libexec и поправить путь в console.apps до программы. | ** Пакеты, использующие consolehelper. Их необходимо переводить на использование polkit (уже сделано). Если пакет не может быть переведён на polkit (beesu такой случай), то нужно перенести исполняемый файл из {{path|/usr/sbin}} в {{path|/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. | ** Пакеты, имеющие разные одноимённые симлинки в {{path|/usr/bin}} и {{path|/usr/sbin}}. Таким пакетом является sendmail-common mailq ({{path|/usr/bin/mailq}} -> {{path|../sbin/sendmail}}; {{path|/usr/sbin/mailq}} -> {{path|sendmail}}); newaliases ({{path|/usr/bin/newaliases}} -> {{path|../sbin/sendmail}}; {{path|/usr/sbin/newaliases}} -> {{path|sendmail}}). Сам {{path|/usr/sbin/sendmail}} в postfix, sendmail-submit, ssmtp. | ||
** Пакеты, имеющие симлинки в /usr/sbin на /usr/bin и наоборот. При установке таких пакетов на уже смерженные системы может произойти непоправимое, установится симлинк, а не исполняемый файл. Поэтому симлинки должны быть заменены на хардлинки. Это может быть сделано автоматически. Примерный список таких пакетов: | ** Пакеты, имеющие симлинки в {{path|/usr/sbin}} на {{path|/usr/bin}} и наоборот. При установке таких пакетов на уже смерженные системы может произойти непоправимое, установится симлинк, а не исполняемый файл. Поэтому симлинки должны быть заменены на хардлинки. Это может быть сделано автоматически. Примерный список таких пакетов: | ||
alterator: alterator-cmdline | alterator: alterator-cmdline | ||
alternatives: alternatives-update | alternatives: alternatives-update |
Версия от 10:52, 28 мая 2025
Унификация /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.