簡體   English   中英

嘗試使用python-apt API安裝軟件包時發生錯誤

[英]error while trying to install a package using the python-apt API

我找到了我需要的代碼。 它來自此鏈接: 如何使用python-apt API安裝軟件包

#!/usr/bin/env python
# aptinstall.py

import apt
import sys

pkg_name = "libjs-yui-doc"

cache = apt.cache.Cache()
cache.update()   # error is in this line

pkg = cache[pkg_name]
if pkg.is_installed:
    print "{pkg_name} already installed".format(pkg_name=pkg_name)
else:
    pkg.mark_install()

    try:
        cache.commit()
    except Exception, arg:
        print >> sys.stderr, "Sorry, package installation failed [{err}]".format(err=str(arg))

但是我不能使其工作。 我在網上搜索了該問題。 據說應該沒有激活的程序包管理器,apt,pip等。 但是,我的計算機中沒有打開包管理器,apt,pip等。 我以為計算機啟動時,某些軟件包管理器可以處於活動狀態。 所以我打了

 ps -aux 

在終端中查看活動的進程,但是我沒有看到與程序包管理器相關的任何活動進程(我對此不確定100%,因為我不知道的任何進程都可能與程序包管理器相關。但是如何我能知道嗎?) 總而言之,我啟動了計算機並僅打開了終端。 然后我輸入python aptinstall.py並按Enter。 我遇到以下錯誤:

Traceback (most recent call last):
  File "aptinstall.py", line 7, in <module>
    cache.update()
  File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 397, in update
    raise LockFailedException("Failed to lock %s" % lockfile)
apt.cache.LockFailedException: Failed to lock /var/lib/apt/lists/lock

我通過在終端中輸入以下命令來刪除鎖:sudo rm / var / lib / dpkg / lock也不起作用。

我怎么解決這個問題? 任何想法將不勝感激。

請嘗試在ps查找update-manager 它會定期自動運行,因此可能會鎖定apt db。

有三種不同的原因導致此錯誤。

1-如前所述,如果有任何程序包管理器正在運行(例如; pip,apt-get,synaptic等),它將給出錯誤。

2-如果您在虛擬機中使用ubuntu,則會導致相同的錯誤。

3-如果您在沒有root特權的情況下運行程序,則將導致相同的錯誤。 例如,如果使用“ python aptinstall.py”運行程序,則會出現錯誤,使用“ sudo python aptinstall.py”運行程序是正確的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM