我似乎找不到安装 libudev-dev 包的解决方案。它输出此错误
以下软件包具有未满足的依赖关系:libudev-dev:依赖:libudev1(= 229-4ubuntu4)但需要安装 229-4ubuntu5
所以我尝试了 sudo apt-get install libudev1
libudev1已经是最新版本(229-4ubuntu5)。
您可能已经注意到,我的机器上安装了它的最新版本。即 229-4ubuntu5,我也尝试了这里建议的内容。 https://stackoverflow.com/questions/17181073/ubuntu-12-04-libudev-dev-wont-install-because-of-dependencies
sudo apt-cache madison libudev-dev
sudo apt-cache madison libudev1
sudo apt-get install libudev-dev
但我仍然遇到同样的错误。有人能帮我解决这个问题吗?
答案1
我的猜测是该档案的控制文件中存在一个简单的混淆,您应该将其报告为一个错误。
然而,真正的解决方法可能是这种非常肮脏的黑客手段,它也会破坏一切!
从以下位置下载软件包这里然后打开终端并切换到您的Downloads
文件夹。
使用以下命令解压.deb
档案:
dpkg-deb -R libudev-dev_229-4ubuntu4_amd64.deb tmp
然后更改文件内的一行tmp/DEBIAN/control
:
sed -i 's/229-4ubuntu4/229-4ubuntu5/' tmp/DEBIAN/control
之后重新打包.deb
文件(我在这里选择给它一个不同的名字)
dpkg-deb -b tmp libudev-dev_229-fixbuntu_amd64.deb
现在,在确保已安装所有依赖项后,您就可以安装它了:
dpkg -i libudev-dev_229-fixbuntu_amd64.deb
笔记:此修复可能有效,但如果维护人员没有正确考虑变更,它也可能造成破坏。因此,请理解,您自行承担此风险。
答案2
尝试降级 libudev1:
apt-get install libudev1=<version>
...到 libudev-dev 所需的版本。
然后,它会删除很多必须手动重新安装的必需软件包。例如,
sudo apt-get install libudev1=229-4ubuntu13
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
The following packages will be REMOVED:
alsa-base apparmor apparmor-easyprof-ubuntu bluez brltty checkbox-converged checkbox-gui click-apparmor console-setup console-setup-linux gdm3 gnome-bluetooth gnome-session gnome-session-bin
gnome-session-wayland gnome-shell gnome-shell-extensions gnome-user-share gvfs gvfs-backends gvfs-daemons gvfs-fuse indicator-power indicator-sound initramfs-tools initramfs-tools-core kbd libcanberra-pulse
lightdm linux-image-4.4.0-72-generic linux-image-extra-4.4.0-72-generic lvm2 media-player-info mountall nautilus network-manager network-manager-gnome plainbox-provider-checkbox
plainbox-provider-resource-generic plymouth plymouth-label plymouth-theme-ubuntu-logo plymouth-theme-ubuntu-text pulseaudio pulseaudio-module-bluetooth pulseaudio-module-x11 python3-apparmor-click
python3-checkbox-support rhythmbox rhythmbox-plugin-zeitgeist rhythmbox-plugins snapd software-properties-gtk ubuntu-drivers-common ubuntu-minimal udev udisks2 unity-greeter upower upstart usb-creator-common
usb-creator-gtk xorg xserver-xorg xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev xserver-xorg-input-synaptics xserver-xorg-input-vmmouse xserver-xorg-input-wacom xserver-xorg-video-all
xserver-xorg-video-amdgpu xserver-xorg-video-ati xserver-xorg-video-fbdev xserver-xorg-video-intel xserver-xorg-video-nouveau xserver-xorg-video-qxl xserver-xorg-video-radeon xserver-xorg-video-vesa
xserver-xorg-video-vmware
The following packages will be DOWNGRADED:
libudev1
0 upgraded, 0 newly installed, 1 downgraded, 80 to remove and 0 not upgraded.
for i in $(echo 'all removed packages above'); do apt-get install $i;done
最后,您可以安装您想要的 libudev-dev。
答案3
正如@doug 在评论中所说:
您的源未更新并且可能未启用 xenial-updates repo。GUI ::打开软件和更新 > 更新选项卡 >确保前两个已启用。(安全及推荐更新)然后重新加载你的来源 或者
命令行::sudo apt 更新。两个软件包的当前版本都是 229-4ubuntu21.2。
在 CLI 视图中:: 在 /etc/apt/sources.list 中将取消注释或添加什么?以下内容?
deb http://security.ubuntu.com/ubuntu/ xenial-security multiverse main universe restricted