今天在尝试将tomcat日志做定时清理的时候,了解到 crontabs 工具,在安装的过程中报
E: Unable to locate package crontabs
(找不到该源文件)的错误,上网寻找解决方案,执行了 apt-get upgrade 方法,执行过程中发现apache挂掉,项目访问不到,立即中断命令,从而引发一系列问题。
首先先了解 apt-get update
跟 apt-get upgrade
的区别
update 是更新 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的地址,这样才能获取到最新的软件包
upgrade 是升级已安装的所有软件包,升级之后的版本就是本地地址里的,因此,在执行 upgrade 之前一定要执行 update, 这样才能更新到最新的
在执行apt-get upgreade中断后发现,再次执行 apt-get install 时会提示
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
在这个时候,主要是因为apt还在运行,此时的解决方案是:
1、杀掉apt进程
ps -ef | grep apt
kill -9 进程pid
2、删除锁定文件
锁定的文件会阻止 Linux 系统中某些文件或者数据的访问,这个概念也存在于 Windows 或者其他的操作系统中。
一旦你运行了 apt-get 或者 apt 命令,锁定文件将会创建于 /var/lib/apt/lists/、/var/lib/dpkg/、/var/cache/apt/archives/ 中。
这有助于运行中的 apt-get 或者 apt 进程能够避免被其它需要使用相同文件的用户或者系统进程所打断。当该进程执行完毕后,锁定文件将会删除。
首先运行下面的命令来移除 /var/lib/dpkg/ 文件夹下的锁定文件:
sudo rm /var/lib/dpkg/lock
之后像下面这样强制重新配置软件包:
sudo dpkg --configure -a
接下来,更新你的软件包源列表:
sudo apt update
但是由于上面执行apt-get upgrade的后怕,在执行sudo dpkg –configure -a我再次中断了
中断之后apt-get install 报错信息为:
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
解决方法为:
删除/var/lib/dpkg/updates/ 下的文件
sudo rm /var/lib/dpkg/updates/*
再执行
sudo apt-get update