Debian系统自动更新软件包问题如何解决

74次阅读
没有评论

共计 2401 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章主要介绍“Debian 系统自动更新软件包问题如何解决”的相关知识,丸趣 TV 小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Debian 系统自动更新软件包问题如何解决”文章能帮助大家解决问题。

首先我利用一款名为 nethogs 的实时网速监控程序查看是哪个进程在占据带宽,发现占据带宽的正是系统的 apt 包管理工具,我想肯定是系统在执行自动更新。杀掉这个进程后,我便去 google 了一下如何关闭 apt 包管理工具的的自动更新。网上人们提供的解决方案大都一致:修改 apt 的配置文件。

apt 关于自动更新的配置文件位于 /etc/apt/apt.conf.d/20auto-upgrades , 将其中的

apt::periodic::update-package-lists  1 
apt::periodic::unattended-upgrade  1

更改为

apt::periodic::update-package-lists  0 
apt::periodic::unattended-upgrade  0

其中

apt::periodic::update-package-lists; 每一天自动运行一次 apt-get update,1 表示启用,0 表示禁用。

apt::periodic::unattended-upgrade; 每一天运行一次 unattended-upgrade 安全升级脚本,1 表示启用,0 表示禁用。

然而,并无卵用,第二天开机后 apt 又执行自动更新了,更奇怪的是杀掉 apt 进程不久之后它会再一次运行。这时我才意识到一件事情,apt 是不会自动把自己调入内存运行的,一定是另有进程调用了它。打开进程管理器之后,查看 apt 进程的依赖关系,发现果然它有一个名为 packagekit 的父进程,我查了一下 packagekit 是一个旨在简化 linux 发行版安装和更新软件的系统,它为不同的包管理工具提供了统一的前端,你可以在不同的 linux 发行版中使用它来管理软件包。

我的系统默认在开机时启动 packgekit 服务,查看 packagekit 的启动单元:
cat /lib/systemd/system/packagekit.service

[unit]
description=packagekit daemon
# pk does not know how to do anything on ostree-managed systems;
# currently the design is to have dedicated daemons like
# eos-updater and rpm-ostree, and gnome-software talks to those.
conditionpathexists=!/run/ostree-booted
[service]
type=dbus
busname=org.freedesktop.packagekit
user=root
execstart=/usr/lib/packagekit/packagekitd

系统每次开机时都会启动这个单元,执行 /usr/lib/packagekit/packagekitd 命令,而 packagekit 又将在运行期间调起 apt 下载需要更新的软件包。

知道了这些问题自然也就解决了,禁用此服务: systemctl disable packagekit.service.

或者干脆删除 /lib/systemd/system/ 目录下的 packagekit.service (当然你也可以把这个文件移动到别的地方去,以后用到时再放回来)

在那之后,系统便再也没有执行过自动更新了。

[附]

是一个能按进程实时监控网络的命令行工具,它可以动态的展示某一时刻正在进行通信的进程的网络流量信息。
在 debian/ubuntu 下,使用 apt-get install nethogs 安装它。
或编译安装:

wget -c https://github.com/raboof/nethogs/archive/v0.8.5.tar.gz
tar xf v0.8.5.tar.gz 
cd ./nethogs-0.8.5/
make   make install

如果编译失败需要安装依赖库

apt-get install libncurses5-dev libpcap-dev

使用

root@zsimline$ nethogs
nethogs version 0.8.5-2+b1
pid user program dev sent received 
2181 mxsyx /usr/share/code/code usb0 0.449 0.900 kb/sec
1598 mxsyx /usr/lib/chromium/chromium usb0 0.031 0.018 kb/sec
? root unknown tcp 0.000 0.000 kb/sec
 total 0.480 0.917 kb/se

指定网卡

root@zsimline$ nethogs wlan0 #  监听 wlan0
root@zsimline$ nethogs -a #  监听所有网卡 

指定刷新频率 -d seconds (默认为 1)

root@zsimline$ nethogs -d 2

指定刷新次数 -c number (默认不限)

root@zsimline$ nethogs -c 10

交互模式

在进入 nethogs 之后,可以使用如下的交互命令:

q: 退出
s: 按照发送流量排序
r: 按照流量排序
m: 修改网速单位 (kb, b, mb) and kb/s

关于“Debian 系统自动更新软件包问题如何解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注丸趣 TV 行业资讯频道,丸趣 TV 小编每天都会为大家更新不同的知识点。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计2401字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)