解决Debian系统自动更新软件包的问题的方法

不知从何时开始,我的电脑每天开机连接上网络之后,不断的在下载数据,状态栏显示网速达到每秒1到2兆。开始我还不太在意,不过后来由于带宽全部被这种莫名其奥妙的下载占据了,我连网页都无否正常浏览了,所以我决定解决掉这个问题。下面记录一下解决这个问题的过程。

首先我利用一款名为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 (当然你也可以把这个文件移动到别的地方去,以后用到时再放回来)

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

[附]

nethohs是一个能按进程实时监控网络的命令行工具,它可以动态的展示某一时刻正在进行通信的进程的网络流量信息。
在 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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 在Debian 9系统上安装Mysql数据库的方法教程

    前言 看到题目大家应都会想,在 Debian 9 上安装 Mysql?那不是很简单的事儿吗?直接 sudo apt install mysql-server 不就行了吗? 没想到遇到了几个之前没遇到的问题,耽误了不少时间. 原来在 Debian 9 中,Mysql 已经被替换成了 MariaDB,所以和传统的安装 Mysql 有一些不一样的地方. 安装方法 首先我们还是可以用 sudo apt install mysql-server 这样安装上的,但是安装上的还是 MariaDB,所以最好还是

  • Debian系统下为PHP程序配置Nginx服务器的基本教程

    Nginx 目前来说已经很流行了,所以打算把现有的Apache先替换一部分,在批量部署和管理方面都要考虑到.因为nginx的所有模块都是静态编译的不像apache那样可以动态添加模块,所以在一开始就要考虑清楚需求,结合现在很火的LAMP模式,其中P最常见的是PHP,目前较好的FastCGI的管理器有spaw-fcgi和php-fpm,而php老版本都是需要源码安装通过打补丁的方式把php-fpm打进去,spaw-fcgi是lighttpd默认的FastCGI管理器,因为牵扯到源码安装,当前的软件

  • 在Ubuntu或Debian系统的服务器上卸载MySQL的方法

    对于有的vps,系统默认安装了mysql.我们需要从我们的服务器.vps上卸载(移除)默认的mysql.那么如何(怎样)在ubuntu\Debian上卸载mysql? 通常情况下,下列mysql软件包会被安装到 Debian .Ubuntu中: mysql-client - The latest version of MySQL database client(最新版的mysql数据库客户端). mysql-server - The latest version of MySQL databas

  • linux服务器系统CentOS、uBuntu、Gentoo、FreeBSD、Debian的比较

    官网:http://www.centos.org/ CentOS其实是Redhat的内核,感觉是会成熟稳定一点,相比旧Redhat,他多了一个yum的命令,学Debian一样自动安装软件:但我感觉CentOS的可以Yum的东西相比Debian或Ubuntu,实在太少了:CentOS游走在年轻与成熟之间,它比Ubuntu更注重安全性,你看他的CentOS5.0默认一装好就自带并打开防火墙就知道:而且有一个叫SELinux的东东在里面,让不同的程序之间权限有所限制,这也是我装CentOS一些软件经常

  • 在Debian系统下配置LNMP的教程

    LNMP环境的配置是需要让我们的主机支持Nginx.MySQL.PHP.phpMyAdmin,这样配置好之后就可以直接使用此环境,并在上面运行网站了,下面我来配置方法. 我们先来看官方说明 LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat.Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx.MySQL.PHP.phpMyAdmin)生产环境的Shell程序 1,安装MySQL 执行命令: apt-get install -y my

  • Debian 9系统下修改默认网卡为eth0的方法

    前言 Debian 9终于正式了,第一时间升级了自己在用的VPS,遇到一个小问题,没有网络了,排查之后发现网卡变成ens3了,而系统默认的网卡配置里(/etc/network/interfaces)却是eth0,本文主要介绍了关于Debian 9修改默认网卡为eth0的相关内容,下面来一起看看详细的介绍: 这里有两种方案 一种是干脆把网卡配置文件中的eth0直接改为ens3,然后ifup ens3即可恢复网络. 另外一种就是把ens3改回我们习惯的eth0,下面就是修改为eth0的具体操作. 方

  • 解决Debian系统自动更新软件包的问题的方法

    不知从何时开始,我的电脑每天开机连接上网络之后,不断的在下载数据,状态栏显示网速达到每秒1到2兆.开始我还不太在意,不过后来由于带宽全部被这种莫名其奥妙的下载占据了,我连网页都无否正常浏览了,所以我决定解决掉这个问题.下面记录一下解决这个问题的过程. 首先我利用一款名为nethogs的实时网速监控程序查看是哪个进程在占据带宽,发现占据带宽的正是系统的APT包管理工具,我想肯定是系统在执行自动更新.杀掉这个进程后,我便去Google了一下如何关闭APT包管理工具的的自动更新.网上人们提供的解决方案

  • 解决Python pip 自动更新升级失败的问题

    在使用python pip的时候,经常会发生pip版本过低导致失败的情况,这时候,系统会提示让你使用如下命令对pip进行升级更新: python -m pip install --upgrade pip 但这种更新方式,经常会出现错误,如下所示 多尝试几次,依旧还是显示错误,更新失败,那么该如何解决这个问题. 解决方案-使用以下命令: python -m pip install -U --force-reinstall pip 即可完美解决这种出错,更新示例如下 希望能帮到碰上同样问题的朋友.

  • Android程序自动更新功能模块的实现方法【附完整demo源码下载】

    本文实例讲述了Android程序自动更新功能模块的实现方法.分享给大家供大家参考,具体如下: 在程序启动的时候检测服务器上有没有对应版本更新,如果有更新,提示用户是否更新. 在程序启动的时候首先调用更新模块检测服务器上存放的版本号跟当前程序的版本号如果大于当前版本号,弹出更新对话框,如果用户选择更新,则显示当前更新状态,然后替换当前程序. 程序调用版本更新检测: private UpdateManager updateMan; private ProgressDialog updateProgr

  • CentOS 8设置自动更新的完整步骤

    你可以为数据和计算机做的最好的事情就是确保它们的安全.就像打开更新一样简单,但是,大多数使用CentOS 8的人都不知道该怎么做. Setup-CentOS-8-Automatic-Updates 在本文中,你将学习如何在CentOS 8 Linux机器上启用自动软件更新.你将学习如何设置系统,从而无需手动安装安全性和其他更新. 1.使用自动RPM软件包设置自动CentOS 8更新 首先是要安装DNF自动 RPM软件包.该软件包提供了自动启动的DNF组件.要安装它,请使用以下命令. # dnf

  • 基于Retrofit2+RxJava2实现Android App自动更新

    本文实例为大家分享了Retrofit2 RxJava2实现Android App自动更新,具体内容如下 功能解析 自动更新可以说已经是App的标配了,很多第三方平台也都支持这个功能,最近手头上的项目需要加入这个App自动更新,考虑到项目里有用到Retrofit2和RxJava2,于是打算使用它俩自己实现这个功能. 分析App自动更新,可以分为以下三个功能点: 1.APK文件的下载 2.下载进度的实时更新显示 3.下载完成后的自动安装 其中比较难的一点是下载进度的实时更新显示,更难的是如何优雅的进

  • android实现软件自动更新的步骤

    本篇文章是直接下载最新的APK安装的方法,并不是增量下载该APk. 想要实现一个android应用,自动更新下载APK软件的方法,我采取的是以下几步方法: 1.每次进入主界面时,获取服务器的数据,看是否是最新版本,是,则无操作,否,则进行以下步骤: 2.弹出是否更新软件的对话框,点击下载后 3.弹出下载的进度条的对话框,开始下载,可以上随时点击按钮,停止下载 4.下载完成后,调用系统安装软件的服务,安装软件 效果图:     实现过程:   新建一个UpdateManager方法,具体内容我已经

  • Android实现APP自动更新功能

    现在一般的android软件都是需要不断更新的,当你打开某个app的时候,如果有新的版本,它会提示你有新版本需要更新.该小程序实现的就是这个功能. 该小程序的特点是,当有更新时,会弹出一个提示框,点击确定,则在通知来创建一个进度条进行下载,点击取消,则取消更新. 以下是详细代码: 1.创建布局文件notification_item.xml,用于在通知栏生成一个进度条和下载图标. <?xml version="1.0" encoding="utf-8"?>

  • PostgreSQL更新表时时间戳不会自动更新的解决方法

    PostgreSQL更新表时时间戳不会自动更新的解决方法,具体如下 操作系统:CentOS7.3.1611_x64 PostgreSQL版本:9.6 问题描述 PostgreSQL执行Insert语句时,自动填入时间的功能可以在创建表时实现,但更新表时时间戳不会自动自动更新. 在mysql中可以在创建表时定义自动更新字段,比如 : create table ab ( id int, changetimestamp timestamp NOT NULL default CURRENT_TIMEST

  • win2003远程退出后系统自动注销问题的解决方法

    解决windows2003远程退出后系统自动注销 如果通过上面的操作,还会出现远程桌面连接断开过段时间之后,运行的软件自动关闭的话,就再进行以下操作: 1.开始-->运行-->tscc.msc 连接-->RDP-Tcp右键属性-->会话 把这里面的替代用户设置的设置都改为从不,并且把从不勾选. 如果前述工作做完后,本人的远程服务器还是问题依旧,接下来: 取消开机按ctl+alt+del,这一点大家都会吧. 2.开始-->所有程序--> 管理工具-->本地安全策略-

随机推荐