Невозможно установить `libdrm-dev` в Ubuntu 20.04, поскольку для этого требуются более старые зависимости, чем те, что у меня есть.

      $ sudo apt install libdrm-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libdrm-dev : Depends: libdrm2 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is to be installed
              Depends: libdrm-intel1 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is to be installed
              Depends: libdrm-radeon1 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is to be installed
              Depends: libdrm-nouveau2 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is to be installed
              Depends: libdrm-amdgpu1 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is to be installed
E: Unable to correct problems, you have held broken packages.

Могу ли я заставить его использовать мои новые версии? Есть ли что-то, что мне не хватает?sudo aptitude install libdrm-devпоказывает, что мои текущие версии новее:

      $ sudo aptitude install libdrm-dev
The following NEW packages will be installed:
  libdrm-dev{b} 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 126 kB of archives. After unpacking 658 kB will be used.
The following packages have unmet dependencies:
 libdrm-dev : Depends: libdrm2 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed
              Depends: libdrm-intel1 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed
              Depends: libdrm-radeon1 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed
              Depends: libdrm-nouveau2 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed
              Depends: libdrm-amdgpu1 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libdrm-dev [Not Installed]                         



Accept this solution? [Y/n/q/?] 

1 ответ

[Что я рекомендую] Используйте для установки путем автоматического понижения версии установленных зависимостей.

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

Просто команды:

      sudo aptitude install libdrm-dev
# then choose these options:
n  # do NOT leave things as-is
y  # DO downgrade dependencies
y  # Do continue with the install

После запускаsudo aptitude install libdrm-dev, выбиратьnoна свое предложениеKeep the following packages at their current version, и выберите его предложение там, где оно указано.Remove the following packages,Install the following packages, иDowngrade the following packages. Тогда выбирайyesеще раз, где сказано:0 packages upgraded, 2 newly installed, 13 downgraded, 5 to remove and 0 not upgraded. Need to get 33.4 MB of archives. After unpacking 140 MB will be freed. Do you want to continue? [Y/n/?]. Вот и все! Он понизил (слегка) некоторые пакеты и теперь устанавливается нормально!

Подробности:

Вот полная команда и вывод (я объясню это ниже). Я отметил, где я ввел , и , с некоторыми<======маркеры:

      $ sudo aptitude install libdrm-dev
The following NEW packages will be installed:
  libdrm-dev{b} 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 126 kB of archives. After unpacking 658 kB will be used.
The following packages have unmet dependencies:
 libdrm-dev : Depends: libdrm2 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed
              Depends: libdrm-intel1 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed
              Depends: libdrm-radeon1 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed
              Depends: libdrm-nouveau2 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed
              Depends: libdrm-amdgpu1 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libdrm-dev [Not Installed]                         



Accept this solution? [Y/n/q/?] n                           <=================
The following actions will resolve these dependencies:

      Remove the following packages:                                                    
1)      mesa-va-drivers [21.2.6-0ubuntu0.1~20.04.2 (now)]                               
2)      va-driver-all [2.7.0-2 (focal, now)]                                            

      Install the following packages:                                                   
3)      libllvm9 [1:9.0.1-12 (focal)]                                                   

      Downgrade the following packages:                                                 
4)      libdrm-amdgpu1 [2.4.107-8ubuntu1~20.04.2 (now) -> 2.4.101-2 (focal)]            
5)      libdrm-intel1 [2.4.107-8ubuntu1~20.04.2 (now) -> 2.4.101-2 (focal)]             
6)      libdrm-nouveau2 [2.4.107-8ubuntu1~20.04.2 (now) -> 2.4.101-2 (focal)]           
7)      libdrm-radeon1 [2.4.107-8ubuntu1~20.04.2 (now) -> 2.4.101-2 (focal)]            
8)      libdrm2 [2.4.107-8ubuntu1~20.04.2 (now) -> 2.4.101-2 (focal)]                   
9)      libegl-mesa0 [21.2.6-0ubuntu0.1~20.04.2 (now) -> 20.0.4-2ubuntu1 (focal)]       
10)     libgbm1 [21.2.6-0ubuntu0.1~20.04.2 (now) -> 20.0.4-2ubuntu1 (focal)]            
11)     libgl1-mesa-dri [21.2.6-0ubuntu0.1~20.04.2 (now) -> 20.0.4-2ubuntu1 (focal)]    
12)     libglapi-mesa [21.2.6-0ubuntu0.1~20.04.2 (now) -> 20.0.4-2ubuntu1 (focal)]      
13)     libglx-mesa0 [21.2.6-0ubuntu0.1~20.04.2 (now) -> 20.0.4-2ubuntu1 (focal)]       
14)     libosmesa6 [21.2.6-0ubuntu0.1~20.04.2 (now) -> 20.0.4-2ubuntu1 (focal)]         
15)     mesa-vdpau-drivers [21.2.6-0ubuntu0.1~20.04.2 (now) -> 20.0.4-2ubuntu1 (focal)] 
16)     mesa-vulkan-drivers [21.2.6-0ubuntu0.1~20.04.2 (now) -> 20.0.4-2ubuntu1 (focal)]



Accept this solution? [Y/n/q/?] y                           <=================
The following packages will be DOWNGRADED:
  libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libegl-mesa0 libgbm1 libgl1-mesa-dri libglapi-mesa libglx-mesa0 libosmesa6 mesa-vdpau-drivers mesa-vulkan-drivers 
The following NEW packages will be installed:
  libdrm-dev libllvm9{a} 
The following packages will be REMOVED:
  i965-va-driver{u} intel-media-va-driver{u} libigdgmm11{u} mesa-va-drivers{a} va-driver-all{a} 
0 packages upgraded, 2 newly installed, 13 downgraded, 5 to remove and 0 not upgraded.
Need to get 33.4 MB of archives. After unpacking 140 MB will be freed.
Do you want to continue? [Y/n/?] y                          <=================

Обратите внимание на неудовлетворенные зависимости. Как видите, там написано, что нужна libdrm2 версии 2.4.101-2, но у меня установлена ​​версия 2.4.107-8ubuntu1~20.04.2 и т. д. Моя версия, как ни странно, слишком новая для нее.

      The following packages have unmet dependencies:
 libdrm-dev : Depends: libdrm2 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed
              Depends: libdrm-intel1 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed
              Depends: libdrm-radeon1 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed
              Depends: libdrm-nouveau2 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed
              Depends: libdrm-amdgpu1 (= 2.4.101-2) but 2.4.107-8ubuntu1~20.04.2 is installed

Так,aptitudeсначала предлагает решение:

           Keep the following packages at their current version:
1)     libdrm-dev [Not Installed] 

я нажимаюnотвергнуть это решение. Затем он предлагает лучшее решение для понижения версии зависимостей и выполнения установки. Я выбираю этот вариант. Тогда я должен выбратьyснова позже.

После этого вы увидите, что обычныйsudo apt install libdrm-devсейчас тоже работает нормально, показывая этоlibdrm-devуже успешно установлен!:

      $ sudo apt install libdrm-dev
[sudo] password for gabriel: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libdrm-dev is already the newest version (2.4.101-2).
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.

Сделанный!

И теперь я могу вернуться к установке драйвера displaylink в Ubuntu 20.04, чтобы использовать свой новый двойной адаптер USB-A 4K, 60 Гц! Смотрите мой ответ здесь: Адаптер USB-HDMI, работающий с Ubuntu.

Альтернатива: как собрать и установить последнюю версию из исходников

Это не совсем ответ на мой вопрос, но вот как построитьlibdrmиз источника:

Исходный код находится здесь:

Загрузите последнюю версию с тегами здесь: https://gitlab.freedesktop.org/mesa/drm/-/tags.

Загрузите и извлеките его.

См. инструкции «Компиляция» в файле readme: https://gitlab.freedesktop.org/mesa/drm .https://gitlab.freedesktop.org/mesa/drm .

Бегать:

      meson builddir/  # prep a folder
time sudo ninja -C builddir/ install  # build and install

Сборка и установка заняли всего 20 секунд. Он устанавливается в/usr/local/include/libdrm.

Другие вопросы по тегам