我想在计算机上安装一个无法重新编译的可执行文件,它不是作为包构建的,我想下载运行它们所需的库。
以下是ldd在其上运行的输出的一部分
libpango-1.0.so.0 => /usr/lib/i386-linux-gnu/libpango-1.0.so.0 (0xb702f000)
libcairo.so.2 => /usr/lib/i386-linux-gnu/libcairo.so.2 (0xb6f64000)
libatk-1.0.so.0 => /usr/lib/i386-linux-gnu/libatk-1.0.so.0 (0xb6f43000)
libsqlite3.so.0 => /usr/lib/i386-linux-gnu/libsqlite3.so.0 (0xb6e9e000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6cf4000)
/lib/ld-linux.so.2 (0xb786e000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb6cd3000)
libgio-2.0.so.0 => /usr/lib/i386-linux-gnu/libgio-2.0.so.0 (0xb6b7c000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb6b4f000)
Run Code Online (Sandbox Code Playgroud)
是否有工具可以使用此信息来选择应下载哪些包,或者更好地仅提取列出的库及其依赖项,以最大限度地减少磁盘使用量?系统在无头 VM 上运行,程序将通过 VNC 显示。
虽然我怀疑一个完整的图形桌面将提供大部分所需的库,但我只想下载所需的库、它们的依赖项以及刚好足以支持它的 X Windows 包。
我想在我的Fedora系统上安装一个软件包,但它有很多不合理的依赖项(我确信它们实际上并不是必需的)。
我曾经在Debian上工作,其中apt-get允许您系统地排除推荐和建议的软件包,只安装严格要求的依赖项。
有没有办法用Yum做到这一点?
我像往常一样用这个命令开始升级我的 Kubuntu 12.04 系统:
sudo apt-get --show-upgraded dist-upgrade
Run Code Online (Sandbox Code Playgroud)
我后来回来了,但失败了:
Preconfiguring packages ...
(Reading database ... 478306 files and directories currently installed.)
Preparing to replace ...
Unpacking replacement base-files ...
Processing triggers for man-db ...
Processing triggers for install-info ...
...
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.8.0-32-lowlatency
gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.8.0-32-lowlatency with 1.
dpkg: error processing initramfs-tools (--unpack):
subprocess installed post-installation script returned error exit …Run Code Online (Sandbox Code Playgroud) 我使用的是 CentOS 7。我安装了 okular,它是一个 PDF 查看器,命令如下:
sudo yum install okular
Run Code Online (Sandbox Code Playgroud)
如下图所示,它安装了 37 个依赖包来安装 okular。
但我对应用程序的功能不满意,我决定将其删除。问题是,如果我使用以下命令将其删除:
sudo yum autoremove okular
Run Code Online (Sandbox Code Playgroud)
它只删除四个依赖包。
如果我用命令删除它:
sudo yum remove okular
Run Code Online (Sandbox Code Playgroud)
它只删除了一个包,即 okular.x86_64。
现在,我的问题是有没有办法使用命令删除所有 37 个已安装的软件包,还是必须一个一个删除所有软件包?
systemctl list-dependencies postgres
Run Code Online (Sandbox Code Playgroud)
将列出服务的所有依赖项postgres。如何找到服务(或单位或目标)的所有依赖项?
# systemd-timesyncd.service
...
Before=time-sync.target sysinit.target shutdown.target
Conflicts=shutdown.target
Wants=time-sync.target
Run Code Online (Sandbox Code Playgroud)
systemd-timesyncd.service应该开始之前 time-sync.target。这定义了一个排序依赖。
但同时systemd-timesyncd.service 要 time-sync.target。那么time-sync.target它的需求依赖是什么
这种关系的用例是什么,为什么它们彼此之间没有冲突?
我已经在一台 Linux 机器 (M1) 上安装了程序 Motion,并希望在另一台 (M2) 上安装相同的程序。
这个程序有多种版本,我忘记了我用过哪个版本,所以我可以直接从 M1 复制 user/bin/motion 文件并将其放在 M2 的 user/bin/motion 中吗?
我知道配置文件在哪里,所以我会移动它,但我不确定运动的工作版本在 M2 上使用什么视频驱动程序;有什么办法可以查到吗?
有没有办法找出它的依赖关系?
我想在 Debian Jessie 上尝试 PHP7.0,并尝试从 sid 安装它。但是,php7.0取决于php7.0-common哪个取决于php-common > 18while php-commonin sid 是 17。这是否意味着目前根本无法php7.0从该发行版安装?这是为什么?
我知道可以从源代码安装,例如here,我只是询问官方软件包。
注意:sid 中的包已经修复,现在(2016 年 1 月 6 日)可以从那里安装。
我正在尝试安装 gitDebian 8.6 Jessie并且遇到了一些依赖性问题。奇怪的是,Git当我习惯 Linux 时,我最近在 VM 中安装了几次没有任何问题。
apt-get install git
结果:
The following packages have unmet dependencies:
git : Depends: liberror-perl but is not installable
Recommends: rsync but it is not installable
E: Unable to correct problems, you have held broken packages.
Run Code Online (Sandbox Code Playgroud)
更新
我的 sources.list
好像是我系统的问题。我无法再正确安装任何东西。我在安装类似Pulseaudio几天前成功安装的东西时遇到了依赖性问题。
是否有一个命令可以安装dpkg-checkbuilddeps将列出的所有未满足的构建依赖项?
我尝试sed输出并将其提供给apt-get install,但它似乎非常笨拙,并且由于某种原因在某些环境中不起作用。
sudo apt-get install --yes $(dpkg-checkbuilddeps | sed 's/([^)]*)//g' | sed 's/dpkg-checkbuilddeps:\serror:\sUnmet build dependencies://g')
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
dependencies ×10
apt ×3
debian ×3
dpkg ×2
libraries ×2
systemd ×2
yum ×2
centos ×1
executable ×1
git ×1
php ×1
portability ×1
systemd-unit ×1
terminal ×1
uninstall ×1