Короче, если which найдёт kdm
Такой сложный путь...
which вроде ненаходит
[root@host-242 ~]# which kdm
which: no kdm in (/root/bin:/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/usr/games)
[root@host-242 ~]#
Пакет стоит. Пробовал переустанавливать, ничё не меняется.
Как сделать, чтоб находил?
Это не совет, что сделать. Ни-ни!
Это, если бы попал в точно такую же ситуацию, что сделал бы у себя. На тест. Тупо на шару.
Создал бы симлинки - потом их можно будет снести если что - это только на проверку.
Сначала глянул бы:
$ cat ./etc/alternatives/packages.d/kde-kdm
/usr/bin/kdm /usr/lib/kde3/libexec/kdm 10
/usr/bin/kdm_config /usr/lib/kde3/libexec/kdm_config /usr/lib/kde3/libexec/kdm
/usr/bin/kdmctl /usr/lib/kde3/libexec/kdmctl /usr/lib/kde3/libexec/kdm
который из kdebase-kdm.
Тут увидел бы три важных связки:
/usr/bin/kdm /usr/lib/kde3/libexec/kdm
/usr/bin/kdm_config /usr/lib/kde3/libexec/kdm_config
/usr/bin/kdmctl /usr/lib/kde3/libexec/kdmctl
И после этого тупо создал бы симлинки:
# ln -s /usr/lib/kde3/libexec/kdm /usr/bin/kdm
# ln -s /usr/lib/kde3/libexec/kdm_config /usr/bin/kdm_config
# ln -s /usr/lib/kde3/libexec/kdmctl /usr/bin/kdmctl
Первое, это путь к реально существующему бинарному файлу. Второе, путь к создаваемому симлинку.
Потом их если что даже через mc можно будет снести эти симлинки. Если надо будет привести в исходный вид. Бинарники останутся на месте.
Потом ещё раз проверил бы, чтобы сервис стартовал только на пятом уровне.
А затем стартанул бы его.
Потом 'init 3' - 'init 5', а то и вовсе ребутом, просто по-тупому.
Если всё заведётся (пока не вижу причины, чтобы не завелось), подробно описав ситуацию, спросил бы на багтрекере, что делать, чтобы работало из коробки. И что (возможно?) не сделал как надо.
Это размышления на тему, что между пакетами kde4base-workspace-kdm и kdebase-kdm возникает конфликт, поскольку обеим нужен симлинк /usr/bin/kdm, конфига и kdmctl:
# По chroot'у
# cat /etc/altlinux-release
ALT Linux 6.0.2 KDesktop (Centaurea Sadleriana)
# ls -l /usr/bin/|grep kdm
lrwxrwxrwx 1 root root 36 Июн 5 2012 kdm -> /etc/alternatives/links/|usr|bin|kdm
lrwxrwxrwx 1 root root 43 Июн 5 2012 kdm_config -> /etc/alternatives/links/|usr|bin|kdm_config
lrwxrwxrwx 1 root root 39 Июн 5 2012 kdmctl -> /etc/alternatives/links/|usr|bin|kdmctl
Альтернативы, это тоже симлинки ведущие на свои бинарные файлы в libexec четверокед.
# ls -l "/etc/alternatives/links/|usr|bin|kdm"
lrwxrwxrwx 1 root root 25 Июн 5 2012 /etc/alternatives/links/|usr|bin|kdm -> /usr/lib/kde4/libexec/kdm
# ls -l "/etc/alternatives/links/|usr|bin|kdm_config"
lrwxrwxrwx 1 root root 32 Июн 5 2012 /etc/alternatives/links/|usr|bin|kdm_config -> /usr/lib/kde4/libexec/kdm_config
# ls -l "/etc/alternatives/links/|usr|bin|kdmctl"
lrwxrwxrwx 1 root root 28 Июн 5 2012 /etc/alternatives/links/|usr|bin|kdmctl -> /usr/lib/kde4/libexec/kdmctl
Т.е. в четверокедах образуется цепочка симлинк-симлинк-бинарник в libexec.
Приблизительно так же должно быть для tde'шного kdm.
Так что
два короля два kdm, tde'шный и четверокедный никак в моём издевательстве с симлинками в одном каталоге не усидят. Либо - либо.
А другие имена симлинкам давать нельзя, prefdm их перебирать не будет. Для него они просто не будут существовать.
Вот такая мысля на-мусор.
Тут чо?
Если симлинка /usr/bin/kdm не будет, ни systemd, ни init kdm не поднимут, поскольку оба поднимают его через один и тот же prefdm, который из пакета xinitrc.
И если ничего по $PATH root'а никакого *dm не будет найдено, *dm не взлетит.
Что в рассылке в 2009-ом и упоминалось.
PS
В четверокедах тоже эта связка есть:
# cat /etc/alternatives/packages.d/kde4-kdm
/usr/bin/kdm /usr/lib/kde4/libexec/kdm 20
/usr/bin/kdm_config /usr/lib/kde4/libexec/kdm_config /usr/lib/kde4/libexec/kdm
/usr/bin/kdmctl /usr/lib/kde4/libexec/kdmctl /usr/lib/kde4/libexec/kdm
Пытаюсь догадаться, что симлинк-симлинк_альтернативы создаётся постинсталляционным скриптом и в самом пакете этой связки симлинков нет:
# rpm -ql kde4base-workspace-kdm|grep alternat
/etc/alternatives/packages.d/kde4-kdm
Но она есть после инсталляции пакета. См. вывод выше.
В kdebase-kdm эта тройная цепочка тоже должна быть. И опять пытаюсь догадаться, что постинсталляционный скрипт kdebase-kdm не отработал и не создал цепочку симлинк-симлинк-бинарь.
Из-за чего kdm и не поднимается.
Единственно до меня не доходит, какую роль играют промежуточные симлинки:
# ls -l /etc/alternatives/links/|grep kdm
lrwxrwxrwx 1 root root 25 Июн 5 2012 |usr|bin|kdm -> /usr/lib/kde4/libexec/kdm
lrwxrwxrwx 1 root root 32 Июн 5 2012 |usr|bin|kdm_config -> /usr/lib/kde4/libexec/kdm_config
lrwxrwxrwx 1 root root 28 Июн 5 2012 |usr|bin|kdmctl -> /usr/lib/kde4/libexec/kdmctl
И почему симлинк /usr/bin/kdm приходит к /usr/lib/kde*/libexec/kdm таким окольным путём, а не сразу напрямую к бинарю. Если вся сущность симлинка /usr/bin/kdm заключается в том, чтобы помочь бинарю /usr/lib/kde*/libexec/kdm попасть в /usr/bin/.