标签 RPM 下的文章

问题: 我想要安装一个在Nux Dextop仓库的RPM包。我该如何在CentOS或者RHEL上设置Nux Dextop仓库?

Nux Dextop是一个面对CentOS、RHEL、ScientificLinux的含有许多流行的桌面和多媒体相关的包的第三方RPM仓库(比如:Ardour,Shutter等等)。目前,Nux Dextop桌面对CentOS和RHEL 6/7可用。

要在CentOS或者RHEL上启用Nux Dextop,遵循下面的步骤。

首先,要知道Nux Dextop被设计与EPEL仓库共存。因此,你需要在使用Nux Dexyop仓库前先启用 EPEL

启用EPEL后,用下面的命令安装Nux Dextop仓库。

在 CentOS/RHEL 6.* 上:

$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm

在 CentOS/RHEL 7 上 :

$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm

现在验证Nux Dextop仓库是否已经成功安装:

$ yum repolist 

对于 Repoforge/RPMforge 用户

据作者所说,目前已知Nux Dextop会与其他第三方库比如Repoforge和ATrpms相冲突。因此,如果你启用了除了EPEL的其他第三方库,强烈建议你将Nux Dextop仓库设置成“default off”(默认关闭)状态。就是用文本编辑器打开/etc/yum.repos.d/nux-dextop.repo,并且在nux-desktop下面将"enabled=1" 改成 "enabled=0"。

$ sudo vi /etc/yum.repos.d/nux-dextop.repo 

无论何时当你从Nux Dextop仓库安装包时,显式地用下面的命令启用仓库。

 $ sudo yum --enablerepo=nux-dextop install <package-name> 

via: http://ask.xmodulo.com/enable-nux-dextop-repository-centos-rhel.html

译者:geekpi 校对: wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

列出所有安装了的包的方法取决于你用什么发行版以及包管理器。

在这个教程里,我们将提供主流发行版的命令。

注意: 你可以用管道筛选或者用重定向符(>)来把结果重定向到一个文件。例子如下。

example | less

example > installed_packages.txt

Red Hat/Fedora Core/CentOS Linux:

rpm -qa

Arch Linux:

pacman -Qq

Ubuntu / Debian / Linux Mint:

dpkg --get-selections

dpkg --list

dpkg -l

祝你一天好心情。


via: http://www.unixmen.com/quick-tip-list-installed-packages-linux-distributions/

作者:Enock Seth Nyamador 译者:2q1w2007 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

我们都知道,在基于红帽的Linux系统中,一个RPM包,需要把先将它依赖的其他包安装好才能正常的工作。对于终端用户,RPM的安装、更新、删除中存在的依赖关系已经被工具透明化了(如 yum或 DNF等)。但如果你是系统管理员或者RPM包的管理员,你需要谙熟RPM包的依赖关系,以便及时更新、删除适当的包来保证系统的正常运行。

在本教程中,我将教大家如何检查RPM包的依赖关系。无论这个包是否已经安装进操作系统中,我们都有一些办法来检查它们的依赖性。

方法一

使用RPM命令可以列出目标包所依赖的所有包,如下: $ rpm -qR

注意,这种方法只适用于已安装的包。如果你需要检查一个未安装包的依赖关系,你首先需要把这个包先下载到本地来(不需要安装)。

要下载一个 RPM 包而不安装,可以使用叫做'yumdownloader'的工具,下面我们先安装yumdownloader:

$ sudo yum install yum-utils 

现在我们来检查一个未安装的RPM包的依赖关系(本例使用 tcpdump)。首先,我们使用yumdownloader把tcpdump的RPM包下载下来

$ yumdownloader --destdir=. tcpdump 

然后再使用 "-qpR"参数显示该包的依赖关系。

# rpm -qpR tcpdump-4.4.0-2.fc19.i686.rpm

方法二

你可以使用repoquery工具来罗列包的依赖关系,它与包是否安装无关,这个工具包含在yum-utils中。

$ sudo yum install yum-utils

显示目标包所依赖的包:

$ repoquery --requires --resolve <package-name> 

为让repoquery正常的工作,需要保持网络的畅通,应为repoquery需要在Yum库中查找信息。

方法三

第三个方法是使用rpmreaper工具。这个工具本来是用作清理系统中无用以及它们所依赖的包,rpmreaper有很直观的ncurses界面来展示已安装的包和它们依赖关系的树形图。

安装rpmrepater,在CentOS中,你需要先设置好EPEL库

$ sudo yum install rpmreaper 

只需运行rpmreaper就可以看到RPM包的依赖关系:

$ rpmreaper 

rpmrepater会向用户显示已安装包的列表,你可以使用上/下箭头来滚动屏幕。

你可以在指定包上使用"r"键来显示其依赖关系,循环在指定包上按下"r"键可以展示出余下的信息。

"L"标志的意思是说这个包是一片“孤叶”,意思说说没有任何包依赖它。

"o"标志是说这个包是整个依赖链的中间部分。

按下"b"键会显示其他依赖于该包的其他包。

方法四

还有一个办法是使用rpmdep工具,rpmdep是一个命令行工具,可以显示已安装包的完整包依赖关系图。该工具会分析RPM包的依赖性,从完整的排完序的拓扑图中摘取部分包的信息,形成列表展示给用户。该工具的输出结果可以直接使用到Dotty(可视化展示工具)中去。

在Fedora中安装rpmdep和dotty:

$ sudo yum install rpmorphan graphviz 

在CentOs中安装: $ wget <http://downloads.sourceforge.net/project/rpmorphan/rpmorphan/1.14/rpmorphan-1.14-1.noarch.rpm> $ sudo rpm -ivh rpmorphan-1.14-1.noarch.rpm $ sudo yum install graphviz

生成包依赖的拓扑关系图(例如 gzip):

$ rpmdep.pl -dot gzip.dot gzip
$ dot -Tpng -o output.png gzip.dot 

教程到这个地方,我们用到了几种办法来检查包的依赖关系。如果您想知道如何在居于Debian的系统中检查.deb的包依赖关系,请阅读另外一篇文档


via: http://xmodulo.com/2014/07/check-rpm-package-dependencies-fedora-centos-rhel.html

译者:nd0104 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

RPM是RedHat的包管理器,用来安装、卸载、升级和查询基于RedHat Linux的安装包。RHEL和基于它的系统使用rpm命令来完成这些功能。以下是一些例子来演示rpm的查询功能,和展示了用不同的方法来查询rpm数据库和还原配置文件。

我在示例命令中使用SSH包来做说明。

查询RPM数据库和包

1、 在整个RPM数据库中查询,使用下面的命令

# rpm -qa
plymouth-0.8.3-27.el6.x86_64
pciutils-libs-3.1.10-2.el6.i686 
netcf-libs-0.1.9-3.el6.x86_64
..
...
..
Output Truncated

2、 你可以通过grep命令来确定上面的例子中有哪些SSH包已经安装

# rpm -qa |grep ssh
libssh2-1.4.2-1.el6.x86_64
openssh-askpass-5.3p1-84.1.el6.x86_64
libssh2-1.4.2-1.el6.i686
openssh-server-5.3p1-84.1.el6.x86_64
openssh-clients-5.3p1-84.1.el6.x86_64
openssh-5.3p1-84.1.el6.x86_64

输出显示了一些关于SSH的包,但是你仍需确定哪个包真正安装了SSH。为了更近一步,请看下面的示例。

3、 检查已安装的SSH包 a) 通过sshd守护进程 b) 通过它的配置文件

# rpm -qf /etc/init.d/sshd
openssh-server-5.3p1-84.1.el6.x86_64
# rpm -qf /etc/ssh/sshd_config
openssh-server-5.3p1-84.1.el6.x86_64

如你所见,ssh是通过openssh-server-5.3p1-84.1.el6.x86\_64包安装的,你可以在守护进程或者配置文件中使用rpm -qf命令(查询ssh包所包含的任一文件来查询)。两者都会输出从那个软件包安装的。

4、 现在你有了包名,你可能想要了解更多,并想要知道包中包含了哪些不同的文件。这种情况下,使用rpm -ql命令

# rpm -ql openssh-server-5.3p1-84.1.el6.x86_64
/etc/pam.d/ssh-keycat
/etc/pam.d/sshd
/etc/rc.d/init.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
/usr/libexec/openssh/sftp-server
/usr/libexec/openssh/ssh-keycat
/usr/sbin/.sshd.hmac
/usr/sbin/sshd
/usr/share/doc/openssh-server-5.3p1
/usr/share/doc/openssh-server-5.3p1/HOWTO.ssh-keycat
/usr/share/man/man5/moduli.5.gz
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz
/var/empty/sshd

上面的输出显示了所有该包在系统中安装的文件。现在让我们更进一步,我们只想要看到该包提供的配置文件和文档。

5、 只列出其中的配置文件,使用rpm -qc命令

# rpm -qc openssh-server-5.3p1-84.1.el6.x86_64
/etc/pam.d/ssh-keycat
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd

6、 只列出其中的帮助文档,使用rpm -qd命令

# rpm -qd openssh-server-5.3p1-84.1.el6.x86_64
/usr/share/doc/openssh-server-5.3p1/HOWTO.ssh-keycat
/usr/share/man/man5/moduli.5.gz
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz

考虑一种情况,你想要配置一个服务,但是你不知道哪里找到配置文件。举例来说,如上面的例子:使用rpm -qf rpm -qf /etc/init.d/sshd来找出 /etc/ssh/sshd\_config这个文件源于哪个包。这应该会给你显示openssh-server-5.3p1-84.1.el6.x86\_64包。使用rpm -ql openssh-server-5.3p1-84.1.el6.x86\_64来显示包中所含的所有文件。如你所见,许多文件名显示了出来,但是输出并不很有用。

现在使用rpm -qc openssh-server-5.3p1-84.1.el6.x86\_64 来只显示这个包的配置文件。这只会显示4个文件并给出了/etc/ssh/sshd\_config file的绝对路径,可以用来开始配置服务。

7、 从PRM包还原配置文件,而不重新安装包。

如果由于一些原因文件损坏或者从系统中删除了,你可以以rpm -qf开头来找出文件存在于哪个包。接下来使用rpm2cpio | cpio -idmv来从包中解压出文件。用ssh的例子。

假设/etc/ssh/sshd\_config文件已经删除并且你不希望重装ssh,按以下步骤来还原文件。

  • 使用rpm -qf /etc/init.d/sshd 这个命令会显示文件来自于openssh-server-5.3p1-84.1.el6.x86\_64包。
  • 从它的源中下载Openssh的rpm包。
  • 复制openssh-server-5.3p1-84.1.el6.x86\_64包到/tmp目录或者其他任何你选择的目录。
  • 使用rpm2cpio |cpio -idmv解压包。

上面步骤中你使用的命令会在/tmp下面创建一个子目录。你现在可以复制到它的原始目录。


via: http://linoxide.com/linux-command/rpm-command-query/

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出