LINUX.ORG.RU
ФорумTalks

Dependency hell

 , ,


0

1

Давайте я расскажу, как пакетная база разваливается в стабильном дистрибутиве.

Вот нужно нам поставить драйвер для rtl8188eu. Смотрим в репах:

ester / # dnf search 8188
dkms-rtl8188eu.x86_64 : The standalone RTL8188EU driver
dkms-rtl8188eu.i686 : The standalone RTL8188EU driver
dkms-rtl8188gu.noarch : The standalone RTL8188gu driver
kernel-module-8188gu-5.15-generic.x86_64 : Binary module 8188gu for kernel-5.15-generic
kernel-module-8188gu-5.15-generic.i686 : Binary module 8188gu for kernel-5.15-generic
kernel-module-8188gu-6.1-generic.x86_64 : Binary module 8188gu for kernel-6.1-generic
kernel-module-8188gu-6.1-generic.i686 : Binary module 8188gu for kernel-6.1-generic
kernel-source-rtl8188gu.noarch : Source code of RTL8188gu kernel driver
ester / # dnf info dkms-rtl8188eu.x86_64
Имеющиеся пакеты
Имя          : dkms-rtl8188eu
Версия       : 4.1.8
Выпуск       : 0.775137f.1
Архитектура  : x86_64
Размер       : 436 k
Источник     : rtl8188eu-4.1.8-0.775137f.1.src.rpm
Репозиторий  : mirror-rosa-x86_64-contrib
Краткое опис : The standalone RTL8188EU driver
URL          : https://github.com/lwfinger/rtl8188eu
Лицензия     : GPLv2
Описание     : This package contains the driver for Realtek 8188 802.11n USB wireless
             : adapters (RTL8188EU).

Пробуем поставить. Получаем говна на лопате вместо установки:

ester / # dnf install dkms-rtl8188eu.x86_64
Ошибка: 
 Проблема: package dkms-rtl8188eu-4.1.8-0.775137f.1.x86_64 requires dkms, but none of the providers can be installed
  - package kernel-6.1-generic-6.1.20-2.x86_64 requires (kernel-6.1-generic-devel(x86-64) = 6.1.20-2 if dkms), but none of the providers can be installed
  - conflicting requests
  - problem with installed package kernel-6.1-generic-6.1.20-2.x86_64
(попробуйте добавить «--skip-broken» для пропуска удаляемых пакетов или «--nobest», чтобы использовать не только наилучшие варианты пакетов)

Ладно, давайте выясним, чо ему не нравится.

Вот такие ядра установлены в системе:

ester / # dnf list installed | grep kernel-6.1-generic
kernel-6.1-generic.x86_64                           6.1.20-2                   @Main                       
kernel-6.1-generic.x86_64                           6.1.58-1                   @mirror-rosa-x86_64-main    
task-kernel-6.1-generic.x86_64                      0.4-2                      @Main                       

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

ester / # dnf repoquery --whatprovides kernel-devel
kernel-5.10-generic-devel-0:5.10.184-1.i686
kernel-5.10-generic-devel-0:5.10.184-1.x86_64
kernel-5.15-generic-devel-0:5.15.127-1.i686
kernel-5.15-generic-devel-0:5.15.127-1.x86_64
kernel-5.16-generic-devel-0:5.16.19-2.i686
kernel-5.16-generic-devel-0:5.16.19-2.x86_64
kernel-5.17-generic-devel-0:5.17.11-2.i686
kernel-5.17-generic-devel-0:5.17.11-2.x86_64
kernel-5.4-generic-devel-0:5.4.150-1.i686
kernel-5.4-generic-devel-0:5.4.150-1.x86_64
kernel-6.1-generic-devel-0:6.1.19-1.i686
kernel-6.1-generic-devel-0:6.1.19-1.x86_64
kernel-6.1-generic-devel-0:6.1.58-1.i686
kernel-6.1-generic-devel-0:6.1.58-1.x86_64

Ну вы поняли, да?

Вы берёте официальный установщик ROSA Desktop Fresh. Ставите с него систему. Получаете оттуда ядро 6.1.20-2. Обновляетесь из официального репозитория до самых свежих пакетов.

А ХИДЕРОВ К ЭТОМУ ЯДРУ В РЕПОЗИТОРИИ НЕТ.

Есть только хидеры для 6.1.19-1 и 6.1.58-1.

Такая вот стабильная платформа. Фантастично…

Чо-то я разочарован.

Ответ на: комментарий от sanyo1234

Там десяток поддерживаемых форматов, включая SGI, Postscript, Truevision и т.п. :)

png-то есть?

Но какая связь между DE и скриншотилкой, которую можно поставить любую при желании?

Потому что в любом нормальном DE она есть из коробки и ничего ставить не нужно.

cumvillain
()
Ответ на: комментарий от sanyo1234

Чем тебе PNG так приспичил? Ну есть, и что ? :)

Потому что png это дефолт. Непонятно откуда у тебя жопег вылез.

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)
Ответ на: комментарий от sanyo1234

Ого, есть готовые репы TDE для дистров (и для моего), попробую на досуге.

papin-aziat ★★★★★
()
Ответ на: комментарий от sanyo1234

https://raw.githubusercontent.com/a-prokopyev-resume/devops-netology/main/06-db-05-elasticsearch/images/htop.jpg

Это настолько проклято, что я даже развернул на полный экран картинку и позалипал в неё несколько минут.

Это прямо дух старой школы, почти дотянуло до скриншотов с AfterStep из 2003-го года.

Так жить нельзя.

wandrien ★★
() автор топика
Ответ на: комментарий от Mobutu_Sese_Seko

Я ненавижу плоскоту. Она перенапрягает зрение. Это дизайн, придуманный для показа на презентациях, а не для тех, кому за компом работать весь рабочий день.

А на скрине тут плохо не оформление, а хаос на панелях и неоптимальное использование пространства экрана.

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

А я считаю отвратительными все эти мыльные пузыри в стиле вендовисты. Они выглядят неряшливо и придурочно. Перенапрягает зрение цветастый китч, как по мне.

Mobutu_Sese_Seko
()
Ответ на: комментарий от Mobutu_Sese_Seko

Задача интерфейса - считываться глазами.

В Win7 за полупрозрачностями и размытиями испортили то, как считывается, какое окно на экране активно.

В Win10 решили не останавливаться на достигнутом и всрали вообще весь UI.

Я постоянно по работе переключаюсь между машинами с Linux, Win7 и Win10.

И Win10 - это UX-катастрофа. Это неразумительное серое на сером нечто, которое я с большим облегчением вырубаю, как только есть такая возможность.

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

Я ненавижу плоскоту. Она перенапрягает зрение. Это дизайн, придуманный для показа на презентациях, а не для тех, кому за компом работать весь рабочий день.

Давно ты видел выпуклый терминал?

cumvillain
()
Ответ на: комментарий от cumvillain

Двадцать пять лет назад. У нас в компьютерном классе тогда УКНЦ на писюки меняли. А хотя стоп, у писюков тоже были выпуклые ЭЛТ-мониторы.

Mobutu_Sese_Seko
()
Последнее исправление: Mobutu_Sese_Seko (всего исправлений: 1)
Ответ на: комментарий от cumvillain

Давно ты видел выпуклый терминал?

Ты поехавший? В терминале белые буквы на чёрном фоне.

А не это дизайнерское месиво из серого на сером.

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

Ты поехавший? В терминале белые буквы на чёрном фоне.

Ахахаха что. Белые на черном? Конечно же нет. В лучшем случае серые на черном. У меня вообще темно серые на грязнобелом.

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)
Ответ на: комментарий от papin-aziat

Ты как будто вчера линукс поставил.

Вопрос тут в том, почему спустя 30 лет у некоторых дистров такие проблемы ещё есть?

Косяки или то, что выглядит как косяки, везде завсегда имеются, и если ты обратишься к разработчикам, то тебе растолкуют почему так.

Потому что они обосрались? Мы это и так видим.

В общем, проще не искать и разбираться в причинах, а просто использовать, что предлагают как решение. Так и делай.

Предлагаю ТСу поставить нормальный дистр :)

hateyoufeel ★★★★★
()
Ответ на: комментарий от cumvillain

Я ненавижу плоскоту. Она перенапрягает зрение. Это дизайн, придуманный для показа на презентациях, а не для тех, кому за компом работать весь рабочий день.

Давно ты видел выпуклый терминал?

https://github.com/Swordfish90/cool-retro-term

Достаточно выпуклый? Там выпуклость настраивается, есличо. Можно ваще как через фишай сделать :DDDDDD

hateyoufeel ★★★★★
()
Ответ на: комментарий от wandrien

Десяточку что ли

Мы все знаем как минимум один дистрибутив, где никогда нет проблем с заголовочными файлами – GENTOO!!!

Ладно, в NixOS таких проблем у меня тоже не возникало. После никса каждый раз, когда читаю вот такие треды про «ааааа чо-то в дистре сломалос», чую как мой две тысячи седьмой возвращается.

P.S. всё равно в номинации «самая тупая отмаза трешаку в дистре» побеждает Рач. Там чуваки оправдывались, что не могут собирать нормально пакеты и делают это через полную жопу, потому что у одного из разрабов дома интернет медленный.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от wandrien

🤔

В Арче пакеты билд ферма собирает, а не локалхост

Я тоже так думал. А вот мейнтейнер хачкелловых пакетов в Arch сам писал, что линкует всё динамически (динамическая линковка в хачкелле не поддерживается, в мане большими буквами написано «ГРАНАТУ В РОТ НЕ КЛАСТЬ»), потому что загружать статические сборки у него не хватает канала.

hateyoufeel ★★★★★
()

Почитал внимательно ОП и вот что я увидел:

Вот такие ядра установлены в системе:

ester / # dnf list installed | grep kernel-6.1-generic
kernel-6.1-generic.x86_64                           6.1.20-2                   @Main                       
kernel-6.1-generic.x86_64                           6.1.58-1                   @mirror-rosa-x86_64-main    
task-kernel-6.1-generic.x86_64                      0.4-2                      @Main       

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

ester / # dnf repoquery --whatprovides kernel-devel
kernel-5.10-generic-devel-0:5.10.184-1.i686
kernel-5.10-generic-devel-0:5.10.184-1.x86_64
kernel-5.15-generic-devel-0:5.15.127-1.i686
kernel-5.15-generic-devel-0:5.15.127-1.x86_64
kernel-5.16-generic-devel-0:5.16.19-2.i686
kernel-5.16-generic-devel-0:5.16.19-2.x86_64
kernel-5.17-generic-devel-0:5.17.11-2.i686
kernel-5.17-generic-devel-0:5.17.11-2.x86_64
kernel-5.4-generic-devel-0:5.4.150-1.i686
kernel-5.4-generic-devel-0:5.4.150-1.x86_64
kernel-6.1-generic-devel-0:6.1.19-1.i686
kernel-6.1-generic-devel-0:6.1.19-1.x86_64
kernel-6.1-generic-devel-0:6.1.58-1.i686
kernel-6.1-generic-devel-0:6.1.58-1.x86_64

kernel-6.1-generic.x86_64 6.1.58-1

kernel-6.1-generic-devel-0:6.1.58-1.x86_64

Что мы имеем. Человек установил систему, потом обновил её, но ядро осталось старое. Потом он пытается установить заголовки которые уже обновились до новой версии, к старому ядру. Что могло пойти не так?

Я конечно понимаю, Роса та еще поделка, но нельзя же так.

Неужели это так сложно, загрузиться с новым ядром и установить для него заголовки? Или при установке системы сначала установить заголовки, а потом обновляться?

Такая подстава будет ждать в любом дистре.

utanho ★★★★★
()
Ответ на: комментарий от hateyoufeel

всё равно в номинации «самая тупая отмаза трешаку в дистре» побеждает Рач. Там чуваки оправдывались, что не могут собирать нормально пакеты и делают это через полную жопу, потому что у одного из разрабов дома интернет медленный

Это вы еще не знаете, как собираются пакеты в альте.

utanho ★★★★★
()
Ответ на: комментарий от sanyo1234

Оформление в стиле «догадок» времени? В нижнем правом углу «afternoon». Если надо поточнее, то можно посмотреть в нижний левый. Если время в аналоговом стиле недостаточно точно, то происходит переход в верхний правый, где цифрами точное время написано?

Irben ★★★
()
Ответ на: комментарий от utanho

всё равно в номинации «самая тупая отмаза трешаку в дистре» побеждает Рач. Там чуваки оправдывались, что не могут собирать нормально пакеты и делают это через полную жопу, потому что у одного из разрабов дома интернет медленный

Это вы еще не знаете, как собираются пакеты в альте.

С большого похмелья?

Тут относительно недавно кто-то жаловался, что устраивался к ним работать, а там бухалово с утра до вечера.

hateyoufeel ★★★★★
()
Ответ на: комментарий от utanho

Такая подстава будет ждать в любом дистре.

В любом? Вот прямо в любом? Ну дружочек, это сильное утверждение. Теперь тебе придётся взять с десяток основных дистров и показать, как именно «там подстава будет ждать».

Неужели это так сложно, загрузиться с новым ядром и установить для него заголовки? Или при установке системы сначала установить заголовки, а потом обновляться?

Какая же каша в голове.

Ты умудрился заблудиться буквально в трёх соснах, там, где просто физически невозможно заблудиться.

wandrien ★★
() автор топика

Так, ну разобрался я с делами, добрался до этой копии ROSA снова.

Удалил ядро без хедеров, поставил dkms.

Результат «работы» :

ester / # cat /var/lib/dkms/rtl8188eu/4.1.8-1/build/make.log
DKMS make.log for rtl8188eu-4.1.8-1 for kernel 6.1.58-generic-1rosa2021.1-x86_64 (x86_64)
Пн 06 ноя 2023 19:16:35 +07
make: вход в каталог «/usr/src/linux-6.1.58-generic-1rosa2021.1-x86_64»
scripts/Makefile.build:44: /root/Makefile: Нет такого файла или каталога
make[1]: *** Нет правила для сборки цели «/root/Makefile».  Останов.
make: *** [Makefile:2014: /root] Ошибка 2
make: выход из каталога «/usr/src/linux-6.1.58-generic-1rosa2021.1-x86_64»

Я херею в этом зоопарке. Почему-то я 12+ лет пользуюсь Арчем, и никогда вот таких на пустом месте косяков не ловил. Наверное потому, что в Арче софт пакетируют люди, которые им сами и пользуются. А не для галочки.

P.S. В ROSA 2012 этот же драйвер компилировался и работал без проблем.

wandrien ★★
() автор топика
Последнее исправление: wandrien (всего исправлений: 1)
ester / # dkms --rpm_safe_upgrade install -m rtl8188eu -v 4.1.8-1 -k 6.1.58-generic-1rosa2021.1-x86_64 

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area...
make -j4 KERNELRELEASE=6.1.58-generic-1rosa2021.1-x86_64 -C /lib/modules/6.1.58-generic-1rosa2021.1-x86_64/build M=/...(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.1.58-generic-1rosa2021.1-x86_64 (x86_64)
Consult /var/lib/dkms/rtl8188eu/4.1.8-1/build/make.log for more information.
ester / # cat /var/lib/dkms/rtl8188eu/4.1.8-1/build/make.log
DKMS make.log for rtl8188eu-4.1.8-1 for kernel 6.1.58-generic-1rosa2021.1-x86_64 (x86_64)
Пн 06 ноя 2023 19:31:22 +07
make: вход в каталог «/usr/src/linux-6.1.58-generic-1rosa2021.1-x86_64»
scripts/Makefile.build:44: //Makefile: Нет такого файла или каталога
make[1]: *** Нет правила для сборки цели «//Makefile».  Останов.
make: *** [Makefile:2014: /] Ошибка 2
make: выход из каталога «/usr/src/linux-6.1.58-generic-1rosa2021.1-x86_64»
ester / # 
wandrien ★★
() автор топика
Ответ на: комментарий от wandrien
ester / # grep /Makefile /usr/src/linux-6.1.58-generic-1rosa2021.1-x86_64/scripts/Makefile.build 
include $(srctree)/scripts/Makefile.compiler
include $(or $(wildcard $(kbuild-dir)/Kbuild),$(kbuild-dir)/Makefile)
include $(srctree)/scripts/Makefile.lib
include $(srctree)/scripts/Makefile.host
include $(srctree)/scripts/Makefile.userprogs
wandrien ★★
() автор топика

Лялекс готов к десктопу, ну.

Без умения отлаживать мейкфайлы, сраный драйвер на вайфай не поставить.

wandrien ★★
() автор топика
Последнее исправление: wandrien (всего исправлений: 1)
ester / # dkms --verbose --rpm_safe_upgrade install -m rtl8188eu -v 4.1.8-1 -k 6.1.58-generic-1rosa2021.1-x86_64 

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
make -C /lib/modules/6.1.58-generic-1rosa2021.1-x86_64/build M=/var/lib/dkms/rtl8188eu/4.1.8-1/build clean
make: вход в каталог «/usr/src/linux-6.1.58-generic-1rosa2021.1-x86_64»
make: выход из каталога «/usr/src/linux-6.1.58-generic-1rosa2021.1-x86_64»

{ make -j4 KERNELRELEASE=6.1.58-generic-1rosa2021.1-x86_64 -C /lib/modules/6.1.58-generic-1rosa2021.1-x86_64/build M=/; } >> /var/lib/dkms/rtl8188eu/4.1.8-1/build/make.log 2>&1
(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.1.58-generic-1rosa2021.1-x86_64 (x86_64)
Consult /var/lib/dkms/rtl8188eu/4.1.8-1/build/make.log for more information.

M=/, как…

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

Подумал, что может ядро слишком новое для этой версии драйвера.

Поставил 5.4.

Ничего не изменилось, та же ошибка.

Ладно, я сдаюсь. На этой машине будет пока стоять Арч.

wandrien ★★
() автор топика
Ответ на: комментарий от papin-aziat

Корпоративный уровень – это когда красноглазишь один раз и забываешь на много лет. Арч так умеет?

А в чем проблема? Ну и «забываешь на много лет» это совсем не корп. уровень.

anc ★★★★★
()
Ответ на: комментарий от wandrien

В Росе с ядрами полная фигня. Я даже пробовал свое ядро подсунуть, так дракут стал вываливаться с ошибками и система в итоге не грузилась. Плюнул в итоге.

Что-то они там перевелосипедили.

utanho ★★★★★
()

Все еще бомбит? Я просто отдыхал тут немного от интернетов. Вобщем хочу сказать что в Роса dkms это не главное, и эти модули ядра (обычно) уже скомпилированы заранее при сборке конкретной версии ядра т.е. просто установить драйвер и без dkms

Kernel headers конечно есть, но тыж generic пытался вонзить, а можно конкретнее указать какие поставить хочешь.

irton ★★★★★
()
Последнее исправление: irton (всего исправлений: 1)
Ответ на: комментарий от irton

Все еще бомбит?

Вообще нет, с чего ты взял. Я 15 лет плотно сижу на линуксе, да и вообще, как человек, который еще с Red Hat Linux 99-го года выпуска пытался выходить в инет (безуспешно), можно сказать, повидал некоторое дерьмо. Меня таким не пронять.

уже скомпилированы заранее при сборке конкретной версии ядра т.е. просто установить драйвер и без dkms

Результат dnf search приведён в ОП, данный модуль не поставляется в бинарном виде. Небольшой факт-чекинг перед комментингом не помешалинг.

Kernel headers конечно есть, но тыж generic пытался вонзить

Я пытался поставить штатный пакет из штатных реп на штатную конфигурацию системы, развёрнутую из штатного iso-образа. Так что что я сделал не так, говоришь?

Вобщем хочу сказать что в Роса dkms это не главное

Вообще вся механизация dkms в Росе - это срань, при чем что в 2012-й, что 2021-й, то есть за 10 лет ничего не поменялось. Но ничего, придётся и этот кактус пожевать, но попозже. У меня там еще в планах отладка визуального бага в гимпе, так что сборка драйвера пока подождёт.

Жизнь вообще была бы проще, если бы существовал фиксированный релиз на технологиях Арча, но увы. Мир не идеален.

wandrien ★★
() автор топика

Еще из смешного, автоматическая сборка модулей dkms в Росе фейлится, если система запущена в чруте. Она пытается собирать модули для версии ядра, на которой запущена. И естественно, у ней это не получается, так как нет к нему ни хидеров, ничего.

Ручная при этом работает.

Этот детский баг тоже со времени Мандривы тянется.

wandrien ★★
() автор топика
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

ктоб сказал как пофиксить :) было бы все просто - уже бы давно исправили… наверное.

Тыж понимаешь что в рабочее время такое фиксить можно только если задачу поставят (ну там тикет на багзилле или что-то такое). А внерабочее время как участник сообщества я незнаю что там фиксить ибо нет потребности в dkms.

irton ★★★★★
()
Последнее исправление: irton (всего исправлений: 1)
Ответ на: комментарий от irton

В следующий раз, когда снова наткнусь на эту траблу, загляну в код. Щас сижу с ноута, где все драйвера без dkms работают, слава богу.

было бы все просто - уже бы давно исправили… наверное.

Вообще вангую, что там всё исправление свёдётся к удалению лишних строк кода. Чтобы оно не пыталось из uname брать версию ядра для сборки модулей.

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

Она пытается собирать модули для версии ядра, на которой запущена.

Такое не только в Росе. Я в раче на такое попадал.

utanho ★★★★★
()
Ответ на: комментарий от wandrien

Я завсегда только за то чтобы убрать dependency hell, но на тысячи программ всегда есть дефицит «смотрящих». Вчера на форуме товарищ скинул сообщение в личку что не хватает зависимости у проги, зависимость вписал, товарищу спасибо, -1 проблема из бесконечности.

irton ★★★★★
()
Последнее исправление: irton (всего исправлений: 1)

Вы берёте официальный установщик

Ставите с него систему

Получаете оттуда ядро 6.1.20-2

А ХИДЕРОВ К ЭТОМУ ЯДРУ В РЕПОЗИТОРИИ НЕТ

Есть только хидеры для 6.1.19-1 и 6.1.58-1

Частое явление, кстати. Старое ядро дропнули и выкинули пакеты. Надо просто юзать те ядра, где есть хедеры.

З.Ы. Обычно так делают днищебродские дистры, типа для экономии места.

Gonzo ★★★★★
()
Последнее исправление: Gonzo (всего исправлений: 1)
Ответ на: комментарий от Gonzo

Я считаю, что если дистрибутив позиционируется как стабильный, то он либо:

  • Должен вообще не дропать никакие пакеты, если они были публично опубликованы в реп.
  • Должен ВОТ ТАКИМИ буквами писать везде, какое именно подмножество пакетов считать стабильным.

А так да, днищенский полуроллинг получается.

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

ВОТ ТАКИМИ буквами писать везде, какое именно подмножество пакетов считать стабильным

Дык, дропнутый не значит нестабильный… Стабильный немного у другом.

Gonzo ★★★★★
()
Ответ на: комментарий от Gonzo

В моём понимании стабильный - значит возможность bug-to-bug повторить окружение.

Если у меня на машине A стоит пакет xxx-1.2.3, а при попытке развернуть ОС на машине Б, я обнаруживаю, что в репах есть только пакет версии xxx-1.2.48, то стабильность нарушена.

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

Штош, хорошо что есть выбор среди ОС, Роса не подойдет тебе.

irton ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)