# 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安装新内核
- 背景
安装指定版本的内核
- 方法
在https://kernel.ubuntu.com/~kernel-ppa/mainline/ (opens new window)网站找到对应的内核版本,选择自己CPU架构对应的安装包,选择如下四个文件下载
:

下载完成后执行:
sudo dpkg -i *.deb
- 补充
常见的x86_64,amd64,i386,i686,i686,x86,armv7,aarch64,ppc64le分别表示:

# 4.Linux的upgrade和update的区别
sudo apt-get update: 命令的作用是同步您的本地计算机与软件源服务器上最新的软件包列表和版本信息,它不会下载或安装任何实际的软件包、程序或更新。它只是更新您本地“有哪些新东西可用”的目录或清单。sudo apt-get upgrade: 安装新的软件包版本,upgrade命令的作用是安装自上次更新以来所有已安装软件包的新版本。它比较您本地已安装的软件包版本与刚刚通过update命令获取的最新列表。它会识别所有可以更新的软件包,然后下载并安装它们,从而用新版本替换旧版本。