无论出于何种原因,我一直使用基于 RPM 的发行版(Fedora、Centos 和当前的 openSUSE)。我经常听到有人说 deb 比 rpm 好,但是当被问到为什么时,从来没有得到一个连贯的答案(通常会得到一些狂热的咆哮和大量的唾沫)。
我知道可能有一些历史原因,但是对于使用两种不同打包方法的现代发行版,有人可以给出一种与另一种的技术(或其他)优点吗?
我正在编写一个 bash 脚本来安装 php5.4,我想为测试 VM 自动执行此操作。我的 rpm 命令是:
rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm
yum install php54w
Run Code Online (Sandbox Code Playgroud)
现在,在这个运行过程中,有一个用户提示输入 [Y/N] 是否下载依赖项。所以我要么需要:
模拟[Y]的用户输入;或者
传递命令让 yum 不要询问和假设 [Y]
bash 脚本的最佳方法是什么,我如何完成上述两个任务?
如果我想在 Debian 中检查软件包的可用版本,我apt-cache policy pkgname会在wajig给出的情况下运行它:
wajig:
  Installed: 2.01
  Candidate: 2.01
  Version table:
 *** 2.01 0
        100 /var/lib/dpkg/status
     2.0.47 0
        500 file:/home/wena/.repo_bin/ squeeze/main i386 Packages
        500 ftp://ftp.is.co.za/debian/ squeeze/main i386 Packages
Run Code Online (Sandbox Code Playgroud)
这意味着存在三个 wajig 软件包,一个已安装 ( /var/lib/dpkg/status),另外两个(版本相同)。这两个中的一个位于本地存储库中,另一个可从远程存储库中获得。
如何在 rpm 系统上获得类似的结果?
简单的问题,但没有找到有关此的资源。有没有什么办法可以只安装PostgreSQL客户端,基于终端的客户端,在psqlCentOS7系统上,而不安装完整的PostgreSQL服务器?存储库上没有专用的postgresql-client或postgresql94-client类似的东西。
在 CentOS 服务器上更新软件包时,我收到以下消息:
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
Run Code Online (Sandbox Code Playgroud)
我需要为此做些什么吗?我应该忽略这个吗?
我在 Fedora 17 上安装了一些 rpm 包。一些包有很多依赖项。我已经删除了一些软件包,但我忘记用 yum remove 删除未使用的依赖项。
我现在怎么办?
我是大型计算机系统上的非管理员用户。我需要一些未安装在系统上的最新软件包。我想用 yum 来安装它们。作为没有 sudo、admin 或 root 访问权限的用户,我可以使用包管理在我的主目录中安装包吗?我总是可以从源代码中使用 make,但是能够使用 yum 会让生活更轻松。
如何从特定存储库(例如,“epel”)获取已安装在我的系统上的所有 RPM 软件包的列表?
我在运行 Apple Leopard (Mac OS X 10.5.8) 的 MacBook Pro 上。
我想解压RPM 并查看wget-1.11.4-2.el5_4.1.src.rpm 中包含的文件。我不需要将文件安装到特定位置或运行任何 %postinstall 脚本或任何东西。我只是想解压这个 RPM 以便我可以查看下面的源文件。
是否可以在非 RedHat/CentOS 系统上解包 RPM 文件?
我谨慎地问这个问题,因为我不想弄错。
我在我的服务器 (CentOS 6.5) 上本地保存了一个 program_name.rpm 文件。
我以前只是通过导航到它并使用 yum install program_name.rpm 来安装它,它工作正常,但它没有给我任何选项来指定它的安装位置。
是否可以将此 rpm 安装到 /opt/some_directory 而不是它的默认安装位置?