Linux管理

推荐列表 站点导航

当前位置:首页 > 服务器技术 > Linux管理 >

如何7步实现根据源码包创建rpm包

来源:网络整理  作者:  发布时间:2020-12-22 21:52
有时你可能需要获取一个开源应用的源码包,但是可能没有无法通过该应用的RPM文件来安装到系统。 在这种情况下,...

有时你可能需要获取一个开源应用的源码包,但是可能没有无法通过该应用的RPM文件来安装到系统。

在这种情况下,你既可以编译源码安装,也可以以源码包来创建一个rpm包文件,实现安装应用的功能。

同样存在一种情况即你想要创建一个你自己开发的自定义的RPM包。

这篇指南解释了如何提高源码来创建一个rpm包。

为了创建rpm包,你将需要源码包(通常为一个压缩文件,其内也包含了SPEC文件)。

SPEC文件包含以下说明:如何创建rpm包,包内包含的文件,安装的路径。

RPM将展现创建过程中的测试过程。

执行spec文件中的prep块中定义的系统命令和宏命令。

检测文件列表的内容

执行spec文件中的build块中定义的系统命令和宏命令。在这一步中文件列表中的宏命令也被执行。

创建二进制包文件

创建源码包文件

一旦RPM执行了上述步骤,将创建二进制的包文件和源码包文件。

二进制包文件包含所有安装或卸载包的额外信息的源文件。

通常安装包的所有选项都是有平台差异的。二进制包文件包含为一个特殊结构而编译的完整应用或函数库。源码包通常包含原始压缩的tar文件,spec文件和创建二进制包时相关的补丁。

让我们使用tar文件来看看如何创建一个简单的源和二进制RPM包。

如果你对rpm包比较陌生,你应该首先去理解在CentOS/Redhat上如何使用rpm命令安装,升级和卸载包。

 

1.安装rpm-build包

为了创建基于spec文件的rpm文件,我们需要使用rpmbuild命令。

rpmbuild命令是rpm-build包的一部分。安装过程如下。

# yum install rpm-build

rpm-build依赖下面的几个包。如果你还未安装,就赶紧自动安装这些包。

elfutils-libelf

rpm

rpm-libs

rpm-python

 

2.RPM创建目录

rpm-build命令会在build阶段自动创建下列目录结构。

# ls -lF /root/rpmbuild/

drwxr-xr-x. 2 root root 4096 Feb  4 12:21 BUILD/

drwxr-xr-x. 2 root root 4096 Feb  4 12:21 BUILDROOT/

drwxr-xr-x. 2 root root 4096 Feb  4 12:21 RPMS/

drwxr-xr-x. 2 root root 4096 Feb  4 12:21 SOURCES/

drwxr-xr-x. 2 root root 4096 Feb  4 12:21 SPECS/

drwxr-xr-x. 2 root root 4096 Feb  4 12:21 SRPMS/

注意:上述的目录结构对CentOS和Redhat是都适用。你也可以使用/usr/local/redhat命令,但是你想要在build阶段修改topdir参数。如果你使用的是SuSE企业版Linux,使用 /usr/src/packages目录。

如果你想使用你自己的命令结构来代替/root/rpmbuild,你可以使用下列选择:

使用-buildroot选择,并在rpmbuild阶段定义自定义的目录。

在rpmrc文件或rpmmacros文件中定义topdir参数

 

3.下载源码tar文件

接着,下载你想要创建的包的源码tar文件,并保存在SOURCES目录下。

在这个例子中,我使用的是icecase开源软件的源码包,这时一个流多媒体服务器软件。但是这些步骤在创建其他rpm包时都是相同。你只需要下载你想要的软件的源码包即可。

# cd /root/rpmbuild/SOURCES/

# wget

# ls -l

-rw-r--r--. 1 root root 1161774 Jun 11  2012 icecast-2.3.3.tar.gz

 

4.创建spec文件

在这一步中,我们通过创建一个spec文件来定义创建过程。这个spec文件通常包含下列8个不同的块:

Preamble – preamable块包含了被创建包的信息和定义相关依赖。通常它是一些行,以标签信息开头,后接冒号,而后是一些说明信息。

%prep – 在这一个块中,我们将为创建过程准备软件。在此过程中,任何先前的创建都被删除,而源文件(. tar)文件被扩展,等等。 一个更关键的事情是要了解可用的有预定义宏命令,可以执行各种快捷选项来构建rpm包。当您尝试创建一个复杂的包时,您可能正在使用这个宏命令。在下面的示例中,我使用了一个名为% setup的宏,它删除了先前的创建,解压源文件并更改文件的权限。您还可以在% prep部分中使用sh脚本执行此操作,但是% setup宏使用预定义的sh脚本简化了流程。

%description – 描述块通常包含对包的描述信息

%build – 这个是真正执行build指令的块。通常是一个sh脚本。

%install – %install块也是作为sh脚本来执行的,就像%prep和%build块。这时安装阶段的步骤

%files –这个块包含了这个包的一系列文件。不在此块中的文件将不可用。要求是完整的路径,并且在此块中你可以设置文件的属性和权限。

%clean – 这个块是为了清理那些不是应用正常创建区域的其他文件。举个例子来说:如果应用在创建过程中在/tmp目录下创建了一个临时目录结构,它将不会被移除;但是如果在该块中定义了,那么在正确安装后临时目录将被移除。

下面是icecast.spec文件

# cat /root/rpmbuild/SPECS/icecast.spec

Name:           icecast

Version:        2.3.3

Release:        0

Summary:        Xiph Streaming media server that supports multiple formats.

Group:          Applications/Multimedia

License:        GPL

URL:            

Vendor:         Xiph.org Foundation [email protected]

Source:         %{name}-%{version}.tar.gz

Prefix:         %{_prefix}

Packager: Karthik

BuildRoot:      %{_tmppath}/%{name}-root

%description

Icecast is a streaming media server which currently supports Ogg Vorbis

and MP3 audio streams. It can be used to create an Internet radio

station or a privately running jukebox and many things in between.

It is very versatile in that new formats can be added relatively

easily and supports open standards for commuincation and interaction.

%prep

%setup -q -n %{name}-%{version}

%build

CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix} --mandir=%{_mandir} --sysconfdir=/etc

make

%install

[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT

make DESTDIR=$RPM_BUILD_ROOT install

rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/%{name}

%clean

[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT

%files

%defattr(-,root,root)

%doc README AUTHORS COPYING NEWS TODO ChangeLog

%doc doc/*.html

%doc doc/*.jpg

%doc doc/*.css

%config(noreplace) /etc/%{name}.xml

%{_bindir}/icecast

%{_prefix}/share/icecast/*

%changelog

In this file, under % prep section you may noticed the macro “%setup -q -n %{name}-%{version}”. This macro executes the following command in the background.

cd /usr/src/redhat/BUILD

rm -rf icecast

gzip -dc /usr/src/redhat/SOURCES/icecast-2.3.3.tar.gz | tar -xvvf -

if [ $? -ne 0 ]; then

exit $?

fi

cd icecast

cd /usr/src/redhat/BUILD/icecast

chown -R root.root .

chmod -R a+rX,g-w,o-w .

在% build部分中,您将看到带有配置选项的CFLAGS,它定义了在RPM安装期间可以使用的选项和前缀选项,强制目录用于安装和sysconfig目录,系统文件需要在该目录下复制。

在这一行中,您将看到make实用程序,它决定需要编译的文件列表,并适当地编译它们。

在%安装部分中,“make install”的%安装下面的行用于从前面的步骤中编译的二进制文件,并安装或将它们复制到适当的位置,这样它们就可以被访问。

 

5.使用rpmbuild命令创建rpm文件

一旦SPEC文件准备好,您就可以开始使用rpm - b命令来构建rpm了。b选项用于执行构建过程的所有阶段。如果您在这个阶段看到任何错误,那么您需要在再次尝试之前解决它。错误通常是库依赖项,您可以在需要时下载并安装它。

# cd /root/rpmbuild/SPECS

# rpmbuild -ba icecast.spec

Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.Kohe4t

+ umask 022

+ cd /root/rpmbuild/BUILD

+ cd /root/rpmbuild/BUILD

+ rm -rf icecast-2.3.3

+ /usr/bin/gzip -dc /root/rpmbuild/SOURCES/icecast-2.3.3.tar.gz

+ /bin/tar -xf -

+ STATUS=0

+ '[' 0 -ne 0 ']'

+ cd icecast-2.3.3

+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .

+ exit 0

Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.ynm7H7

+ umask 022

+ cd /root/rpmbuild/BUILD

+ cd icecast-2.3.3

+ CFLAGS='-O2 -g'

+ ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /bin/mkdir -p

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking whether to enable maintainer-specific portions of Makefiles... no

checking for gcc... gcc

..

..

..

Wrote: /root/rpmbuild/SRPMS/icecast-2.3.3-0.src.rpm

Wrote: /root/rpmbuild/RPMS/x86_64/icecast-2.3.3-0.x86_64.rpm

Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.dzahrv

+ umask 022

+ cd /root/rpmbuild/BUILD

+ cd icecast-2.3.3

+ '[' /root/rpmbuild/BUILDROOT/icecast-2.3.3-0.x86_64 '!=' / ']'

+ rm -rf /root/rpmbuild/BUILDROOT/icecast-2.3.3-0.x86_64

+ exit 0

注意:如果你使用的是SuSE linux,如果rpmbuild工具不可用,试试使用“rpm -ba” 去创建rpm包。

 

在安装过程中,你可能会注意到如下错误信息:

错误1: XSLT配置文件未被找到

checking for xslt-config... no

configure: error: XSLT configuration could not be found

error: Bad exit status from /var/tmp/rpm-tmp.8J0ynG (%build)

RPM build errors:

Bad exit status from /var/tmp/rpm-tmp.8J0ynG (%build)

解决方法1: 安装libxstl-devel

yum install libxstl-devel

将同时安装如下依赖包:

libgcrypt

libgcrypt-devel

libgpg-error-devel

 

错误2: libvorbis错误

checking for libvorbis... configure: error: must have Ogg Vorbis v1.0 or above installed

error: Bad exit status from /var/tmp/rpm-tmp.m4Gk3f (%build)

解决方法2: 安装libvorbis-devel

yum install libvorbis-devel

将同时安装如下依赖包:

libogg

libogg-devel

libvorbis

验证源和二进制RPM包

一旦rpmbuild命令成功运行结束,你可以在下列命令下验证源码rpm包和二进制rpm包文件。

# ls -l /root/rpmbuild/SRPMS/

-rw-r--r-- 1 root root 1162483 Aug 25 15:46 icecast-2.3.3-0.src.rpm

# ls -l /root/rpmbuild/RPMS/x86_64/

-rw-r--r--. 1 root root 349181 Feb  4 12:54 icecast-2.3.3-0.x86_64.rpm

7. Install the RPM File to Verify

作为最后的步骤,你可以安装二进制包来验证是否成功安装,以及所有的依赖都被满足。

# rpm -ivvh /root/rpmbuild/RPMS/x86_64/icecast-2.3.3-0.x86_64.rpm

D: ============== /root/rpmbuild/RPMS/x86_64/icecast-2.3.3-0.x86_64.rpm

D: loading keyring from pubkeys in /var/lib/rpm/pubkeys/*.key

D: couldn't find any keys in /var/lib/rpm/pubkeys/*.key

D: loading keyring from rpmdb

D: opening  db environment /var/lib/rpm cdb:mpool:joinenv

D: opening  db index       /var/lib/rpm/Packages rdonly mode=0x0

D:  read h#     210 Header sanity check: OK

D: added key gpg-pubkey-c105b9de-4e0fd3a3 to keyring

D: Using legacy gpg-pubkey(s) from rpmdb

D: Expected size:       349181 = lead(96)+sigs(180)+pad(4)+data(348901)

D:   Actual size:       349181

D: ========== relocations

D:      added binary package [0]

D: found 0 source and 1 binary packages

D: ========== +++ icecast-2.3.3-0 x86_64/linux 0x2

..

..

安装完成后可以验证是否成功。

# rpm -qa icecast

icecast-2.3.3-0.x86_64

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/server/guanli/7420.shtml

相关文章
Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

如何7步实现根据源码包创建rpm包

2020-12-22 编辑:

有时你可能需要获取一个开源应用的源码包,但是可能没有无法通过该应用的RPM文件来安装到系统。

在这种情况下,你既可以编译源码安装,也可以以源码包来创建一个rpm包文件,实现安装应用的功能。

同样存在一种情况即你想要创建一个你自己开发的自定义的RPM包。

这篇指南解释了如何提高源码来创建一个rpm包。

为了创建rpm包,你将需要源码包(通常为一个压缩文件,其内也包含了SPEC文件)。

SPEC文件包含以下说明:如何创建rpm包,包内包含的文件,安装的路径。

RPM将展现创建过程中的测试过程。

执行spec文件中的prep块中定义的系统命令和宏命令。

检测文件列表的内容

执行spec文件中的build块中定义的系统命令和宏命令。在这一步中文件列表中的宏命令也被执行。

创建二进制包文件

创建源码包文件

一旦RPM执行了上述步骤,将创建二进制的包文件和源码包文件。

二进制包文件包含所有安装或卸载包的额外信息的源文件。

通常安装包的所有选项都是有平台差异的。二进制包文件包含为一个特殊结构而编译的完整应用或函数库。源码包通常包含原始压缩的tar文件,spec文件和创建二进制包时相关的补丁。

让我们使用tar文件来看看如何创建一个简单的源和二进制RPM包。

如果你对rpm包比较陌生,你应该首先去理解在CentOS/Redhat上如何使用rpm命令安装,升级和卸载包。

 

1.安装rpm-build包

为了创建基于spec文件的rpm文件,我们需要使用rpmbuild命令。

rpmbuild命令是rpm-build包的一部分。安装过程如下。

# yum install rpm-build

rpm-build依赖下面的几个包。如果你还未安装,就赶紧自动安装这些包。

elfutils-libelf

rpm

rpm-libs

rpm-python

 

2.RPM创建目录

rpm-build命令会在build阶段自动创建下列目录结构。

# ls -lF /root/rpmbuild/

drwxr-xr-x. 2 root root 4096 Feb  4 12:21 BUILD/

drwxr-xr-x. 2 root root 4096 Feb  4 12:21 BUILDROOT/

drwxr-xr-x. 2 root root 4096 Feb  4 12:21 RPMS/

drwxr-xr-x. 2 root root 4096 Feb  4 12:21 SOURCES/

drwxr-xr-x. 2 root root 4096 Feb  4 12:21 SPECS/

drwxr-xr-x. 2 root root 4096 Feb  4 12:21 SRPMS/

注意:上述的目录结构对CentOS和Redhat是都适用。你也可以使用/usr/local/redhat命令,但是你想要在build阶段修改topdir参数。如果你使用的是SuSE企业版Linux,使用 /usr/src/packages目录。

如果你想使用你自己的命令结构来代替/root/rpmbuild,你可以使用下列选择:

使用-buildroot选择,并在rpmbuild阶段定义自定义的目录。

在rpmrc文件或rpmmacros文件中定义topdir参数

 

3.下载源码tar文件

接着,下载你想要创建的包的源码tar文件,并保存在SOURCES目录下。

在这个例子中,我使用的是icecase开源软件的源码包,这时一个流多媒体服务器软件。但是这些步骤在创建其他rpm包时都是相同。你只需要下载你想要的软件的源码包即可。

# cd /root/rpmbuild/SOURCES/

# wget

# ls -l

-rw-r--r--. 1 root root 1161774 Jun 11  2012 icecast-2.3.3.tar.gz

 

4.创建spec文件

在这一步中,我们通过创建一个spec文件来定义创建过程。这个spec文件通常包含下列8个不同的块:

Preamble – preamable块包含了被创建包的信息和定义相关依赖。通常它是一些行,以标签信息开头,后接冒号,而后是一些说明信息。

%prep – 在这一个块中,我们将为创建过程准备软件。在此过程中,任何先前的创建都被删除,而源文件(. tar)文件被扩展,等等。 一个更关键的事情是要了解可用的有预定义宏命令,可以执行各种快捷选项来构建rpm包。当您尝试创建一个复杂的包时,您可能正在使用这个宏命令。在下面的示例中,我使用了一个名为% setup的宏,它删除了先前的创建,解压源文件并更改文件的权限。您还可以在% prep部分中使用sh脚本执行此操作,但是% setup宏使用预定义的sh脚本简化了流程。

%description – 描述块通常包含对包的描述信息

%build – 这个是真正执行build指令的块。通常是一个sh脚本。

%install – %install块也是作为sh脚本来执行的,就像%prep和%build块。这时安装阶段的步骤

%files –这个块包含了这个包的一系列文件。不在此块中的文件将不可用。要求是完整的路径,并且在此块中你可以设置文件的属性和权限。

%clean – 这个块是为了清理那些不是应用正常创建区域的其他文件。举个例子来说:如果应用在创建过程中在/tmp目录下创建了一个临时目录结构,它将不会被移除;但是如果在该块中定义了,那么在正确安装后临时目录将被移除。

下面是icecast.spec文件

# cat /root/rpmbuild/SPECS/icecast.spec

Name:           icecast

Version:        2.3.3

Release:        0

Summary:        Xiph Streaming media server that supports multiple formats.

Group:          Applications/Multimedia

License:        GPL

URL:            

Vendor:         Xiph.org Foundation [email protected]

Source:         %{name}-%{version}.tar.gz

Prefix:         %{_prefix}

Packager: Karthik

BuildRoot:      %{_tmppath}/%{name}-root

%description

Icecast is a streaming media server which currently supports Ogg Vorbis

and MP3 audio streams. It can be used to create an Internet radio

station or a privately running jukebox and many things in between.

It is very versatile in that new formats can be added relatively

easily and supports open standards for commuincation and interaction.

%prep

%setup -q -n %{name}-%{version}

%build

CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix} --mandir=%{_mandir} --sysconfdir=/etc

make

%install

[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT

make DESTDIR=$RPM_BUILD_ROOT install

rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/%{name}

%clean

[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT

%files

%defattr(-,root,root)

%doc README AUTHORS COPYING NEWS TODO ChangeLog

%doc doc/*.html

%doc doc/*.jpg

%doc doc/*.css

%config(noreplace) /etc/%{name}.xml

%{_bindir}/icecast

%{_prefix}/share/icecast/*

%changelog

In this file, under % prep section you may noticed the macro “%setup -q -n %{name}-%{version}”. This macro executes the following command in the background.

cd /usr/src/redhat/BUILD

rm -rf icecast

gzip -dc /usr/src/redhat/SOURCES/icecast-2.3.3.tar.gz | tar -xvvf -

if [ $? -ne 0 ]; then

exit $?

fi

cd icecast

cd /usr/src/redhat/BUILD/icecast

chown -R root.root .

chmod -R a+rX,g-w,o-w .

在% build部分中,您将看到带有配置选项的CFLAGS,它定义了在RPM安装期间可以使用的选项和前缀选项,强制目录用于安装和sysconfig目录,系统文件需要在该目录下复制。

在这一行中,您将看到make实用程序,它决定需要编译的文件列表,并适当地编译它们。

在%安装部分中,“make install”的%安装下面的行用于从前面的步骤中编译的二进制文件,并安装或将它们复制到适当的位置,这样它们就可以被访问。

 

5.使用rpmbuild命令创建rpm文件

一旦SPEC文件准备好,您就可以开始使用rpm - b命令来构建rpm了。b选项用于执行构建过程的所有阶段。如果您在这个阶段看到任何错误,那么您需要在再次尝试之前解决它。错误通常是库依赖项,您可以在需要时下载并安装它。

# cd /root/rpmbuild/SPECS

# rpmbuild -ba icecast.spec

Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.Kohe4t

+ umask 022

+ cd /root/rpmbuild/BUILD

+ cd /root/rpmbuild/BUILD

+ rm -rf icecast-2.3.3

+ /usr/bin/gzip -dc /root/rpmbuild/SOURCES/icecast-2.3.3.tar.gz

+ /bin/tar -xf -

+ STATUS=0

+ '[' 0 -ne 0 ']'

+ cd icecast-2.3.3

+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .

+ exit 0

Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.ynm7H7

+ umask 022

+ cd /root/rpmbuild/BUILD

+ cd icecast-2.3.3

+ CFLAGS='-O2 -g'

+ ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /bin/mkdir -p

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking whether to enable maintainer-specific portions of Makefiles... no

checking for gcc... gcc

..

..

..

Wrote: /root/rpmbuild/SRPMS/icecast-2.3.3-0.src.rpm

Wrote: /root/rpmbuild/RPMS/x86_64/icecast-2.3.3-0.x86_64.rpm

Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.dzahrv

+ umask 022

+ cd /root/rpmbuild/BUILD

+ cd icecast-2.3.3

+ '[' /root/rpmbuild/BUILDROOT/icecast-2.3.3-0.x86_64 '!=' / ']'

+ rm -rf /root/rpmbuild/BUILDROOT/icecast-2.3.3-0.x86_64

+ exit 0

注意:如果你使用的是SuSE linux,如果rpmbuild工具不可用,试试使用“rpm -ba” 去创建rpm包。

 

在安装过程中,你可能会注意到如下错误信息:

错误1: XSLT配置文件未被找到

checking for xslt-config... no

configure: error: XSLT configuration could not be found

error: Bad exit status from /var/tmp/rpm-tmp.8J0ynG (%build)

RPM build errors:

Bad exit status from /var/tmp/rpm-tmp.8J0ynG (%build)

解决方法1: 安装libxstl-devel

yum install libxstl-devel

将同时安装如下依赖包:

libgcrypt

libgcrypt-devel

libgpg-error-devel

 

错误2: libvorbis错误

checking for libvorbis... configure: error: must have Ogg Vorbis v1.0 or above installed

error: Bad exit status from /var/tmp/rpm-tmp.m4Gk3f (%build)

解决方法2: 安装libvorbis-devel

yum install libvorbis-devel

将同时安装如下依赖包:

libogg

libogg-devel

libvorbis

验证源和二进制RPM包

一旦rpmbuild命令成功运行结束,你可以在下列命令下验证源码rpm包和二进制rpm包文件。

# ls -l /root/rpmbuild/SRPMS/

-rw-r--r-- 1 root root 1162483 Aug 25 15:46 icecast-2.3.3-0.src.rpm

# ls -l /root/rpmbuild/RPMS/x86_64/

-rw-r--r--. 1 root root 349181 Feb  4 12:54 icecast-2.3.3-0.x86_64.rpm

7. Install the RPM File to Verify

作为最后的步骤,你可以安装二进制包来验证是否成功安装,以及所有的依赖都被满足。

# rpm -ivvh /root/rpmbuild/RPMS/x86_64/icecast-2.3.3-0.x86_64.rpm

D: ============== /root/rpmbuild/RPMS/x86_64/icecast-2.3.3-0.x86_64.rpm

D: loading keyring from pubkeys in /var/lib/rpm/pubkeys/*.key

D: couldn't find any keys in /var/lib/rpm/pubkeys/*.key

D: loading keyring from rpmdb

D: opening  db environment /var/lib/rpm cdb:mpool:joinenv

D: opening  db index       /var/lib/rpm/Packages rdonly mode=0x0

D:  read h#     210 Header sanity check: OK

D: added key gpg-pubkey-c105b9de-4e0fd3a3 to keyring

D: Using legacy gpg-pubkey(s) from rpmdb

D: Expected size:       349181 = lead(96)+sigs(180)+pad(4)+data(348901)

D:   Actual size:       349181

D: ========== relocations

D:      added binary package [0]

D: found 0 source and 1 binary packages

D: ========== +++ icecast-2.3.3-0 x86_64/linux 0x2

..

..

安装完成后可以验证是否成功。

# rpm -qa icecast

icecast-2.3.3-0.x86_64

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/server/guanli/7420.shtml

相关文章

风云图片

推荐阅读

返回Linux管理频道首页