Created attachment 8744 [details] screenshot происходящего в консоли Свежая инсталляция Simply-9. Немного манипуляций apt-get {remove,install,autoremove}. Время от времени происходит следующее: 1) При загрузке системы отображается splash screen с надписью "9-я платформа", каким-то рисунком, но больше ничего не происходит. 2) В это же время на второй консоли (Ctrl-Alt-F2) происходит бурная деятельность, увы, никуда не ведущая на протяжении длительного времени. Файл с фото в приложении.
Из этого пике система не выходит.
Нашел, в чем проблема. В результате apt-get autoremove после удаления xfce удалился пакет lightdb-gtk-greeter, без которого ничего не работает. Смахивает на пропущенную зависимость для пакета lightdm. Если altlinux подерживается алтьтернативные зависимости, можно поставить зависимость lightdm от любого из lightdm-{gtk,qt,kde}-greeter, хотя работоспособность последнего я не проверял. Если есть какие-то причины этого не делать, можно хотя бы поменить в Simply Linux этот пакет как явно запрошенный пользователем, чтобы apt-get autoremove его не удалял после смены DE/WM.
(Ответ для Aleksey Cheusov на комментарий #0) > Свежая инсталляция Simply 9. После следующей строчки -- уже нет :] > Немного манипуляций apt-get {remove,install,autoremove}. Вот здесь бы конкретизировать. Насколько понимаю, ты менял xfce на lxde, а насчёт autoremove легкомысленно отнёсся к моему предложению сразу взять http://nightly.altlinux.org/p9/permalink/alt-p9-lxde-latest-x86_64.iso? > Время от времени происходит следующее: В смысле раз в N загрузок, но не каждую загрузку? Это было бы странно. (Ответ для Aleksey Cheusov на комментарий #2) > В результате apt-get autoremove после удаления xfce удалился пакет > lightdb-gtk-greeter, без которого ничего не работает. Смахивает на > пропущенную зависимость для пакета lightdm. Да, там доступны альтернативы, а насчёт autoremove не просто так предупреждал -- сейчас инсталятор не размечает что-либо как явно запрошенное, насколько мне известно. Возможно, есть смысл в lightdm-*-greeter сделать общий Provides: и добавить в lightdm зависимость на него, но тогда предсказуемы другие грабли -- в случае слишком раннего раскрытия виртуальной зависимости при установке lightdm в одной транзакции, а заданного greeter'а -- в другой можно огрести установку ещё одного greeter'а в нагрузку к нужному.
(In reply to Michael Shigorin from comment #3) > (Ответ для Aleksey Cheusov на комментарий #0) > > Немного манипуляций apt-get {remove,install,autoremove}. > Вот здесь бы конкретизировать. Насколько понимаю, ты менял xfce на lxde, Да > а насчёт autoremove легкомысленно отнёсся к моему предложению сразу взять > http://nightly.altlinux.org/p9/permalink/alt-p9-lxde-latest-x86_64.iso? При правильной и хорошо продуманной организации "виртуальных" или "мета" пакетов (за которыми одни зависимости) и правильном выставлении флага "явно затребовано пользователем" в инсталяторе последовательность apt-get remove task-xfce-desktop (naming convention из Debian, да) apt-get install task-lxde-desktop apt-get autoremove должно плавненько превращать один starterkit в другой с точностью до пакета ;-) > (Ответ для Aleksey Cheusov на комментарий #2) > > В результате apt-get autoremove после удаления xfce удалился пакет > > lightdb-gtk-greeter, без которого ничего не работает. Смахивает на > > пропущенную зависимость для пакета lightdm. > Да, там доступны альтернативы, а насчёт autoremove не просто так > предупреждал -- сейчас инсталятор не размечает что-либо как явно > запрошенное, насколько мне известно. Это косяк. Конкретно в этом месте его несложно исправить. Или флажком или правильной зависимостью в пакете lightdm. > Возможно, есть смысл в lightdm-*-greeter сделать общий Provides: и добавить > в lightdm зависимость на него, но тогда предсказуемы другие грабли -- в > случае слишком раннего раскрытия виртуальной зависимости при установке > lightdm в одной транзакции, а заданного greeter'а -- в другой можно огрести > установку ещё одного greeter'а в нагрузку к нужному. Этого не понял, поскольку не понимаю, что значит "транзакция". Но это, видимо, не совсем мне :-)
Мне кажется странной описанная здесь ситуация. Так как ещё в сентябре прошлого года boyarsh@ поднял эту тему: https://lists.altlinux.org/pipermail/devel-distro/2019-September/001749.html и решение проблемы apt-get autoremove было найдено. Все пакеты помечаются после установки инсталлятором, как установленные напрямую, а не в следствии установки других пакетов (если ничего не путаю). Поэтому не должны удаляться при помощи apt-get autoremove. Так что надо попробовать воспроизвести.
(In reply to Антон Мидюков from comment #5) > Все пакеты помечаются > после установки инсталлятором, как установленные напрямую, а не в следствии > установки других пакетов (если ничего не путаю). IMHO это о-о-о-очень плохое решение. > Поэтому не должны удаляться > при помощи apt-get autoremove. > > Так что надо попробовать воспроизвести. Попробуйте. Вручную пакет lightdb-gtk-greeter я точно не удалял, он удалился после apt-get autoremove.
(Ответ для Aleksey Cheusov на комментарий #6) > (In reply to Антон Мидюков from comment #5) > > Так что надо попробовать воспроизвести. > > Попробуйте. Вручную пакет lightdb-gtk-greeter я точно не удалял, он удалился > после apt-get autoremove. Проверил. Сразу же после установки apt-get autoremove ничего не удаляет. Так что это, скорее всего, Вы что-то удалили, что повлекло за собой удаление lightdm-gtk-greeter. Что касается провайдесов для greeter'ов. Вполне здравая идея, но прилёт не того гритера будет стопроцентно проблемой, так как lightdm помимо гритеров требуют такие пакеты, как: cinnamon-regular (стоит исправить в любом случае) light-locker (прописано явно, можно или нет - вопрос) guest-account (прописано явно, можно или нет - вопрос) installer-feature-lightdm (прописано явно, можно или нет - вопрос) lightdm-profiles-zastava (его можно и не трогать?) Если на это решимся, надо как-то сделать вес у lightdm-gtk-greeter больше чем у остальных. Чтобы при установке lightdm ставился именно он, а не случайный greeter.
(In reply to Антон Мидюков from comment #7) > Проверил. Сразу же после установки apt-get autoremove ничего не удаляет. Так > что это, скорее всего, Вы что-то удалили, что повлекло за собой удаление > lightdm-gtk-greeter. Не скорее всего, а совершенно точно. Удалил я xfce. Об этом сказано выше. > Что касается провайдесов для greeter'ов. Вполне здравая идея, но прилёт не > того гритера будет стопроцентно проблемой, так как lightdm помимо гритеров > требуют такие пакеты, как: > cinnamon-regular (стоит исправить в любом случае) > light-locker (прописано явно, можно или нет - вопрос) > guest-account (прописано явно, можно или нет - вопрос) > installer-feature-lightdm (прописано явно, можно или нет - вопрос) > lightdm-profiles-zastava (его можно и не трогать?) > > Если на это решимся, надо как-то сделать вес у lightdm-gtk-greeter больше > чем у остальных. Чтобы при установке lightdm ставился именно он, а не > случайный greeter. Я не лез в детали, как там и где прописаны зависимости. Но цель такая должна быть (на мой взгляд) apt-get remove xfce (это касается Simply Linux) apt-get install какой-угодно-DE apt-get autoremove должен приводить к работающей системе. В идеале очень похожей на соответствующий стартеркит.
Я удалил полностью xfce и сделал apt-get autoremove. Удалилось много всего, но lightdm-gtk-greeter остался. При этом пакетов, зависящих от lightdm-gtk-greeter, нет. Я считаю, что никакого бага нет.
(In reply to Антон Мидюков from comment #9) > Я удалил полностью xfce и сделал apt-get autoremove. Удалилось много всего, > но lightdm-gtk-greeter остался. При этом пакетов, зависящих от > lightdm-gtk-greeter, нет. > Я считаю, что никакого бага нет. Так не бывает. Невозможно удалить пакет, о существовании которого даже не знаешь. Вот последовательность моих действий с apt-get. apt-get update apt-get install joe apt-get install kernel-image-ovz-el7 kernel-headers-ovz-el7 apt-get install applience-desktop-lxde apt-get install rxvt-unicode apt-get install ctwm apt-get install mksh apt-get install tmux apt-get install git-core apt-get install chromium apt-get install firefox-esr apt-get remove ristretto apt-get remove shotwell apt-get remove inkscape apt-get remove gImageReader apt-get remove gimagereader apt-get remove imagereader apt-get remove gimagereader-common apt-get remove xsane apt-get remove shotcut audacity audacious apt-get remove xfburn medit apt-get autoremove apt-get remove thunderbird apt-get autoremove apt-get remove libreoffice apt-get autoremove apt-get install fonts-bitmap-terminus apt-get install xinitrc apt-get install xinit apt-get install xinit apt-get install xinit xinitrc apt-get install gdm apt-get remove lightdm apt-get install lightdm apt-get remove gdb apt-get remove gdm apt-get install clang gdb Где точно сломалось я сказать не могу, вероятнее всего после autoremove.
Команды с удалением gdm и после -- это уже после сломавшегося lightdm.
(In reply to Aleksey Cheusov from comment #11) > Команды с удалением gdm и после -- это уже после сломавшегося lightdm. Собственно, ладно, предыдущее можно не читать. Вот пруф. [root@ryzen ~]# apt-get autoremove Reading Package Lists... Done Building Dependency Tree... Done Calculating Autoremove... Done 0 upgraded, 0 newly installed, 0 removed and 0 not upgraded. [root@ryzen ~]# apt-mark auto lightdm-gtk-greeter Reading Package Lists... Done Building Dependency Tree... Done lightdm-gtk-greeter set to automatically installed. [root@ryzen ~]# apt-get autoremove Reading Package Lists... Done Building Dependency Tree... Done Calculating Autoremove... Done The following packages will be REMOVED: liblightdm-gobject lightdm-gtk-greeter 0 upgraded, 0 newly installed, 2 removed and 0 not upgraded. Need to get 0B of archives. After unpacking 449kB disk space will be freed. Do you want to continue? [Y/n] n Abort. [root@ryzen ~]# rpm -q lightdm lightdm-1.30.0-alt6.x86_64 [root@ryzen ~]# Итого: lightdm никоим образом не "хочет" по зависимостям lighdm-gtk-greeter. Обратите внимание на следующее. [root@ryzen ~]# rpm -q --provides lightdm-gtk-greeter lightdm-greeter # <--- смотреть надо сюда /usr/share/xgreeters/lightdm-default-greeter.desktop = 100 lightdm-gtk-greeter = 2.0.1-alt15:p9+240922.100.3.1 [root@ryzen ~]# rpm -q --requires lightdm | grep lightdm-greeter [root@ryzen ~]# Т.е., частично решение, которое Миша предлагал, уже сделано. Осталось добавить lightdm-greeter с требования пакета lightdm.
Я дал новую информацию, из которой ясно, что это точно баг.
(Ответ для Aleksey Cheusov на комментарий #10) > (In reply to Антон Мидюков from comment #9) > > Я удалил полностью xfce и сделал apt-get autoremove. Удалилось много всего, > > но lightdm-gtk-greeter остался. При этом пакетов, зависящих от > > lightdm-gtk-greeter, нет. > > Я считаю, что никакого бага нет. > > Так не бывает. Невозможно удалить пакет, о существовании которого даже не > знаешь. Вот последовательность моих действий с apt-get. > > apt-get update > apt-get install joe > apt-get install kernel-image-ovz-el7 kernel-headers-ovz-el7 > apt-get install applience-desktop-lxde > apt-get install rxvt-unicode > apt-get install ctwm > apt-get install mksh > apt-get install tmux > apt-get install git-core > apt-get install chromium > apt-get install firefox-esr > apt-get remove ristretto > apt-get remove shotwell > apt-get remove inkscape > apt-get remove gImageReader > apt-get remove gimagereader > apt-get remove imagereader > apt-get remove gimagereader-common > apt-get remove xsane > apt-get remove shotcut audacity audacious > apt-get remove xfburn medit > apt-get autoremove > apt-get remove thunderbird > apt-get autoremove > apt-get remove libreoffice > apt-get autoremove > apt-get install fonts-bitmap-terminus > apt-get install xinitrc > apt-get install xinit > apt-get install xinit > apt-get install xinit xinitrc > apt-get install gdm > apt-get remove lightdm После этого удалился lightdm-gtk-greeter. > apt-get install lightdm После этого lightdm-gtk-greeter не устанавливается. Это повод для отдельного бага. В комментарии 7 я написал о фронте работ. Заводите отдельный баг на lightdm. > apt-get remove gdb > apt-get remove gdm > apt-get install clang gdb > > Где точно сломалось я сказать не могу, вероятнее всего после autoremove. Я уверен, что сломалось именно там.
Конечно, бага в связке lightdm/lightdb-*-greeter. Так других то багов нет. И решение элементарное: 1) Добавляем provides:lightdm-greeter в lightdm-gtk-greeter 2) Добавляем provides:lightdm-greeter в lightdm-kde-greeter 3) Добавляем provides:lightdm-greeter в lightdm-qt-greeter 4) Обеспечиваем lightdm-gtk-greeter приоритет над остальными Я не понимаю, зачем нужен другой тикет. На всякий случай, напомню, что конкретно в пакете lightdm все уже сделано. Исправлять нужно greeter-ы.
(Ответ для Aleksey Cheusov на комментарий #15) > Конечно, бага в связке lightdm/lightdb-*-greeter. Так других то багов нет. И > решение элементарное: > > 1) Добавляем provides:lightdm-greeter в lightdm-gtk-greeter > 2) Добавляем provides:lightdm-greeter в lightdm-kde-greeter > 3) Добавляем provides:lightdm-greeter в lightdm-qt-greeter > 4) Обеспечиваем lightdm-gtk-greeter приоритет над остальными > Это будет головная боль для разработчиков дистрибутивов. Неожиданные прилёты ненужного greeter в дополнение к нужному. > Я не понимаю, зачем нужен другой тикет. Затем, чтобы было понятно, что и почему исправляем. > > На всякий случай, напомню, что конкретно в пакете lightdm все уже сделано. > Исправлять нужно greeter-ы. Это понятно. А я напомню, что в комментарии 7 написал список пакетов, которые нужно исправить, чтобы не было потенциального головняка у разработчиков дистрибутивов.
(In reply to Антон Мидюков from comment #16) > (Ответ для Aleksey Cheusov на комментарий #15) > > Конечно, бага в связке lightdm/lightdb-*-greeter. Так других то багов нет. И > > решение элементарное: > > > > 1) Добавляем provides:lightdm-greeter в lightdm-gtk-greeter > > 2) Добавляем provides:lightdm-greeter в lightdm-kde-greeter > > 3) Добавляем provides:lightdm-greeter в lightdm-qt-greeter > > 4) Обеспечиваем lightdm-gtk-greeter приоритет над остальными > > Это будет головная боль для разработчиков дистрибутивов. Неожиданные прилёты > ненужного greeter в дополнение к нужному. Прошу пардон. Не в гритеры нужно добавлять "provides:lightdm-greeter", они там уже есть, а в lightdm добавить "requires:lightdm-greeter". Но сути это не меняет. Давайте конкретно. Какому конкретно условно "нужному" пакету прилетит "ненужный" lighdm-gtk-greeter, если добавить "requires:lightdm-greeter" в lightdm? > А я напомню, что в комментарии 7 написал список пакетов, > которые нужно исправить, чтобы не было потенциального головняка у > разработчиков дистрибутивов. Я не вижу связи между отсутствием "requires:lightdm-greeter" в lightdm и тем фактом, что у lightdm есть еще и другие названные вами зависимости. Поясните. Вопрос про "прилетит ненужное" и "головняк" -- выше. Что прилетит, и где головняк?
(Ответ для Aleksey Cheusov на комментарий #17) > (In reply to Антон Мидюков from comment #16) > > (Ответ для Aleksey Cheusov на комментарий #15) > > > Конечно, бага в связке lightdm/lightdb-*-greeter. Так других то багов нет. И > > > решение элементарное: > > > > > > 1) Добавляем provides:lightdm-greeter в lightdm-gtk-greeter > > > 2) Добавляем provides:lightdm-greeter в lightdm-kde-greeter > > > 3) Добавляем provides:lightdm-greeter в lightdm-qt-greeter > > > 4) Обеспечиваем lightdm-gtk-greeter приоритет над остальными > > > > Это будет головная боль для разработчиков дистрибутивов. Неожиданные прилёты > > ненужного greeter в дополнение к нужному. > > Прошу пардон. Не в гритеры нужно добавлять "provides:lightdm-greeter", они > там уже есть, а в lightdm добавить "requires:lightdm-greeter". > Но сути это не меняет. > > Давайте конкретно. Какому конкретно условно "нужному" пакету прилетит > "ненужный" lighdm-gtk-greeter, если добавить "requires:lightdm-greeter" в > lightdm? > > > А я напомню, что в комментарии 7 написал список пакетов, > > которые нужно исправить, чтобы не было потенциального головняка у > > разработчиков дистрибутивов. > > Я не вижу связи между отсутствием "requires:lightdm-greeter" в lightdm и тем > фактом, что у lightdm есть еще и другие названные вами зависимости. Поясните. > Вопрос про "прилетит ненужное" и "головняк" -- выше. Что прилетит, > и где головняк? Добавляешь в сборку light-locker, а целевым greeter назначаешь - slick-greeter. В результате ставится сначала light-locker, который установит lightdm, который притянет lightdm-gtk-greeter. slick-greeter поставится позже. Итого в сборке лишний lightdm-gtk-greeter. Эту проблему также можно обойти, используя pkgpriorities в mkimage-profiles. Но, учитывая, что mkimage-profiles не выпускался полгода, и существует свой форк под каждый дистрибутив, всё это дополнительные сложности создаёт.
(In reply to Антон Мидюков from comment #18) > Добавляешь в сборку light-locker, а целевым greeter назначаешь - > slick-greeter. В результате ставится сначала light-locker, который установит > lightdm, который притянет lightdm-gtk-greeter. slick-greeter поставится > позже. Итого в сборке лишний lightdm-gtk-greeter. Эту проблему также можно > обойти, используя pkgpriorities в mkimage-profiles. Но, учитывая, что > mkimage-profiles не выпускался полгода, и существует свой форк под каждый > дистрибутив, всё это дополнительные сложности создаёт. Я нашел в репе 5 пакетов с greeter в имени. Я не очень понимаю в деталях, что они все делают, но если все они взаимозаменяемы, тогда в дополнение к фиксу lightdm нужно выпилить все явные requires от конкретного greeter-а, например, в приведенном случае в light-locker нужно выпилить явную зависимость от slick-greeter и заменить ее на lightdm-greeter. Если все они одинаковы, ничего же не сломается. Так? Думаю, здесь проблема описана достаточно хорошо, чтобы решить ее в рамках одного тикета. Заводить тикеты или нет решайте сами, вы альт-линукс разработчики. Если заведете новые, поставьте меня в СС, пожалуйста. P.S. Даже если ограничиться фиксом только на lightdm, "лишний" пакет lightdm-gtk-greeter в системе всяко лучше, чем неработающая система с зависшим splash screen-ом, на котором ничего не происходит. Бедные новички...
(Ответ для Aleksey Cheusov на комментарий #19) > Бедные новички... Лёш, новички не дают для разминки очередь в ногу: >>> Немного манипуляций apt-get {remove,install,autoremove}. :-) (дочитал было до comment 10, пришёл к тем же выводам, что в comment 14, далее озадачился comment 11; по итогу написанное было здесь стёр)
(In reply to Michael Shigorin from comment #20) > (Ответ для Aleksey Cheusov на комментарий #19) > > Бедные новички... > Лёш, новички не дают для разминки очередь в ногу: В описании "Девятой платформы" большими буквами написано про apt-mark и все такое. Я возрадовался. Ну, наконец-то! Додумались. У нас то оно издревле, причем соответствующий флежек стоит на уровне pkgdb! И терли мы это не раз, кажется. Я попользовался, а оно и отломалось. > >>> Немного манипуляций apt-get {remove,install,autoremove}. > :-) > (дочитал было до comment 10, пришёл к тем же выводам, что в comment 14, > далее озадачился comment 11; по итогу написанное было здесь стёр) Блин, Миша. Ну банальный же вопрос. Мы тут уже по десятому кругу ходим. 1) Добавляем requires:lightdm-greeter в lightdm. 2) Убираем все явные зависимости от разных гритеров отовсюду, везде пишем requires:lightdm-greeter. 3) Ставим приоритет на какой хотите greeter, лишь бы работало. Это при условии, что все ваши гритеры одинаковы по функции. Цель: не должен пользователь видеть висящий укран, на котором ничего не происходит. Никто из новичков не догадается жмякнуть Ctrl-Alt-F2, чтобы узреть там полумертвого lightdm. Он просто грохнет Альт и поставит Дебиан/Убунту, где все работает. P.S. В моем пакетном манагере "nih mark" появился 22.12.2010 года, а в pkgsrc это было вообще вооьбще всегда. Это фундаментальная фича, и она должна работать нормально ;-)
Я в задании 250945 добавил для lightdm зависимость на lightdm-greeter. При попытке установить lightdm тянется slick-greeter. Вопрос, как сделать приоритет у lightdm-gtk-greeter? В остальном, если в списках пакетов light-locker и подобные не добавляются, то и без приоритета лишние greeter не притягиваются.
Думаю, версионированием Provides: -- ... Provides: ... = 0.0.1 ... Provides: ... = 0.0.2 ...
(Ответ для Michael Shigorin на комментарий #23) > Думаю, версионированием Provides: -- > > ... Provides: ... = 0.0.1 > ... Provides: ... = 0.0.2 > ... Я пробовал версионировать Provides у lightdm-gtk-greeter. Не помогло. Ставится slick-greeter.
(In reply to Антон Мидюков from comment #24) > Я пробовал версионировать Provides у lightdm-gtk-greeter. Не помогло. > Ставится slick-greeter. Я извиняюсь, что вмешиваюсь, но ты же вроде сам говорил, что slick-greeter ставится явным образом от другого пакета. Весьма вероятно, что ресолвер написан таким образом, что у явной зависимости приоритет, чтобы исключить дубликаты. Или все явные зависимости гритеров уже убраны?
Это все точно не проблема SL. На lightdm, что тут делать или не делать решит его мантейнер.
А можно тогда ещё раз, кратко, в чём состоит проблема? А то всё, что тут написано, напоминает разговор про то, какие бывают гритеры и который гритер по умолчанию лучше...
(Ответ для manowar@altlinux.org на комментарий #27) > А можно тогда ещё раз, кратко, в чём состоит проблема? А то всё, что тут > написано, напоминает разговор про то, какие бывают гритеры и который гритер > по умолчанию лучше... Суть проблемы в том, что lightdm не имеет зависимости на greeter. Пользователь устанавливает lightdm и не понимает, почему ничего не работает. Предлагается сделать зависимость на виртуальный пакет lightdm-greeter.
Почему-то каждый раз, когда я делаю новый виртуальный пакет потом выясняется, что он лишний. :) Но попробуем.
(Ответ для manowar@altlinux.org на комментарий #29) > Почему-то каждый раз, когда я делаю новый виртуальный пакет потом > выясняется, что он лишний. :) Но попробуем. Так этот виртуальный пакет уже есть. Он провайдится всеми тремя гритерами. Требуется поставить зависимость на него.
Посмотрите: https://git.altlinux.org/tasks/298396/ .
lightdm-1.30.0-alt22 -> sisyphus: Fri May 06 2022 Paul Wolneykien <manowar@altlinux> 1.30.0-alt22 - Disable the following patches: chauthtok, default-username, switch. - Fix: Sending VT number on session stop (closes: 42637) - Build with tests. Thu Apr 14 2022 Paul Wolneykien <manowar@altlinux> 1.30.0-alt21 - Requires: lightdm-greeter (closes: 38407).