个人网络日志站点知行空间,欢迎访问!
(一)ExecutablePathIsNotAbsolute及Linux内核升级和dist-upgrade
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/网站找到对应的内核版本,选择自己CPU
架构对应的安装包,选择如下四个文件下载
:
下载完成后执行:
sudo dpkg -i *.deb
- 补充
常见的x86_64
,amd64
,i386
,i686
,i686
,x86
,armv7
,aarch64
,ppc64le
分别表示: