当我尝试使用 apt 或 apt-get 安装任何东西(Ubuntu 16.04)时,我得到以下信息:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
Run Code Online (Sandbox Code Playgroud)
这是以下的输出ps aux | grep apt:
root 23906 0.0 0.0 4504 784 ? Ss Feb20 0:00 /bin/sh /usr/lib/apt/apt.systemd.daily install
root 23912 0.0 0.0 4504 1640 ? S Feb20 0:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install
Run Code Online (Sandbox Code Playgroud)
但这些是子流程:
root 23906 0.0 0.0 4504 784 ? Ss Feb20 0:00 /bin/sh /usr/lib/apt/apt.systemd.daily install …Run Code Online (Sandbox Code Playgroud) 这很奇怪,我昨天在我的一台目标机器上注意到它,今天它也发生在其余的机器上。我还尝试从另一台机器运行剧本,但发生了同样的事情。看来这个问题是在 Ubuntu 20.04 上 apt 升级后出现的。第一次 apt 升级完成时,一切都很好,但之后模块开始出现故障。
错误输出如下:
TASK [common : Update package manager] *************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: AttributeError: module 'lib
' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'
fatal: [mr-bones]: FAILED! => changed=false
module_stderr: |-
Traceback (most recent call last):
File "<stdin>", line 107, in <module>
File "<stdin>", line 99, in _ansiballz_main
File "<stdin>", line 47, in invoke_module
File "/usr/lib/python3.8/runpy.py", line 207, in run_module
return _run_module_code(code, init_globals, run_name, …Run Code Online (Sandbox Code Playgroud) Ubuntu 22.04 在执行 apt 之后扫描正在运行的进程(以使用旧库)。它将显示“扫描进程”和“扫描候选者”:
我们的服务器(不幸的是)需要运行数以万计的进程。在这些服务器上,此过程大约需要 5 小时。
我明白这样做的原因,但是可以禁用它吗?到目前为止,我没有看到 apt 或 systemd 设置。
占用所有 CPU 的进程是systemd, 或/sbin/init(PID 1)。
我试图安装一个 deb 软件包,但由于依赖项而拒绝运行,在尝试安装依赖项或操作系统更新失败后,我卸载了 deb 软件包。由于有许多待处理的更新,我尝试运行这些更新,但源网址报告未找到。
服务器:ubuntu 21.04
apt update
Hit:1 https://deb.nodesource.com/node_14.x hirsute InRelease
Hit:2 https://dl.yarnpkg.com/debian stable InRelease
Ign:3 http://us.archive.ubuntu.com/ubuntu hirsute InRelease
Ign:4 http://us.archive.ubuntu.com/ubuntu hirsute-updates InRelease
Ign:5 http://us.archive.ubuntu.com/ubuntu hirsute-backports InRelease
Ign:6 http://us.archive.ubuntu.com/ubuntu hirsute-security InRelease
Err:7 http://us.archive.ubuntu.com/ubuntu hirsute Release
404 Not Found [IP: 91.189.91.38 80]
Err:8 http://us.archive.ubuntu.com/ubuntu hirsute-updates Release
404 Not Found [IP: 91.189.91.38 80]
Err:9 http://us.archive.ubuntu.com/ubuntu hirsute-backports Release
404 Not Found [IP: 91.189.91.38 80]
Err:10 http://us.archive.ubuntu.com/ubuntu hirsute-security Release
404 Not Found [IP: 91.189.91.38 80]
Reading package lists... Done
E: The repository …Run Code Online (Sandbox Code Playgroud) 我有几台 Debian 服务器,我想确保永远不会在它们上面安装 X 服务器。有时当我安装一个包时,它有包含 X 的依赖项。有什么好的方法可以确保 X 服务器永远不会被安装?我希望也不要安装 X11 库,因为永远不应启用 X 转发。
我刚刚设置了一个 Ubuntu 服务器,它似乎带有 Python 2.5。我一直在用 Python 2.6 开发我的应用程序,但apt-cache search ^python似乎不包含 2.6。更新存储库apt-get以包含具有 Python 2.6的存储库的最快方法是什么?
(答案混在回复/回复评论中:最快的方法是升级到 Ubuntu 9.04 或更高版本)
两者的功能区别?包不同的风格还是什么?
我现在正在服务器池中尝试使用 Ubuntu 安装,即apt-get. 如果我决定开始运行我自己的 VPS,我也会考虑使用 FreeBSD 和 Debian。
到目前为止,事情非常简单,sudo apt-get install apache2完全没有问题。我想知道是否有不同的学习曲线yum或变体。
我正在尝试构建一个 shell 脚本来自动将多个软件包安装到 Ubuntu 10.04 服务器上,但我在使用 proftpd-basic 时遇到了问题。
我正在使用命令行
apt-get -qy install proftpd-basic >/tmp/install.log
Run Code Online (Sandbox Code Playgroud)
对于大多数软件包,这种方法可以正常工作,但是 proftpd-basic 似乎需要一些交互(它询问是否执行 inetd 或独立安装)。
我是否可以以某种方式在命令行上预先选择此选项,因为我不希望用户被这个问题困扰?- 有关信息,如果重要的话,我想选择“独立”选项。
编辑:
该过程的交互部分不仅需要简单的是/否答案,还需要我使用箭头键导航到我想要的选项,需要我按 Enter 进行选择。这可能对解决这个问题有一些影响。
我用 apt-get 安装了一个包,现在我需要找到这些文件的放置位置。
我试过:
sudo apt-cache show <package>
Run Code Online (Sandbox Code Playgroud)
和,
sudo find / -name <package>
Run Code Online (Sandbox Code Playgroud)
但它没有透露任何有用的信息。
什么是查找属于我安装的特定软件包的文件的好命令或方法?我正在使用 Ubuntu 10.x。
当我连接到我的 Ubuntu 10.04.2 LTS 服务器时,我得到以下横幅:
25个包可以更新。 15 个更新是安全更新。
但是,如果我运行包升级/更新,则什么也不会出现:
$ sudo apt-get 更新 $ sudo apt-get 升级 ... 阅读包裹清单...完成 构建依赖树 读取状态信息...完成 0 升级,0 新安装,0 删除,0 未升级。
在做了一些研究之后,我发现发行apt-get dist-upgrade可能有所帮助,但没有任何区别。
欢迎任何帮助。