(adsbygoogle = window.adsbygoogle || []).push({});

# 1.systemd-udevd.service启动失败

  • 问题

Ubuntu下执行sudo apt-get upgrade时包报错,

systemd-udevd.service - idev Kernel Device Mangaer
    Loaded: error(Reason: Exec format error)
    Active: inactivate(dead)
    Docs: man:systemd-udevd.service(8)
          man:udev(7)
/lib/systemd/system/systemd-udevd.service:26: Executable path is not absolute: udevadm control --rel

解决

从报错信息来看,udevadm的可执行文件应该使用绝对路径,打开/lib/systemd/system/systemd-udevd.service文件,可以看到udevadm可执行文件确实使用的是相对路径,使用which udevadm查找udevadm的绝对路径,修改/lib/systemd/system/systemd-udevd.service文件的第26

# 可以看到第26行执行了可执行文件udevadm
sudo vi /lib/systemd/system/systemd-udevd.service
# 查找udevadm的绝对路径,/bin/udevadm
which udevadm 
# 改为`/bin/udevadm`
/bin/udevadm

重新启动udevadm服务即可,同样其他的Executable path is not absolute报错也可通过这种方式解决

  • 补充

udev为当前 Linux 默认的设备管理工具。udev 以守护进程的形式运行,通过侦听内核发出来的 uevent 来管理 /dev目录下的设备文件。不像之前的设备管理工具,udev 在用户空间 (user space) 运行,而不在内核空间 (kernel space) 运行。

# 2.Linuxapt-get upgrade时提示有n个软件未被升级

  • 问题:

apt-get upgrade没有解决软件包之间的依赖问题

  • 解决:

使用apt-get dist-upgrade

  • 补充
    • apt-get update是下载源里面的metadata的. 包括这个源有什么包, 每个包什么版本之类的
    • upgrade是根据update命令下载的metadata决定要更新什么包(同时获取每个包的位置),系统将现有的Package升级,如果有相依性的问题,而此相依性需要安装其它新的Package或影响到其它Package的相依性时,此Package就不会被升级,会保留下来.
    • dist-upgrade:可以聪明的解决相依性的问题,如果有相依性问题,需要安装/移除新的Package,就会试着去安装/移除它. (所以通常这个会被认为是有点风险的升级)

# 3.Linux安装新内核

  • 背景

安装指定版本的内核

下载完成后执行:

sudo dpkg -i *.deb
  • 补充

常见的x86_64,amd64,i386,i686,i686,x86,armv7,aarch64,ppc64le分别表示: