如何使转速自动安装依赖(How to make rpm auto install dependenc

2019-07-05 07:11发布

我已经建了两个RPM包

  • proj1-1.0-1.x86_64.rpm
  • libtest1-1.0-1.x86_64.rpm

proj1取决于文件libtest1.so存在,它是在RPM软件包正确反映如下所示:

user@my-pc:~$ rpm -qp --requires proj1-1.0-1.x86_64.rpm
libtest1.so()(64bit)

user@my-pc:~$ rpm -qp --provides libtest1-1.0-1.x86_64.rpm
libtest1.so()(64bit)

安装proj1由于丢失的依赖失败。

user@my-pc:~$ rpm -ivh proj1-1.0-1.x86_64.rpm
error: Failed dependencies:
libtest1.so()(64bit) is needed by proj1-1.0-1.x86_64.rpm

如何确保libtest1-1.0-1.x86_64.rpm在安装的过程中自动安装proj1-1.0-1.x86_64.rpm

我曾尝试--aid与选择rpm -i描述在这里 ,但它并没有为我工作。

有没有其他办法?

谢谢你的帮助。

Answer 1:

创建(本地)存储库并使用yum把它解决依赖性为您服务。

CentOS的维基有一个漂亮的网页提供有关这个如何做。 CentOS的维基的HOWTOs / CreateLocalRepos 。


总结和进一步降低(不理想,但最快的):

  1. 创建你的本地库,例如目录/home/user/repo
  2. 移动的RPM到该目录中。
  3. 修正了一些所有权和文件系统权限:

     # chown -R root.root /home/user/repo 
  4. 安装createrepo软件包,如果没有安装,并运行

     # createrepo /home/user/repo # chmod -R o-w+r /home/user/repo 
  5. 创建一个存储库的配置文件,如/etc/yum.repos.d/myrepo.repo

     [local] name=My Awesome Repo baseurl=file:///home/user/repo enabled=1 gpgcheck=0 
  6. 使用安装软件包

     # yum install packagename 


Answer 2:

提供的链接@gertvdijk显示了一个快速的方法来达到理想的效果,而无需配置本地资源库:

$ yum --nogpgcheck localinstall packagename.arch.rpm

只要改变packagename.arch.rpm到要安装RPM文件名。

编辑刚刚澄清,这将自动安装已经通过系统YUM存储库中所有可用的依赖关系。

如果您有由不在系统的信息库其他RPM满足的依赖关系,那么这种方法是行不通的,除非每个RPM也与沿指定packagename.arch.rpm在命令行上。



Answer 3:

对于DNF用户只需使用dnf install *.rpmlocalinstall不再需要。



Answer 4:

对于我的工作只是与

# yum install ffmpeg-2.6.4-1.fc22.x86_64.rpm

并自动要求授权下载中心的depedencies。 下面的例子中,我使用的Fedora 22

[root@localhost lukas]# yum install ffmpeg-2.6.4-1.fc22.x86_64.rpm
Yum command has been deprecated, redirecting to '/usr/bin/dnf install  ffmpeg-2.6.4-1.fc22.x86_64.rpm'.
See 'man dnf' and 'man yum2dnf' for more information.
To transfer transaction metadata from yum to DNF, run:
'dnf install python-dnf-plugins-extras-migrate && dnf-2 migrate'

Last metadata expiration check performed 0:28:24 ago on Fri Sep 25 12:43:44 2015.
Dependencies resolved.
====================================================================================================================
 Package               Arch           Version                                  Repository                      Size
====================================================================================================================
Installing:
 SDL                   x86_64         1.2.15-17.fc22                           fedora                         214 k
 ffmpeg                x86_64         2.6.4-1.fc22                             @commandline                   1.5 M
 ffmpeg-libs           x86_64         2.6.4-1.fc22                             rpmfusion-free-updates         5.0 M
 fribidi               x86_64         0.19.6-3.fc22                            fedora                          69 k
 lame-libs             x86_64         3.99.5-5.fc22                            rpmfusion-free                 345 k
 libass                x86_64         0.12.1-1.fc22                            updates                         85 k
 libavdevice           x86_64         2.6.4-1.fc22                             rpmfusion-free-updates          75 k
 libdc1394             x86_64         2.2.2-3.fc22                             fedora                         124 k
 libva                 x86_64         1.5.1-1.fc22                             fedora                          79 k
 openal-soft           x86_64         1.16.0-5.fc22                            fedora                         292 k
 opencv-core           x86_64         2.4.11-5.fc22                            updates                        1.9 M
 openjpeg-libs         x86_64         1.5.1-14.fc22                            fedora                          89 k
 schroedinger          x86_64         1.0.11-7.fc22                            fedora                         315 k
 soxr                  x86_64         0.1.2-1.fc22                             updates                         83 k
 x264-libs             x86_64         0.142-12.20141221git6a301b6.fc22         rpmfusion-free                 587 k
 x265-libs             x86_64         1.6-1.fc22                               rpmfusion-free                 486 k
 xvidcore              x86_64         1.3.2-6.fc22                             rpmfusion-free                 264 k

Transaction Summary
====================================================================================================================
Install  17 Packages

Total size: 11 M
Total download size: 9.9 M
Installed size: 35 M
Is this ok [y/N]: y


Answer 5:

我发现了一个简单的解决方案。 如果你在同一个目录下的所有RPM,所有你需要做的是,

$ sudo rpm -i *.rpm

rpm似乎搞清楚正确的顺序安装这些并安装RPM。



Answer 6:

马修的答案醒了太多的情绪,因为事实上,它仍然缺少一个小细节。 一般的命令是:

# yum --nogpgcheck localinstall <package1_file_name> ... <packageN_file_name>

所述package_file_name以上可包括本地绝对或相对路径,或者是一个URL(甚至可能的URI)。

将百胜搜索在命令行上给出的所有程序包文件之间的依赖关系,如果它未能找到的依赖关系存在,它也将使用任何配置并启用yum的仓库。

无论是当前的工作目录,也没有任何的路径package_file_name将被搜索,当这些目录之前已配置为启用除yum库。

因此,在OP的情况下, yum命令:

# cd <path with pkg files>; yum --nogpgcheck localinstall ./proj1-1.0-1.x86_64.rpm ./libtest1-1.0-1.x86_64.rpm

会做,因为会做的rpm

# cd <path with pkg files>; rpm -i proj1-1.0-1.x86_64.rpm libtest1-1.0-1.x86_64.rpm

它们之间的differencve yumrpm调用只会是可见的,如果上市要安装的程序包的一个已经在命令行中未列出的软件包的依赖进一步。

在这种情况下rpm只会拒绝继续,而yum将使用任何配置并启用的yum存储库来搜索依赖,并有可能获得成功。

当前的工作目录不会被搜索在任何情况下,当它已经预先配置为启用除yum库。



Answer 7:

我遇到了这一点,什么工作对我来说是跑yum localinstall enterPkgNameHere.rpm从那里的.rpm文件所在的目录中。

注意:更换enterPkgNameHere.rpm与你的.rpm文件的名称。



Answer 8:

在openSUSE的飞跃15的情况下,我收到类似的错误:

> sudo rpm -i opera-stable_53.0.2907.68_amd64.rpm 
[sudo] password for root: 
warning: opera-stable_53.0.2907.68_amd64.rpm: Header V4 RSA/SHA512 Signature, key ID a5c7ff72: NOKEY
error: Failed dependencies:
    at is needed by opera-stable-53.0.2907.68-0.x86_64

我运行此命令弄清楚什么是依赖关系:

> sudo zypper install opera-stable_53.0.2907.68_amd64.rpm 
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 4 NEW packages are going to be installed:
  at libfl2 libHX28 opera-stable

4 new packages to install.
Overall download size: 50.3 MiB. Already cached: 0 B. After the operation, additional 176.9 MiB will be used.
Continue? [y/n/...? shows all options] (y): n

然后我运行这个命令来安装依赖:

> sudo zypper in at
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 3 NEW packages are going to be installed:
  at libfl2 libHX28

3 new packages to install.
Overall download size: 208.6 KiB. Already cached: 0 B. After the operation, additional 600.4 KiB will be used.
Continue? [y/n/...? shows all options] (y): y

然后我跑这来安装rpm文件:

> sudo rpm -i opera-stable_53.0.2907.68_amd64.rpm

知道这是否是最好的做法,但它解决了我的问题。



Answer 9:

第一步:复制所有的rpm PKG在给定的位置

第二步:如果尚未安装createrepo,因为它不会被默认安装。

[root@pavangildamysql1 8.0.11_rhel7]# yum install createrepo

第三步:创建库metedata并在下面给出权限

[root@pavangildamysql1 8.0.11_rhel7]# chown -R root.root /scratch/PVN/8.0.11_rhel7
[root@pavangildamysql1 8.0.11_rhel7]# createrepo /scratch/PVN/8.0.11_rhel7
Spawning worker 0 with 3 pkgs
Spawning worker 1 with 3 pkgs
Spawning worker 2 with 3 pkgs
Spawning worker 3 with 2 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@pavangildamysql1 8.0.11_rhel7]# chmod -R o-w+r /scratch/PVN/8.0.11_rhel7

第四步:与/etc/yum.repos.d/mysql.repo以下内容创建库文件

[local]
name=My Awesome Repo
baseurl=file:///scratch/PVN/8.0.11_rhel7
enabled=1
gpgcheck=0

第五步:运行该命令安装

[root@pavangildamysql1 local]# yum --nogpgcheck localinstall mysql-commercial-server-8.0.11-1.1.el7.x86_64.rpm


Answer 10:

简单只需运行下面的命令。

sudo dnf install *package.rpm

输入您的密码和你做。



Answer 11:

1)下载源文件with.gz extention:从源文件生成的RPM过程。 2)从百胜安装安装rpm-build程序和rpmdevtools。 (文件夹的rpmbuild将产生...规范,来源,RPMS ..文件夹将应在文件夹的rpmbuild内部产生)。 3)通过使用以下命令复制源code.gz到源文件夹。(的rpmbuild / SOURCES)4)解压焦油球。 去源文件夹:的rpmbuild / SOURCES其中tar文件是否存在。 命令:例如焦油-xvzf的httpd-2.22.tar.gz的httpd 2.22文件夹将在相同的路径来生成。 检查APR和APR-util的,有在的httpd-2.22 / srclib文件夹。 如果APR和APR-util的犯规存在从Apache的网站下载最新版本,解压并把它里面的httpd-2.22 / srclib文件夹。 另外,还要确保你已经在PCRE你的系统安装。

5)去提取的文件夹,然后键入以下命令:的./configure前缀=的/ usr /本地/ apache2的--with-包括-APR --enable代理--enable代理平衡器--with-MPM =工人--enable-MODS的静电=所有6)运行下面的命令一旦配置成功:使7)后全成执行OD使命令运行:检查安装在塔相同的文件夹。 (如果你没有检查安装的软件,请下载从网站上最新版本)还检查安装的软件有BUG,可以通过以下方式解决:::::定位checkinstallrc然后更换翻译= 1使用vim命令翻译= 0。 同时检查排除包:排除=“/ SELinux的” 8)检查安装会询问选项(R型,如果你想TP建立源文件转)9)完成的.rpm文件将在里面的rpmbuild / RPMS文件夹RPMS建成。 .. 祝一切顺利 ....

问候,Prera​​na



文章来源: How to make rpm auto install dependencies