Dependencies 是否可以安装x11而不引入数百个其他软件包?

Dependencies 是否可以安装x11而不引入数百个其他软件包?,dependencies,x11,rpm,opensuse,xterm,Dependencies,X11,Rpm,Opensuse,Xterm,我肯定这是个愚蠢的问题,但我还是要问。 是否可以在OpenSuSE机器上安装xterm和xorg-x11-fonts软件包,而不引入大量它似乎依赖的其他软件包?这一系列软件包中的所有东西真的需要吗?如果没有,那么我想知道的是如何精简该列表,并且仍然拥有一个功能强大的Xterm。(例如,可能会将一个软件包降低几个级别,并强制它在没有某些依赖项的情况下安装)。如果您在每一步都花足够的时间整理依赖项,那么您可能能够做到这一点 尽管如此,我并不认为这是一个简单的过程,甚至不一定是一个富有成效的过程。如果

我肯定这是个愚蠢的问题,但我还是要问。
是否可以在OpenSuSE机器上安装xterm和xorg-x11-fonts软件包,而不引入大量它似乎依赖的其他软件包?这一系列软件包中的所有东西真的需要吗?如果没有,那么我想知道的是如何精简该列表,并且仍然拥有一个功能强大的Xterm。(例如,可能会将一个软件包降低几个级别,并强制它在没有某些依赖项的情况下安装)。

如果您在每一步都花足够的时间整理依赖项,那么您可能能够做到这一点

尽管如此,我并不认为这是一个简单的过程,甚至不一定是一个富有成效的过程。如果依赖关系发生变化,它也将在以后的某个日期处于潜在的混乱状态。您还需要继续维护此块,因为将来的升级可能会引入跳过的包


这通常也不是一个很好的方法。如果您真的对抑制依赖性感兴趣,那么最好尝试自己从源代码构建xterm(尽管这实际上可能没有多大帮助)。

如果您使用的是一个基于Red Hat的发行版,那么通常的回答是展示如何使用
yum
查找依赖项。OpenSUSE不使用
yum
,但提供了类似的工具
zypper

如前所述,列出一份清单会有所帮助。如果我跑

zypper search --requires xterm
仅显示了十几个包裹:

S | Name                            | Summary
--+---------------------------------+------------------------------------------------
i | codelite                        | Powerful open-source, cross platform code editor
  | eaglemode                       | Eagle Mode the deep application Cosmos
  | leechcraft-shaitan              | LeechCraft Shaitan Module
i | lxterminal-lang                 | Languages for package lxterminal
  | package-lists-openSUSE-GNOME-cd | Patterns for Installation (full ftp tree)
  | package-lists-openSUSE-KDE-cd   | Patterns for Installation (full ftp tree)
  | package-lists-openSUSE-X11-cd   | Patterns for Installation (full ftp tree)
  | package-lists-openSUSE-images   | Patterns for Installation (full ftp tree)
i | xdg-menu                        | XDG Menus for WindowMaker and other Window Manager
i | xdm                             | X Display Manager
i | xinit                           | X Window System initializer
i | xterm                           | X terminal emulator (development version)
但是用于
xorg-x11-font
的同一命令显示了200多个软件包,包括
xorg-x11-server

然而,以这种方式查看依赖关系只会给故事带来一个方面:它显示了删除给定包的效果。实际问题是:添加这两个包的副作用是添加哪些包。该列表通常比
--requires
选项显示的列表短(通常短得多)

例如,如果您确实只希望
xterm
在计算机上可用,以便可以
ssh
进入服务器并在本地计算机上运行
xterm
,则远程计算机上不需要X服务器。需要的是
xterm
使用的字体和运行库。您可以更粗略地了解这些库正在使用什么

rpm -qR xterm
例如:

/bin/bash
/bin/sh
/bin/sh
/bin/sh
aaa_base
libICE.so.6()(64bit)
libX11.so.6()(64bit)
libXaw.so.7()(64bit)
libXft.so.2()(64bit)
libXmu.so.6()(64bit)
libXpm.so.4()(64bit)
libXt.so.6()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libfontconfig.so.1()(64bit)
libtinfo.so.5()(64bit)
libutempter.so.0()(64bit)
luit
perl
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsLzma) <= 4.4.6-1
/bin/bash
/垃圾箱/垃圾箱
/垃圾箱/垃圾箱
/垃圾箱/垃圾箱
aaa_基地
libICE.so.6()(64位)
libX11.so.6()(64位)
libXaw.so.7()(64位)
libXft.so.2()(64位)
libXmu.so.6()(64位)
libXpm.so.4()(64位)
libXt.so.6()(64位)
libc.so.6()(64位)
libc.so.6(GLIBC_2.11)(64位)
libc.so.6(GLIBC_2.14)(64位)
libc.so.6(GLIBC_2.15)(64位)
libc.so.6(GLIBC_2.2.5)(64位)
libc.so.6(GLIBC_2.3)(64位)
libc.so.6(GLIBC_2.3.4)(64位)
libc.so.6(GLIBC_2.4)(64位)
libfontconfig.so.1()(64位)
libtinfo.so.5()(64位)
libutempter.so.0()(64位)
路易特
perl

rpmlib(CompressedFileNames)您应该得到十几个包,而不是“一吨”。这些将包括库(但不包括服务器)。到底有多少个包?在这里包括一个列表可能会有所帮助。谢谢。这基本上是我期待听到的。我只是希望我错了。从源代码构建xterm并不能解决OPs问题,相反,它会使系统更新变得更加困难,并防止破坏他的xterm配置,从而使问题更加严重。@ThomasDickey我的观点,尽管我在这里没有解释清楚,如果他自己构建它,可能会选择退出某些依赖项。发行版提供的包选择的依赖项。