搜档网
当前位置:搜档网 › linux程序包管理之rpm

linux程序包管理之rpm

linux程序包管理之rpm
linux程序包管理之rpm

linux程序的源码编译安装方式毕竟比较繁琐,安装后也不易管理,为此linux 官方提供了专门的程序包管理器来解决这些问题

一、程序包管理器

程序包管理器:将源程序编译并打包成一个或有限的几个文件,可用于实现安装、查询、升级、卸载等功能

程序包管理器的管理实现:

①数据库,用于记录:

程序名及版本

程序之间的依赖关系

功能性说明

安装生成的各文件路径及校验码

②程序的组成清单:

文件清单

安装卸载时运行的脚本

常用程序包管理器:

Redhat:rpm(redhat package manager),其对应的程序包后缀为.rpm,对应的前端工具为yum

Debian:dpkg,其对应的程序包后缀为.deb,对应的前端工具为apt-get

rpm包的制作需要rpmbuild工具,其制作过程这里不作说明,以下详解一下rpm包的管理

二、rpm程序包

2.1、rpm包命名格式:name-version-release.arch.rpm,如httpd-2.2.15-45.el6.centos.x86_64.rpm

version:major.minor.release,同源码

release:rpm自身发行号,与源码的发行号无关,仅用于标识对rpm包不同制作的修订,同时release还包含此包适用的OS

arch:适用的硬件平台

x86: i386, i486, i586, i686等

x86_64: x86_64

powerpc: ppc

noarch: 依赖于虚拟机

2.2、rpm分包机制

一个程序体积可能很大,为了方便管理,rpm包管理器依据功能性差异,将一个程序打包成若干个包

主包(核心包):其name与源程序一致,如httpd-2.2.15-

45.el6.centos.x86_64.rpm

子包:httpd-devel-2.2.15-45.el6.centos.x86_64.rpm

httpd-tools-2.2.15-45.el6.centos.x86_64.rpm

区别:程序x依赖于y和z,若x是基于rpm包安装,则x依赖的是y和z的核心包;若x基于源码编译安装,则x依赖的是y和z的开发包

2.3、获取rpm包的途径

①官方发行的光盘、官方站点、镜像站点

https://www.sodocs.net/doc/785303118.html,

https://www.sodocs.net/doc/785303118.html,

②项目的官网:源代码、rpm包

③第三方机构或个人制作并公开发布许多rpm包

https://www.sodocs.net/doc/785303118.html,

https://www.sodocs.net/doc/785303118.html,

④额外程序包的可靠途径:EPEL,为Federa所维护

2.4、rpm包的合法性验证

rpm包的合法性包括来源合法性和包的完整性两个方面

包的制作者使用单向加密算法提取出原始数据的特征码,并使用自己的私钥加密这段特征码,附加在原始数据之后

验证过程:

前提:必须有可靠机制获取到包制作者的公钥

①使用包制作者的公钥解密那段加密的特征码,能解密则说明来源合法

②使用与制作者同样的单向加密算法提取数据的特征码,并与解密得到的特征码比对,相同则说明包完整性没问题

2.5、rpm 包管理器的使用

㈠验证程序包的合法性

我们在安装rpm 程序包之前,一般要检验其合法性,尤其是从非官方或非权威站点获得的包。当然,不检验包的合法性并不影响包的安装

①导入制作者的公钥

rpm --import /path/to/key_file

②若已导入公钥,rpm 安装程序包的过程中会自动检查其合法性

③手动检查:

rpm -K /path/to/pkg_name

rpm --checksig /path/to/pkg_name

不检查包完整性:

rpm -K --nodigest /path/to/pkg_name

不检查包的来源合法性:

rpm -K --nosignature /path/to/pkg_name

④rpm -qa gpg-pubkey* #显示所有已导入的gpg 格式的公钥

rpm -qi gpg-pubkey-NAME #显示密钥的详细信息

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [root@localhost ~]# mount /dev/cdrom /media #挂载centos 官网发行的光盘

[root@localhost ~]# ls /media #centos 光盘中自带了许多rpm 包,位于Packages 目录中

CentOS_BuildTag EULA imagesPackagesrepodata RPM-GPG-KEY-CentOS-Debug-6 RPM-GPG-KEY-CentOS-Testing-6

EFI GPL isolinux RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Security-6 TRANS.TBL

[root@localhost ~]# cd /media/Packages/

[root@localhost Packages]# ls

...

libreoffice-langpack-et-4.0.4.2-9.el6.x86_64.rpm zlib-devel-1.2.3-29.el6.x86_64.rpm

libreoffice-langpack-eu-4.0.4.2-9.el6.x86_64.rpm zsh-4.3.10-7.el6.x86_64.rpm

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 [root@localhost Packages]# rpm -ivh --test samba-3.6.9-

164.el6.x86_64.rpm #测试安装

warning: samba-3.6.9-164.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

#警告:没有公钥,无法验证包的合法性

Preparing...########################################### [100%] [root@localhost Packages]# rpm --import ../RPM-GPG-KEY-CentOS-6 #导入光盘中提供的公钥

[root@localhost Packages]# rpm -ivh --test samba-3.6.9-

164.el6.x86_64.rpm #可以看到警告信息已消除,验证通过

Preparing...########################################### [100%] [root@localhost Packages]# rpm -K samba-3.6.9-164.el6.x86_64.rpm #还可手动检查

samba-3.6.9-164.el6.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

[root@localhost Packages]# rpm -qa gpg-pubkey* #查看已导入的所有公钥

gpg-pubkey-c105b9de-4e0fd3a3

[root@localhost Packages]# rpm -qi gpg-pubkey-c105b9de-4e0fd3a3 #查看指定公钥的详细信息

Name : gpg-pubkey Relocations: (not relocatable)

Version : c105b9de Vendor: (none)

Release : 4e0fd3a3Build Date: Wed 28 Oct 2015 08:31:40 PM CST

Install Date: Wed 28 Oct 2015 08:31:40 PM CSTBuild Host: localhost Group : Public Keys Source RPM: (none)

Size : 0 License: pubkey

Signature : (none)

Summary : gpg(CentOS-6 Key (CentOS 6 Official Signing Key) )

Description :

-----BEGIN PGP PUBLIC KEY BLOCK-----

Version: rpm-4.8.0 (NSS-3)

mQINBE4P06MBEACqn48FZgYkG2QrtUAVDV58H6LpDYEcTcv4CIFSkgs6dJ9TavCW ...

㈡安装程序包

rpm -i [option] /path/to/package_file

常用选项:

-i :install

-h :安装时显示hash 码,用来表示安装进度

-v :显示执行过程

-vv :详细显示执行过程

--test :仅作测试,并不真正安装

--nodeps :忽略依赖关系

--replacepkgs :重新安装。如果原有的配置文件作了修改,重装可能不执行替换,而是将新生成的配置文件重命名为X.rpmnew

常用组合选项:-ivh

如果依赖于其它包:

①解决依赖关系

②使用--nodeps 选项忽略依赖关系,能安装上,但可能无法运行

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@localhost Packages]# rpm -ivh samba-3.6.9-164.el6.x86_64.rpm Preparing...########################################### [100%] 1:samba########################################### [100%]

[root@localhost Packages]# rpm -ivh --test mysql-5.1.71-1.el6.x86_64.rpm error: Failed dependencies:提示需要先解决依赖关系 libmysqlclient.so.16()(64bit) is needed by mysql-5.1.71-1.el6.x86_64 libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by mysql-5.1.71-1.el6.x86_64 libmysqlclient_r.so.16()(64bit) is needed by mysql-5.1.71-1.el6.x86_64 libmysqlclient_r.so.16(libmysqlclient_16)(64bit) is needed by mysql-5.1.71-1.el6.x86_64 mysql-libs = 5.1.71-1.el6 is needed by mysql-5.1.71-1.el6.x86_64 [root@localhost Packages]# rpm -ivh mysql-libs-5.1.71-1.el6.x86_64.rpm #安装被依赖的包 Preparing...########################################### [100%] 1:mysql-libs ########################################### [100%]

[root@localhost Packages]# rpm -ivh mysql-5.1.71-1.el6.x86_64.rpm Preparing...########################################### [100%] 1:mysql########################################### [100%]

㈢卸载程序包

rpm -e [option] pkg_name

常用选项:

-e :erase

-v ,-vv ,--test ,--nodeps

如果被其它包依赖:

①将依赖于此包的所有包都卸载

②忽略依赖关系,能卸载,但可能造成其它包无法正常使用

如果包的配置文件被修改,卸载时此文件将会被重命名(X.rpmsave )并保留

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@localhost Packages]# rpm -e mysql-libs #卸载指定的包 error: Failed dependencies: #提示该包被mysql 包依赖,无法卸载 libmysqlclient.so.16()(64bit) is needed by (installed) mysql-

5.1.71-1.el

6.x86_64 libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by (installed) mysql-5.1.71-1.el6.x86_64 libmysqlclient_r.so.16()(64bit) is needed by (installed) mysql-5.1.71-1.el6.x86_64 libmysqlclient_r.so.16(libmysqlclient_16)(64bit) is needed by (installed) mysql-5.1.71-1.el6.x86_64 mysql-libs = 5.1.71-1.el6 is needed by (installed) mysql-5.1.71-1.el6.x86_64 [root@localhost Packages]# rpm -e --nodeps mysql-libs #忽略依赖关系强制卸载 [root@localhost Packages]# mysql #可以看到mysql 已无法使用了 mysql: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory [root@localhost Packages]# vim /etc/samba/smbusers

[root@localhost Packages]# rpm -e samba #卸载samba

warning: /etc/samba/smbusers saved as /etc/samba/smbusers.rpmsave #可以看到,修改后的配置文件在程序卸载后会保留

㈣升级程序包:新版本取代老版本

rpm -U/-F [option] /path/to/package_file

常用选项:

-U :升级或安装。不管有无老版本,都安装新版本

-F :纯升级。有老版本才安装新版本,没有的话就不安装

--force :强制升级,可能导致依赖此包的程序无法正常运行

-v ,-h

常用组合选项:-Uvh ,-Fvh

注意:不应该对内核执行升级操作,对于新内核应该直接安装,系统支持多内核并存,新内核若有兼容性问题还能用回老内核。

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [root@localhost ~]# rpm -q zsh

package zsh is not installed #显示zsh 没有安装

[root@localhost ~]# rpm -Fvh /media/Packages/zsh-4.3.10-

7.el6.x86_64.rpm #没有老版本,不安装

[root@localhost ~]# rpm -Uvh /media/Packages/zsh-4.3.10-

7.el6.x86_64.rpm #不管有无老版本,都安装新版本

Preparing...########################################### [100%] 1:zsh ########################################### [100%] [root@localhost ~]# rpm -q mysql

mysql-5.1.71-1.el6.x86_64

[root@localhost ~]# rpm -Fvh mysql-5.1.73-5.el6_6.x86_64.rpm #安装新版本的mysql

error: Failed dependencies:提示依赖新版本的mysql-libs 包

mysql-libs = 5.1.73-5.el6_6 is needed by mysql-5.1.73-

5.el6_

6.x86_64

[root@localhost ~]# rpm -Fvh mysql-libs-5.1.73-5.el6_6.x86_64.rpm error: Failed dependencies:

mysql-libs = 5.1.71-1.el6 is needed by (installed) mysql-5.1.71-1.el6.x86_64

# 这里出现了一个问题:要升级mysql 包,需要先升级其所依赖的mysql-libs 包,而mysql-libs 包无法升级,因为它被现有mysql 包依赖,故这里只能先卸载

[root@localhost ~]# rpm -e --nodeps mysql-libs

[root@localhost ~]# rpm -ivh mysql-libs-5.1.73-5.el6_6.x86_64.rpm Preparing...########################################### [100%] 1:mysql-libs ########################################### [100%]

[root@localhost ~]# rpm -Fvh mysql-5.1.73-5.el6_6.x86_64.rpm Preparing...########################################### [100%] 1:mysql########################################### [100%]

[root@localhost ~]# rpm -q mysql

mysql-5.1.73-5.el6_6.x86_64 #已升级至新版本

㈤查询操作

rpm -q [option] [pkg_name]

常用查询操作:

①查询某包是否已安装:rpm -q pkg_name

②查询所有已安装的包:rpm -qa

可结合grep 命令使用,查询符合指定范式的包:rpm -qa | grep 'PATTERN'

③查询包的描述信息:rpm -qi pkg_name

④查询某包生成了哪些文件:rpm -ql pkg_name

查询某包生成了哪些配置文件:rpm -qc pkg_name

查询某包生成了哪些帮助文件:rpm -qd pkg_name

查询程序包相关的脚本:rpm -q --scripts pkg_name

脚本有四类:

preinstall :安装前脚本

postinstall :安装后脚本

preuninstall :卸载前脚本

postuninstall :卸载后脚本

⑤查询某个文件由哪个包安装生成:rpm -qf /path/to/somefile

⑥对尚未安装的包进行查询:rpm [option] /path/to/pkg_file ,可用组合选项有-qpi ,-qpl ,-qpc ,-qpd 等

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [root@localhost Packages]# rpm -q samba #查询samba 是否已安装 samba-3.6.9-164.el6.x86_64

[root@localhost Packages]# rpm -qa #查询所有已安装的包

pulseaudio-module-gconf-0.9.21-14.el6_3.x86_64

db4-devel-4.7.25-18.el6_4.x86_64

libxklavier-4.0-9.el6.x86_64

...

[root@localhost Packages]# rpm -qa | grep 'mysql'

mysql-libs-5.1.71-1.el6.x86_64

mysql-5.1.71-1.el6.x86_64

[root@localhost Packages]# rpm -ql samba #查看samba 包生成了哪些文件

/etc/logrotate.d/samba

/etc/openldap/schema

/etc/openldap/schema/samba.schema

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 /etc/pam.d/samba

/etc/rc.d/init.d/nmb

/etc/rc.d/init.d/smb

/etc/samba/smbusers

/usr/bin/eventlogadm

/usr/bin/mksmbpasswd.sh

/usr/bin/smbstatus

/usr/lib64/samba/auth

...

[root@localhost Packages]# rpm -qc samba #查看samba 包生成了哪些配置文件

/etc/logrotate.d/samba

/etc/pam.d/samba

/etc/samba/smbusers

[root@localhost Packages]# rpm -qd samba #查看samba 包生成了哪些帮助文件

/usr/share/doc/samba-3.6.9/LDAP/README

...

/usr/share/man/man7/samba.7.gz

...

[root@localhost Packages]# rpm -qf /etc/openldap/schema #查询指定文件由哪个包安装生成

samba-3.6.9-164.el6.x86_64

[root@localhost Packages]# rpm -qpi httpd-2.2.15-

29.el6.centos.x86_64.rpm #安装httpd 包前查看其详细信息

Name : httpdRelocations: (not relocatable)

Version : 2.2.15Vendor: CentOS

㈥校验程序包:用于检查包安装生成的文件属性是否发生变化

rpm -V pkg_name

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

[root@localhost ~]# rpm -V httpd

S.5....T. c /etc/httpd/conf/httpd.conf

#我们修改了httpd 配置文件,可以看到其大小、MD5校验码及修改时间均发生了改变,其它属性无变化

见上方命令行中的"S.5....T.",rpm 用七个段位分别表示文件七种不同属性的变化状态,这七种属性分别为:

S file Size differs #大小

M Mode differs (includes permissions and file type) #权限

5 digest (formerly MD5 sum) differs #MD5校验码

D Device major/minor number mismatch #设备文件的主次设备号 L readLink(2) path mismatch

U User ownership differs #属主

G Group ownership differs #属组

T mTime differs #修改时间

P caPabilities differ

若对应段位的属性有改变,则显示为对应字母标识;无变化则显示为【.】

㈦rpm 包管理器的数据库重建

①rpm 包管理器的数据库目录:/var/lib/rpm

②rpm --initdb :初始化。如果事先没有库,会新建一个,有库的话就不新建 rpm --rebuilddb :重建。直接重建,覆盖原有的数据库

?

1 2 3 4 5 6 7 8 [root@localhost ~]# ls /var/lib/rpm

Basenames __db.001 __db.003 Dirnames Group NamePackages Provideversion Requirename Sha1header Triggername

Conflictname __db.002 __db.004 Filedigests Installtid Obso letename Providename Pubkeys Requireversion Sigmd5 [root@localhost ~]# rpm --initdb #已有库,则不会新建

[root@localhost ~]# rpm --rebuilddb

[root@localhost ~]# ls /var/lib/rpm

Basenames Dirnames Group NamePackages Provideversion Requirename Sha1header Triggername

Conflictname Filedigests Installtid Obsoletename Providename Pubkeys Requireversion

linux 安装软件tar和rpm命令

一. tar tar 命令用于把多个文件合并于一个档案文件中,并提供分解的合并后的档案文件的功能,它独立于压缩工具。因此可以选择在合并前是否压缩。tar 命令的基本用法为: tar [选项] 文件名 常用的选项包括: -c 创建一个新的档案文件 -t 查看档案文件的内容 -x 分解档案文件的内容 -f 指定档案文件的名称 -v 显示过程信息 -z 采用压缩方式 举例 1、tar -czf oracle.tar.gz /u01/app/oracle /etc/oratab /home/oracle 该命令将/u01/app/oracle 目录下的所有文件、/etc/oratab 文件和/home/oracle 目录下的所有文件合并到oracle.tar 文件中,并采用压缩方式。 2、tar -tzf oracle.tar.gz 该命令列出归档文件oracle.tar 中的所有文件列表。 3、tar –xzvf oracle.tar.gz 该命令将归档文件分解并解压缩到原有文件的路径中。 二.bin结尾的安装包,这种包类似于RPM包,安装也比较简单 1、打开一个SHELL,即终端 2、用CD 命令进入源代码压缩包所在的目录 3、给文件加上可执行属性:chmod +x ******.bin(中间是字母x,小写) 3、执行命令:./******.bin(realplayer for linux就是这样的安装包) 如何卸载:把安装时中选择的安装目录删除就OK 三. rpm rpm 命令的功能有很多,在这里我们只介绍如何利用rpm 安装和查询已安装的软件。 1、安装 rpm 安装软件包的基本语法如下: rpm -i rpm 包名 例如 rpm -i tomcat4.rpm 该命令将安装Tomcat 软件并进行相关系统配置。 2、升级 rpm 升级软件包的基本语法如下: rpm -U rpm 包名 例如 rpm –U tomcat4.rpm 该命令将升级Tomcat 软件并进行相关系统配置。 3、查看已安装的软件 有的时候,了解系统中都已经安装了哪些软件包以及它们的用途是很有用的,R P M 的查询参数就可以做到这一点。要想列出已经安装的全部软件包,可以通过以下命令: rpm -qa 可以使用g r e p 命令指定软件包的名称(或者部分名),称如下所示:

实验六 Linux软件包管理与基本网络配置

实验六Linux软件包管理与基本网络配置 一. 一.实验目的: 1.1.学会find命令的使用方法; 2.2.学习利用rpm和tar命令实现软件包的管理; 3.3.掌握如何在Linux下的TCP/IP网络的设置; 4.4.学会使用命令检测网络配置; 5.5.学会启用和禁用系统服务。 二. 二.实验内容: 1.1.利用find命令查找满足条件的文件; 2.2.利用rpm和tar命令管理软件包; 3.3.使用ifconfig命令配置网络接口; 4.4.使用route命令加默认网关; 5.5.使用hostname命令设置主机名; 6.6.修改/etc/hosts实现Linux的静态地址解析; 7.7.修改/etc/resolv.conf配置Linux的DNS客户端; 8.8.使用ping、netstat命令检测配置; 9.9.设置系统启动时自动配置网络参数; 10.10.用service命令和ntsysv命令控制守护进程。 三. 三.实验练习: 任务一 rpm软件包的管理 本部分实验内容按照课本P171-P178页的各个小的实验内容进行练习。 任务二 find命令的使用 1.1.在/var/lib目录下查找所有文件其所有者是games用户的文件。 $ find /var/lib –user games 2> /dev/null 2.2.在/var目录下查找所有文件其所有者是root用户的文件。 $ find /var –user root –group mail 2>/dev/mull 3.3.查找所有文件其所有者不是root,bin和student用户并用长格式显示(如ls –l 的显示结果)。$ find / -not –user root –not –user bin –not –user student –ls 2> /dev/null or $find / ! –user root ! –user bin ! –user student –exec ls –ld {} \; 2> /dev/null 4.4.查找/usr/bin目录下所有大小超过一百万byte的文件并用长格式显示(如ls –l 的显示结果)。$ find /usr/bin –size +1000000c –ls 2> /dev/null 5.5.对/etc/mail目录下的所有文件使用file命令。 $find /etc/maill –exec file {} \; 2 > /dev/null

Linux软件的安装与拆卸

Linux软件的安装与拆卸 1、查看是否安装了gcc 命令#rpm -qlgcc #rpm -qa |grepgcc 参数:q-询问 a-查询全部 l-显示列表 2、权限 安装和删除只有root和有安装权限的用户才可以进行。查询是每个用户都可以进行操作的。 ******************************************************************************* ************** 下面是转来的一篇文章,先存着 https://www.sodocs.net/doc/785303118.html,/main/?q=node/50 1.1RPM 的介绍和应用 作者:北南南北 来自:https://www.sodocs.net/doc/785303118.html, 提要:RPM 是Red Hat Package Manager 的缩写,原意是Red Hat 软件包管理;本文介绍

RPM,并结合实例来解说RPM手工安装、查询等应用; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 正文: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RPM 是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用;RPM包里面都包含什么?里面包含可执行的二进制程序,这个程序和Windows的软件包中的.exe文件类似是可执行的;RPM包中还包括程序运行时所需要的文件,这也和Windows的软件包类似,Windows的程序的运行,除了.exe文件以外,也有其它的文件;一个RPM 包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件包的依赖关系;依赖关系并不是Linux特有的,Windows操作系统中也是同样存在的;比如我们在Windows 系统中运行3D游戏,在安装的时候,他可能会提示,要安装Direct 9 ;Linux和Windows 原理是差不多的;软件安装流程图: 本文使用范围: 1、本文是对RPM管理的软件的说明,对通过file.tar.gz 或file.tar.bz2源码包用make ;make install 安装的软件无效; 2、安装软件时,最好用各自发行版所提供的系统软件包管理工具,对于Fedora/Redhat您可以参考如下文章;1)Fedora 系统管理软件包工具system-config-packages,方便的添加和移除系统安装盘提供的软件包,详情请看《Fedora 软件包管理器system-config-packages》2)Redhat系统管理软件包工具,新一点的系统应该是redhat-config-packages ,用法和《Fedora 软件包管理器system-config-packages》一样;3)apt + synaptic 软件包在线安装、移除、升级工具;用法:《用apt+synaptic 在线安装或升级Fedora core 4.0 软件包》 4)yum 软件包在线安装、升级、移除工具;用法:《Fedora/Redhat 在线安装更新软件包,yum 篇》5)所有的yum和apt 教程《apt and yum》目前apt和yum 已经极为成熟了,建议我们安装软件时,采用apt或者yum ;如果安装系统盘提供的软件包,可以用system-config-packages 或redhat-config-packages ; 一、RPM包管理的用途; 1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;

软件安装之--RPM命令大全!

RPM 大全 RPM 有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证。下面我们就来逐一的讲解吧。 一、安装RPM包 RPM 软件包通常具有类似foo-1.0-1.i386.rpm 的文件名。其中包括软件包的名称(foo),版本号(1.0), 发行号(1),和硬件平台(i386)。安装一个软件包只需简单的键入以下命令: $ rpm -ivh foo-1.0-1.i386.rpm foo #################################### RPM安装完毕后会打印出软件包的名字(并不一定与文件名相同),而后打印一连串的#号以表示安装 进度。虽然软件包的安装被设计的尽量简单易行,但还是可能会发生如下的错误: 1、软件包已被安装 如果您的软件包已被安装, 将会出现以下信息: $ rpm -ivh foo-1.0-1.i386.rpm foo package foo-1.0-1 is already installed error: foo-1.0-1.i386.rpm cannot be installed 如果您仍旧要安装该软件包,可以在命令行上使用--replacepkgs 选项,RPM将忽略该错误信息强行安装。 2、文件冲突 如果您要安装的软件包中有一个文件已在安装其它软件包时安装,会出现以下错误信息:# rpm -ivh foo-1.0-1.i386.rpm

foo /usr/bin/foo conflicts with file from bar-1.0-1 error: foo-1.0-1.i386.rpm cannot be installed 要想让RPM 忽略该错误信息,请使用--replacefiles 命令行选项。 3、未解决依赖关系 RPM软件包可能依赖于其它软件包,也就是说要求在安装了特定的软件包之后才能安装该软件包。 如果在您安装某个软件包时存在这种未解决的依赖关系。会产生以下信息: $ rpm -ivh bar-1.0-1.i386.rpm failed dependencies: foo is needed by bar-1.0-1 您必须安装完所依赖的软件包,才能解决这个问题。如果您想强制安装(这是个坏主意,因为安装后的软 件包未必能正常运行),请使用--nodeps 命令行选项。 二、卸载RPM包 卸载软件包就象安装软件包时一样简单: $ rpm -e foo 注意这里使用软件包的名字name ``foo,而不是软件包文件的名字file ``foo-1.0-1.i386.rpm。如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。如: $ rpm -e foo removing these packages would break dependencies:foo is needed by bar-1.0-1 若让RPM忽略这个错误继续卸载(这可不是一个好主意,因为依赖于该软件包的程序可能无法运行), 请使用--nodeps 命令行选项。

LINUX下tar.gz包的安装方法

LINUX下tar.gz包的安装方法 大多以tar.gz 和tar.bz2打包软件,大多是通过 ./configure ;make ;make install 来安装的;有的软件是直接make;make install。 我们可以通过。/configure ——help 来查看配置软件的功能;大多软件是提供。/configure 配置软件的功能的;少数的也没有,如果没有的就不用。/configure ;直接make;make install 就行了; . /configure比较重要的一个参数是——prefix ,用——prefix 参数,我们可以指定软件安装目录;当我们不需要这个软件时,直接删除软件的目录就行了; 比如我们可以指定fcitx安装到/opt/fcitx目录中; [root@localhost fcitx]#./configure ——prefix=/opt/fcitx如果我们不需要fcitx 时,可以直接删除/opt/fcitx 目录;所以我们举这个例子中,fcitx如果定制安装到/opt/fcitx目录中,完整的安装方法应该是:[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2 [root@localhost fcitx]#cd fcitx [root@localhost fcitx]# ./configure ——prefix=/opt/fcitx [root@localhost fcitx]# make [root@localhost fcitx]# make install ================================================================= === 一、什么是源码包软件; 顾名思义,源码包就是源代码的可见的软件包,基于Linux和BSD系统的软件最常见;在国内源可见的软件几乎绝迹;大多开源软件都是国外出品;在国内较为出名的开源软件有fcitx;lumaqq;Lumaqq及scim等;但软件的源代码可见并不等于软件是开源的,我们还要以软件的许可为准;比如有些软件是源码可见的,但他约定用户只能按他约定的内容来修改;比如vbb论坛程序;所以一个软件是否是开源软件,得具备两个条件;一是源代码可见;二是要有宽松的许可证书,比如GPL证书等;在GNU Linux或BSD社区中,开发人员在放出软件的二进制软件包的同时,也会为我们提供源代码软件包; 二、源代码有何用? 一个软件的如果有源码,是任何人都能看到他是怎么开发而来的,就像一个瓶子,比如瓶子制作的模具是什么;需要什么材料;具体的用途以及瓶子的详细说明书等等。软件的开放源码就是类似,开发者在给我们软件的同时,也会告诉我们软件是怎么开发出来的;只

Redhat系统下三种主要的软件包安装方法

1.通过RPM软件包来安装 说起RPM(REDHAT Package Management)标准的软件包,大家可能都会想起大名鼎鼎的REDHAT公司,正是RPM软件包发行方式的出现,使Linux中的应用软件安装变得简单。如果用户想安装按RPM方式发行的软件,只需简单地输入命令“rpm -ivh xxx.rpm”即可。 比如用户想安装https://www.sodocs.net/doc/785303118.html,-1.0.1.rpm软件包,只需输入命令“rpm -ivh https://www.sodocs.net/doc/785303118.html,-1.0.1.rpm”即可。RPM软件包发行方式的另一个优点是它能够方便地对已经安装的RPM软件包进行删除,只要使用“rpm -e https://www.sodocs.net/doc/785303118.html,-1.0.1”命令就能将刚才安装的https://www.sodocs.net/doc/785303118.html,-1.0.1.rpm从硬盘上安全永久地删除。如果你是在 X-Window环境中安装/删除软件,那便有更好的办法,如果使用的是KDE,可以使用KDE自带的Kpackage 程序来对软件进行添加或删除,如果是使用GNOME,则可以使用Gnorpm程序对软件进行管理。这两个程序都很像微软Windows中的“添加/删除程序”功能。以RPM软件包发行方式的软件是最容易安装和管理的,建议大家以后多采用这种模式来管理软件。 2.Tar.gz(Tgz)软件包的安装 以 Tar.gz为扩展名的软件包,是用Tar程序打包并用Gzip程序压缩的软件包。要安装这种软件包,需要先对软件包进行解压缩,使用“tar -zxfv filename.tar.gz”可以对软件包进行解压缩,解压缩所得的文件在以Filename为名的目录中。进入该目录,可以看到解压缩出来的文件了。 各种软件都有不同的安装方法,但是一般每个软件包解压缩后都有Install和Readme 文件,帮助文件中会有详细的安装指导。以Tar.gz(或Tgz)包发行的软件有一个缺点,就是一般不带自动反安装程序,如果需要对已经安装的此类程序进行删除,就不得不仔细查看Makefile中的安装路径和文件名,这些对于初学者有一些难度。 3.Tar.bz2软件包的安装 以Tar.bz2为扩展名的软件包,是用Tar程序打包并用Bzip2程序进行压缩的软件包。它的优点是压缩率非常高,需要使用“bunzip2 filename.tar.bz2”进行解压。但以该种方式发行的软件包与Tar.gz软件包有着同样的缺点,那就是删除非常麻烦。

Linux下QQ等软件的安装方法

Linux下QQ等软件的安装方法.txt24生活如海,宽容作舟,泛舟于海,方知海之宽阔;生活如山,宽容为径,循径登山,方知山之高大;生活如歌,宽容是曲,和曲而歌,方知歌之动听。Linux下QQ等软件的安装方法2008-10-31 23:39 Linux下QQ等软件的安装方法2008-10-16 16:06要充分发挥电脑的作用,就得有大量的应用软件,完成不同的工作。在Windows环境中安装各种应用软件的思路与方法,想必大家早已熟悉。然而,在使用Linux时,我们却总会被这些本不应该是问题的问题所困扰:怎么安装应用软件?我的软件安装在什么地方?如何删除不要的应用软件?…… 下面,我们就一起来认识一下这些方面的知识。 一、解读Linux应用软件安装包 通常Linux应用软件的安装包有三种: 1) tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。2) rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。3) dpkg包,如software-1.2.3-1.deb。它是Debain Linux提供的一种包封装格式。 而且,大多数Linux应用软件包的命名也有一定的规律,它遵循: 名称-版本-修正版-类型 例如: 1)software-1.2.3-1.tar.gz 意味着: 软件名称:software 版本号:1.2.3 修正版本:1 类型:tar.gz,说明是一个tar包。 2)sfotware-1.2.3-1.i386.rpm 软件名称:software 版本号:1.2.3 修正版本:1 可用平台:i386,适用于Intel 80x86平台。 类型:rpm,说明是一个rpm包。 注:由于rpm格式的通常是已编译的程序,所以需指明平台。在后面会详细说明。 而software-1.2.3-1.deb就不用再说了吧!大家自己练习一下。 二、了解包里的内容 一个Linux应用程序的软件包中可以包含两种不同的内容: 1)一种就是可执行文件,也就是解开包后就可以直接运行的。在Windows中所有的软件包都是这种类型。安装完这个程序后,你就可以使用,但你看不到源程序。而且下载时要注意这个软件是否是你所使用的平台,否则将无法正常安装。 2)另一种则是源程序,也就解开包后,你还需要使用编译器将其编译成为可执行文件。这在Windows系统中是几乎没有的,因为Windows的思想是不开放源程序的。 通常,用tar打包的,都是源程序;而用rpm、dpkg打包的则常是可执行程序。一般来说,自己动手编译源程序能够更具灵活性,但也容易遇到各种问题和困难。而相对来说,下载那些可执行程序包,反而是更容易完成软件的安装,当然那样灵活性就差多了。所以一般一个软件总会提供多种打包格式的安装程序的。你可以根据自己的情况来选择。 三、搞定使用tar打包的应用软件 1. 安装: 整个安装过程可以分为以下几步: 1)取得应用软件:通过下载、购买光盘的方法获得;

Linux系统软件包集合(中文)

AbiWord: a full-featured word processor 代码:一个全功能的文字处理器 AfterStep:对X中的窗口管理器下一个外观和感觉 Alpine: a text-based MIME email client based on Pine Alpine:松基于文本的MIME邮件客户端 alsa-lib: an audio library for use with the ALSA kernel modules ALSA-lib目录下:用于与ALSA内核模块使用音频库 Apache-Tomcat:一个Java Servlet和JSP容器 APT:前端为dpkg包管理ATI驱动程序:到XFree86/ https://www.sodocs.net/doc/785303118.html,由ATI的Catalyst系列专有Linux 显示驱动程序 Audacity的:一个免费的音频编辑器 Autoconf的:一个包M4宏制作脚本自动配置源代码 GNU Automake的:用于自动生成Makefile文件的工具 Avidemux的:一个免费的视频编辑器,可用于简单的切割,过滤和编码任务awesome:一个可配置的窗口管理器对于x Banshee: 音乐管理及播放应用程序的GNOME Bash: an sh-compatible command language interpreter Bash:一个sh兼容的命令语言解释 ISC BIND: an implementation of the Domain Name System (DNS) protocols ISC BIND:域名系统(DNS)协议的实现 IGNU Binutils: an essential collection of binary utilities IGNU Binutils:二进制实用的必备收藏 Bison: a replacement for the parser generator Yacc Bison: 替换为解析器生成的Yacc Bitcoin: an innovative payment network and a new kind of money 比特币:一种创新的支付网络和一种新的货币

查看linux 下已经安装的软件包

查看linux 下已经安装的软件包 RPM使用详解在Linux 操作系统中,有一个系统软件包,它的功能类似于Windows里面的“添加/删除程序”,但是功能又比“添加/删除程序”强很多,它就是Red Hat Package Manager(简称RPM)。此工具包最先是由Red Hat公司推出的,后来被其他LinuxRPM使用详解 在Linux 操作系统中,有一个系统软件包,它的功能类似于Windows 里面的“添加/删除程序”,但是功能又比“添加/删除程序”强很多,它就是Red Hat Package Manager(简称RPM)。此工具包最先是由Red Hat公司推出的,后来被其他Linux开发商所借用。由于它为Linux 使用者省去了很多时间,所以被广泛应用于在Linux下安装、删除软件。下面就给大家介绍一下它的具体使用方法。 1.我们得到一个新软件,在安装之前,一般都要先查看一下这个软件包里有什么内容,假设这个文件是:Linux-1.4-6.i368.rpm,我们可以用这条命令查看: rpm -qpi Linux-1.4-6.i368.rpm 系统将会列出这个软件包的详细资料,包括含有多少个文件、各文件名称、文件大小、创建时间、编译日期等信息。

2.上面列出的所有文件在安装时不一定全部安装,就像Windows下程序的安装方式分为典型、完全、自定义一样,Linux也会让你选择安装方式,此时我们可以用下面这条命令查看软件包将会在系统里安装哪些部分,以方便我们的选择: rpm -qpl Linux-1.4-6.i368.rpm 3. 选择安装方式后,开始安装。我们可以用rpm-ivh Linux-1.4-6.i368.rpm命令安装此软件。在安装过程中,若系统提示此软件已安装过或因其他原因无法继续安装,但若我们确实想执行安装命令,可以在-ivh后加一参数“-replacepkgs”: rpm -ivh -replacepkgs Linux-1.4-6.i368.rpm 4.有时我们卸载某个安装过的软件,只需执行rpm-e <文件名>;命令即可。 5.对低版本软件进行升级是提高其功能的好办法,这样可以省去我们卸载后再安装新软件的麻烦,要升级某个软件,只须执行如下命令:rpm -uvh <文件名>;,注意:此时的文件名必须是要升级软件的升级补丁

Linux操作系统应用程序的安装与管理技巧

Linux操作系统应用程序的安装与管理技巧 1、Linux应用程序基础 2、RPM包管理 包管理系统初步: RPM:RPM Package Manager RPM包管理系统: $ rpm RPPM包的文件名称: bash-3.0-19.2.i386.rpm bash:软件名称。 3.0-19.2:软件的版本号。 i386:软件所运行的最低硬件平台。 rpm:文件的扩展名,用来标识当前文件是rpm格式的软件包。 RPM包管理功能: rpm命令配合不同的参数可以实现以下的rpm包的管理功能: 查询已安装在linux系统中的RPM软件包的信息。 查询RPM软件包安装文件的信息。 安装RPM软件包到当前linux系统。 从当前linux系统中卸载已安装的RPM软件包。 从当前linux系统中升级已安装的RPM软件包。 使用rpm命令查询软件包: 1、查询系统中安装的所有RPM包

$ rpm -qa 查询当前linux系统中已经安装的软件包。 例:$ rpm -qa | grep -i x11 | head -3 察看系统中包含x11字符串的前3行软件包。 2、查询软件包是否安装 $ rpm –q rpm包名称察看系统中指定软件包是否安。 例: $ rpm -q bash 察看系统中bash软件包是否安装。 "rpm -q"命令中指定的软件包名称需要准确的拼写,该命令不会在软件包的名称中进行局部匹配的查询。 3、查询已安装软件包详细信息 $ rpm –qi RPM包名称查询linux系统中指定名称软件包的详细信息。 例:$ rpm -qi bash 察看bash软件包的详细信息。 "rpm -qi"命令的执行结果中包含较详细的信息,包括:软件名称,版本信息,包大小,描述,等。 4、查询已安装软件包中的文件列表 $ rpm –ql RPM包名称查询已安装软件包在当前系统中安装了哪些文件。 例:$ rpm -ql bash | head -3 查看bash软件在系统中已安装文件的前3行文件列表。 $ rpm -ql bash | grep bin 用过滤方式察看bash中包含bin字符串的文件列表。 5、查询系统中文件所属的软件包 $ rpm –qf 文件名称查询linux系统中指定文件所属的软件包。 例:$ rpm -qf /bin/bash 察看bash文件所属的软件包。 bash-3.0-19.2 显示结果。 6、查询RPM安装包文件中的信息 $ rpm –qpi RPM包文件名察看RPM包未安装前的详细信息。

Linux下软件安装详解(精)

Linux下软件安装详解 在Linux系统中,软件安装程序比较纷繁复杂,不过最常见的有两种: 1一种是软件的源代码,您需要自己动手编译它。这种软件安装包通常是用gzip 压缩过的tar包(后缀为.tar.gz。 2另一种是软件的可执行程序,你只要安装它就可以了。这种软件安装包通常被是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器,后缀是.rpm。 当然,也有用rpm格式打包的源代码,用gzip压缩过的可执行程序包。只要您理解了以下的思路,这两种形式的安装包也不在话下了。 下面,我们就分成两个部分来说明软件安装思路: 第一部分:搞定.tar.gz 1.首先,使用tar -xzvf来解开这个包,如: #tar -xzvf apache_1_3_6_tar.gz 这样就会在当前目录中创建了一个新目录(目录名与.tat.gz包的文件名类似,用来存放解压了的内容。如本例中就是apache_1.3.6 2.进入这个目录,再用ls命令查看一下所包含的文件,如: #cd apache_1.3.6 #ls 你观察一下这个目录中包含了以下哪一个文件:configure、Makefile还是Imake。 1如果是configure文件,就执行:

#./configure #make #make install 2如果是Makefile文件,就执行: #make #make install 3如果是 Imake文件,就执行: #xmkmf #make #make install 3.如果没有出现什么错误提示的话,就搞定了。至于软件安装到什么地方,通常会在安装时出现。否则就只能查阅一下README,或者问问我,:- 如果遇到错误提示,也别急,通常是十分简单的问题: 1没有安装C或C++编译器; 确诊方法:执行命令gcc(C++则为g++,提示找不到这个命令。 解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令: #rpm -ivh gcc* (哈哈,我们用到了第二种安装方式 2没有安装make工具; 确诊方法:执行命令make,提示找不到这个命令。

linux软件包的管理-自己总结-附实例

目录 Linux软件包管理 (2) 二进制软件包管理(RPM,YUM) (2) 软代码包安装 (3) 脚本安装 (3) ATP报管理(ubantu) (3)

Linux软件包管理 二进制软件包管理(RPM,YUM) RPM(RedHat package management): 安装:rpm ivh sudo-1.7.2pl-5.el5.i386.rpm 软件名称-版本号-发行号.硬件平台 卸载:rpm –e sudo (rpm --nodeps sudo) 软件包有依赖性关系,卸载时会产生提示信息,可使用后面的语句进行强行卸载 挂载光盘:mkdir /mnt/cdrom Mount /dev/cdrom /mnt/cdrom 查看软件是否安装:rpm –q sudo rpm –qa | grep samba rpm –qf sudo (查询所述的软件包) rpm –qi sudo rpm –qip sudo (查询已安装或未按装软件包的描述信息) rpm –ql sudo rpm –qlp sudo (查询软件包安装的文件) rpm –qd sudo rpm –qdp sudo (查询软件包帮助文档) rpm –qc sudo rpm –qcp sudo (查询软件包配置文件) 校验:rpm –V sudo 提示:5 md5校验值内容变化(md5sum /etc/services) S 文件大小变化 T 文件的时间 M 权限变化 U 文件的所有者变化 G 文件的用户组变化 L 连接文件变化 D 设备文件变化 软件包文件提取: 压缩所有文件到当前目录 rpm2cpio /mnt/cdrom/CentOS/initscripts-8.45.30-2.el5.centos.i386.rpm | cpio –idv 压缩指定文件到当前目录 rpm2cpio /mnt/cdrom/CentOS/initscripts-8.45.30-2.el5.centos.i386.rpm | cpio –idv ./etc/inittab 其他安装选项:rpm –ivh --excludedocs sudo-1. 7.2pl-5.el5.i386.rpm (不安装文档内容) rpm –ivh --prefix PATH sudo-1. 7.2pl-5.el5.i386.rpm (将软件包安装到由PATH指定的路径下) rpm –ivh --test sudo-1. 7.2pl-5.el5.i386.rpm (只对安装进行测试,并不实际安装) rpm –ivh --replacepkgs sudo-1. 7.2pl-5.el5.i386.rpm(覆盖安装该软件包) rpm –ivh --replacefiles sudo-1. 7.2pl-5.el5.i386.rpm(文件冲突,覆盖) rpm –Uvh sudo-1. 7.2pl-5.el5.i386.rpm(升级软件包)

RPM软件包的下载网站汇总

Linux下软件安装包好多种格式,有.bin、.tar.gz、.rpm等等,安装形式也五花八门——其中.bin可以直接用命令./***.bin执行,.tar.gz可以用tar -zxvf ***.tar.gz解压。最近有学到一个rpm包(全称Red Hat Package Manager),是RedHat开发的,现为业界认可并纷纷采用的软件包管理机制,它有自己的命令,管理软件的话比较科学和方便,所以我感觉比较好。但是往往下载软件的时候找不到rpm包,一般都是.tar.gz居多,于是我百度搜索rpm包下载,整理了下列的rpm包下载网站,分享给大家。 https://www.sodocs.net/doc/785303118.html,/ https://www.sodocs.net/doc/785303118.html, https://www.sodocs.net/doc/785303118.html, https://www.sodocs.net/doc/785303118.html,/或者直接到这里下载: https://www.sodocs.net/doc/785303118.html,/redhat/ http://atrpms.physik.fu-berlin.de/或者直接到这里下载: http://apt.physik.fu-berlin.de/redhat/ https://www.sodocs.net/doc/785303118.html,/或者直接到这里下载:http://apt.sw.be/redhat/ https://www.sodocs.net/doc/785303118.html,/或者直接到这里下载: https://www.sodocs.net/doc/785303118.html,/fedora/redhat/ http://newrpms.sunsite.dk/或者直接到这里下载: http://newrpms.sunsite.dk/apt/redhat/

Linux 软件的打包与安装

在linux下软件的安装和卸载 一、了解Linux应用软件安装包: 通常Linux应用软件的安装包有三种: 1)tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。 2)rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。 3)dpkg包,如software-1.2.3-1.deb。它是Debain Linux提供的一种包封装格式。 而且,大多数Linux应用软件包的命名也有一定的规律,它遵循: 名称-版本-修正版-类型 例如: 1)software-1.2.3-1.tar.gz 意味着: 软件名称:software 版本号:1.2.3 修正版本:1 类型:tar.gz,说明是一个tar包。 2)sfotware-1.2.3-1.i386.rpm 软件名称:software 版本号:1.2.3 修正版本:1 可用平台:i386,适用于Intel 80x86平台。 类型:rpm,说明是一个rpm包。 注:由于rpm格式的通常是已编译的程序,所以需指明平台。在后面会详细说明。 而software-1.2.3-1.deb就不用再说了吧!大家自己练习一下。 二、了解包里的内容: 一个Linux应用程序的软件包中可以包含两种不同的内容: 1)一种就是可执行文件,也就是解开包后就可以直接运行的。在Windows中所有的软件包都是这种类型。安装完这个程序后,你就可以使用,但你看不到源程序。而且下载时要注意这个软件是否是你所使用的平台,否则将无法正常安装。 2)另一种则是源程序,也就解开包后,你还需要使用编译器将其编译成为可执行文件。这在Windows系统中是几乎没有的,因为Windows的思想是不开放源程序的。 通常,用tar打包的,都是源程序;而用rpm、dpkg打包的则常是可执行程序。一般来说,自己动手编译源程序能够更具灵活性,但也容易遇到各种问题和困难。而相对来说,下载那些可执行程序包,反而是更容易完成软件的安装,当然那样灵活性就差多了。所以一般一个软件总会提供多种打包格式的安装程序的。你可以根据自己的情况来选择。 三、使用tar打包的应用软件 1. 安装: 整个安装过程可以分为以下几步: 1)取得应用软件:通过下载、购买光盘的方法获得; 2)解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。如果是最常见的gz格式,则可以执行:“tar –xvzf 软件包名”,就可以一步完成解压与解包工作。如果不是,则先用解压软件,再执行“tar –xvf 解压后的tar包”进行解包; 3)阅读附带的INSTALL文件、README文件;

linux程序包管理之rpm

linux程序的源码编译安装方式毕竟比较繁琐,安装后也不易管理,为此linux 官方提供了专门的程序包管理器来解决这些问题 一、程序包管理器 程序包管理器:将源程序编译并打包成一个或有限的几个文件,可用于实现安装、查询、升级、卸载等功能 程序包管理器的管理实现: ①数据库,用于记录: 程序名及版本 程序之间的依赖关系 功能性说明 安装生成的各文件路径及校验码 ②程序的组成清单: 文件清单 安装卸载时运行的脚本 常用程序包管理器: Redhat:rpm(redhat package manager),其对应的程序包后缀为.rpm,对应的前端工具为yum Debian:dpkg,其对应的程序包后缀为.deb,对应的前端工具为apt-get rpm包的制作需要rpmbuild工具,其制作过程这里不作说明,以下详解一下rpm包的管理 二、rpm程序包 2.1、rpm包命名格式:name-version-release.arch.rpm,如httpd-2.2.15-45.el6.centos.x86_64.rpm version:major.minor.release,同源码 release:rpm自身发行号,与源码的发行号无关,仅用于标识对rpm包不同制作的修订,同时release还包含此包适用的OS arch:适用的硬件平台

x86: i386, i486, i586, i686等 x86_64: x86_64 powerpc: ppc noarch: 依赖于虚拟机 2.2、rpm分包机制 一个程序体积可能很大,为了方便管理,rpm包管理器依据功能性差异,将一个程序打包成若干个包 主包(核心包):其name与源程序一致,如httpd-2.2.15- 45.el6.centos.x86_64.rpm 子包:httpd-devel-2.2.15-45.el6.centos.x86_64.rpm httpd-tools-2.2.15-45.el6.centos.x86_64.rpm 区别:程序x依赖于y和z,若x是基于rpm包安装,则x依赖的是y和z的核心包;若x基于源码编译安装,则x依赖的是y和z的开发包 2.3、获取rpm包的途径 ①官方发行的光盘、官方站点、镜像站点 https://www.sodocs.net/doc/785303118.html, https://www.sodocs.net/doc/785303118.html, ②项目的官网:源代码、rpm包 ③第三方机构或个人制作并公开发布许多rpm包 https://www.sodocs.net/doc/785303118.html, https://www.sodocs.net/doc/785303118.html, ④额外程序包的可靠途径:EPEL,为Federa所维护 2.4、rpm包的合法性验证 rpm包的合法性包括来源合法性和包的完整性两个方面 包的制作者使用单向加密算法提取出原始数据的特征码,并使用自己的私钥加密这段特征码,附加在原始数据之后 验证过程: 前提:必须有可靠机制获取到包制作者的公钥 ①使用包制作者的公钥解密那段加密的特征码,能解密则说明来源合法

Rpm 打包原理详解

Rpm打包原理详解 为什么要打包? 制作rpm 不仅仅是打包,更可以解决菜单创建、打补钉、完成大量预配置、与其他软件包互动等操作。使用源代码安装要求用户了解基本的编译过程、能够应付各种不能编译的意外、必须自己完成抽象的配置、甚至懂得软件开发,能够自己打补钉,……对非计算机专业的用户而言简直就是天方夜谭。这是把软件开发的最后一步抛给了用户,作为发行版,这是极不负责任的!也是不现实的,除非用lfs,但那是一本菜谱,不是真正的发行版。 软件作者发布源代码是正确的,负责的作者一般都同时提供rpm 和deb 包以及它们的源代码包。除非他们不会制作。愿意使用什么,那是个人的自由,但对外就不能只想到自己。GNU 精神是一种公益精神,没有奉献精神,在自由软件领域是要遭唾弃的! 直接使用其他发行版的rpm 常常是不行的。不知道大家看没看“恼人的依赖关系”这个帖子。可以在技术支持区搜索一下。任何两个发行版本在二进制上都是不能兼容的!他们实际是不同的操作系统。不仅使用的库文件不同,配置也迥异。特别是同一个发行版的不同版本更不兼容。任何包都必须在本地重新编译,而且不一定通得过,因为还有spec 宏的兼容问题!如果要在别的发行版上使用,必须用源码编译,这是常识。考虑文件布局和配置问题,有时直接编译也是不够的,必须修改spec,甚至自己打补丁。 如何创建rpm 包? rpm 建包原理其实不复杂。写spec 相当于一种脚本编程,主要是在spec 里提供一些软件相关信息,以及安装、卸载前后要执行的脚本,然后展开压缩的源代码包,打上补丁,执行编译,然后利用make install 可以重新指定安装目的地的特性,把编译好的文件安装到指定的虚拟根目录下的指定位置里,一般是虚拟的/usr 里,然后把这些目录、信息和脚本打成一个压缩包,即rpm 包。同时可选地生成源码包src.rpm。当然有很多具体细节问题。您应该首先阅读软件的readme 和INSTALL 文件。 打包原则 1. 任何人都应该在系统现有src.rpm 的spec 基础上修改更新,除非没有这样的包。这可以省去很多麻烦,少走弯路。 2. 任何人都无权删除别人的changelog 和原始打包者的信息,这是对别人的不尊重。但你可以追加自己的信息。 3. 尽可能在spec 里使用系统的标准宏定义,而不要用非标准写法。 4. 任何人都不应该直接提供修改后的源代码,而应该以补丁形式发布你的修改,在spec 里完成打补丁操作。务必做到一个补丁只解决一个问题,这样才能确保补丁的可重用性,否则

Linux软件包的安装和更新

Linux软件包的安装和更新 [实验目的] 1、了解Linux中的软件包的安装与更新的知识和技巧; 2、了解网络帐号的功能及结构; 3、熟悉Linux中软件包的添加和删除窗口并熟悉操作; 4、掌握从光盘安装软件包的基本方法; 5、掌握从网上下载软件包的途径和方法 [实验步骤] 1、确定所使用的Red Hat Linux中所安装的所有软件包; 把Red Hat Linux的第一张光盘插入你的光盘驱动器。在被征询是否运行光盘中的autorun程序时选择[是]。然后,它就会提示你输入根口令以便安装软件包。 如果你输入了正确的根口令,软件包管理工具界面就会出现,允许你选择要安装的软件包组以及组内的单个软件包。 软件包管理工具使用复选符号来标记在你的系统上已经安装了的软件包。你可以通过点击每个软件包旁边的复选箱来添加软件包。要卸装软件包,删除其复选标记 选择了软件包之后,点击[更新]按钮来安装或卸装选中的软件包。 2、选择安装两个应用程序; 3、选择安装三个额外软件包; 如果你已从Red Hat网站下载了软件包,你可以通过打开你的文件管理器并双击要安装的软件包来安装它们。软件包管理工具就应该会被打开,在安装前检查一下需要满足的软件包依赖关系,譬如所需的软件包或库文件等。如果一切正常,软件包就会被安装,你就立即能够开始使用其中的软件。然而,如果存在依赖关系问题,软件包管理工具将会提醒你并建议所需安装的文件和软件包。 4、删除上面所添加的一个应用程序和一个额外软件包 [实验要求] 熟悉掌握Red Hat Linux中各种软件包的添加、删除和更新操作,对Red Hat Linux中的各种软件包有进一步的了解。 [使用技巧]——软件包选择 使用packages命令来开始kickstart文件中列举要安装的软件包的部分(只限于安装,因为升级中软件包选择不被支持)。 你可以使用单个软件包名称或软件包组的名称来指定它们。安装程序定义了许多

相关主题