Ubuntu 解决E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)

今天想在ubuntu上配置nodejs的环境。结果用apt install安装软件时出现报错。

$ sudo apt-get update  

会得到下面错误提示:

E: 无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用)E: 无法对目录 /var/lib/apt/lists/ 加锁E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?

上网查了下,原来可能是有另外一个程序正在运行,由于它在运行时,会占用软件源更新时的系统锁(以下称“系统更新锁”,此锁文件在“/var/lib/apt/lists/”目录下),而当有新的apt-get进程生成时,就会因为得不到系统更新锁而出现”E: 无法获得锁 /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)”错误提示! 
而导致资源被锁的原因,可能是上次安装时没正常完成,而导致出现此状况。 
因此,我们只要将原先的apt-get进程杀死,从新激活新的apt-get进程,就可以让软件管理器正常工作了!

 

按照网上的教程,我查看了下现在还在运行的apt命令

ps -e | grep apt 

结果显示出了两个

   729 ?        00:00:00 apt.systemd.dai
  2299 ?        00:00:01 aptd

我也不清楚时什么时候未正常退出导致的错误。

然后执行kill命令

$sudo kill 11669  $sudo kill 25379 

还有第二种方法:

sudo rm /var/cache/apt/archives/lock  sudo rm /var/lib/dpkg/lock

 

 

在用apt-get安装软件时出现了类似于 
install-info: No dir file specified; try –help for more information.dpkg:处理 gettext (–configure)时出错: 子进程 post-installation script 返回了错误号 1 在处理时有错误发生: 
findutils 
E: Sub-process /usr/bin/dpkg returned an error code (1) 
第一种方法:

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bak //现将info文件夹更名
sudo mkdir /var/lib/dpkg/info //再新建一个新的info文件夹
sudo apt-get update
// 不用解释了吧
apt-get -f install xxxsudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info.bak
//执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info.bak文件夹下
sudo rm -rf /var/lib/dpkg/info //把自己新建的info文件夹删掉
sudo mv /var/lib/dpkg/info.bak /var/lib/dpkg/info //把以前的info文件夹重新改回名字

到此问题顺利解决

 

参考文章:http://www.th7.cn/system/lin/201708/225219.shtml

转载于:https://www.cnblogs.com/dion-90/p/8339956.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值