CentOS软件包的设置小结

linux软件包的安装
软件包:
源代码:
二进制格式:

软件包管理

source–>binary
软件包管理器
redhat的软件包管理器是RPM
Package-version-release(发行版).arch(平台).rpm
httpd-2(主版本号).2(次版本号).19(修正号)-1(发行版本).el5.i386.rpm
linux的rpm管理放置在:/var/lib/rpm
suse的软件包管理器也是RPM

6.1 简介

软件包分类:

源码包 源代码(大多数是C语言)
安装时慢,容易报错

>脚本安装包 对源码包进行改装,使安装更简单,不多。

rpm包 二进制包 Ubuntu系列的二进制包不是rpm,这是根本不同

源码包优点:

开源,如果有足够的能力,可以修改源代码

可以自由选择所需的功能

软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高(比rpm高5%)

卸载方便(直接把安装目录删掉)

源码包缺点:

安装过程步骤较多,尤其安装较大的软件集合(如LAMP环境搭建),容易出现拼写错误

编译过程时间较长,安装比二进制安装时间长

因为是编译安装,安装过程中一旦报错新手很难解决

用源码包安装一个Linux大概用3天(老手)

二进制包优点:

包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询、卸载

安装速度比源码包安装快得多

二进制包缺点:

经过编译,不再可以看到源代码

功能选择不如源码包灵活

依赖性

rpm包管理:
1、查询:rpm
-qPACKAGE_NAME查询软件包是否安装
-qa查看所有安装的软件包
-qlpackagename列出来软件包安装都生成了那些文件
-qcpackagename查看软件的配置文件
-qdpackagename显示软件包安装完后生成的帮助文档
-qffilepath查询文件是有哪个软件包生成的
-qipackagename查询软件包的摘要信息
2、安装:
rpm-ipackagename安装
rpm-ivhpackagename显示安装进度
–nodeps忽略依赖关系,但是装的软件包可能无法使用
3、卸载:
rpm-ePACKAGENAME卸载
–nodeps忽略依赖关系
4、升级:
rpm-U/path/to/rpm_file
-Uvh老版本没装,直接安装新版本,有安装和升级
rpm-F/path/to/rpm_file
-Fvh仅能在原版本基础上升级
–force强行升级
内核只能安装,不能升级
5、校验:
rpm-Vfilename可以查看软件包和安装文件是否被修改

6.2 包命名与依赖性

httpd-2.2.15-15.e16.centos.1.i686.rmp

httpd 包名

2.2.15 版本

15 发布次数

e16.centos 适合的Linux平台

i686 适合的硬件平台 noarch 表示任何Linux版本都可以安装

rpm rpm包扩展名

包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径。安装、升级操作

包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库。查询、卸载操作

树形依赖 a -> b -> c

环形依赖 a -> b -> c -> a 解决办法:a b c 同时安装

RPM包库依赖 以 .so.2 结尾,不是独立的,是某个软件包中的文件

模块依赖 查询网站 www.rpmfind.net,输入xxx.so.2可以查看属于哪个包。

只要把包含此文件的软件安装上即可。

签名:检公钥查软件是否可靠,使用公钥加密算法
校验码;md5
rpm-Kfilename安装前检查
rpm-V-pfilename安装前检查软件是否可靠

6.3 安装与升级

安装

rpm -ivh 包全名

-i install

-v verbose

-h hash 显示

实验步骤:

1、先将光盘挂载:mount -t iso9660 /dev/sr0 /media

2、cd /media/Packages

3、此时就可用 rpm -ivh 包全名 命令进行安装了

升级

rpm -Uvh 包全名

-U upgrade 升级

卸载

rmp -e 包名

-e erase 卸载

–nodeps 不检查依赖性

/etc/pki/rpm-gpg
rpm–importRPM-GPG-KEY-redhat-release导入key

6.4 查询

查询功能非常常用

查询是否安装

rpm -q 包名

rpm -qa

-q query 查询

-a all 所有

rpm -qa| grep httpd 此命令查询所有和httpd相关的包安装信息 |管道符

查询软件包详细信息

rpm -qi 包名 #查询已安装的包信息

rpm -qip 包全名 #查询未安装包的信息,这些信息已经在包中写好

-i information 查询软件信息

-p package 查询未安装包信息

查询包中文件安装位置 包的安装位置都是默认的

rpm -ql 包名

rpm -qlp 包全名 查询未安装包打算的位置,已在包中设置好

-l list 列表

查询系统文件属于哪个RPM包

rpm -qf 系统文件名

-f file 查询系统文件属于哪个软件包 etc目录下都是系统的配置文件

查询软件包的依赖性

rpm -qR 包名

rpm -qRp 包全名 查询未安装包的依赖性

-R requires 查询软件包的依赖性

重新导入RPM数据库
rpm–rebuilddb重建
rpm–initdb原来要是有就不建
软件的组成:
1、配置文件
2、二进制程序
3、库文件
4、帮助文件

6.5 校验

RPM包校验 判断系统文件是否被更改

rpm -V 已安装包名

-V verify 校验指定RPM包中的文件

例:rpm -V httpd

如果出现任何信息,则表示没有任何修改。

如果有修改,会显示“修改标志位 文件名”

修改标志位有8位信息 点(.)代表未被修改

S 文件大小是否修改

M 文件类型 或者 文件权限(rwx)是否修改

5 文件MD5校验(文件内容是否修改) MD5 —
一种加密方式

D 设备中,从代码是否改变

L 文件路径是否修改

U 文件所有者是否修改

G 文件所属组是否修改

T 文件修改时间是否修改

文件类型(对应上面的M)

c config file 配置文件

d documentation 普通文档

g ghost file 鬼文件 很少见 就是该文件不应该被这个RPM包包含

l license file 授权文件

r read me 描述文件

软件包的安装路径:
/(默认)操作系统自身启动用到的
/usr(默认)系统启动后用到的
/usr/local(默认)第三方软件安装默认位置
/usr/local/APP(指定)
/opt/(指定)

6.6 文件提取

目的:从rpm包中提取指定文件,用于恢复某些文件。

rpm2cpio 包全名 | cpio -idv . 文件绝对路径

#rpm2cpio命令可将rpm包转换为cpio处理格式

#cpio 是一个标准工具,用于创建软件档案文件和从档案文件中提取文件

cpio 选项 < [文件|设备]

-i copy-in模式,还原

-d 还原时自动新建目录

-v 显示还原过程

rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.e16.i686.rpm | cpio -idv .
/bin/ls

提取RPM包中ls命令到当前目录的/bin/ls下

yum实现的机制
1、ftp://
2、http://
3、file:///
/etc/yum.conf
/etc/yum.repos.d/FILE.repo

6.7 yum在线管理

yum在线管理 redhat收费 centos免费

内网:需配置ip 子网掩码

公网:还需配置 网关 DNS

IP地址配置:

方法一

setup redhat系列专有命令

service network restart

方法二

vi /etc/sysconfig/network-scripts/ifcfg-eth0

把 ONBOOT=”no”改为 ONBOOT=”yes” #启动网卡

如果文件中没有设置DNS,则添加DNS1=1114.114.114.114

service network restart

网络yum源:

(.repo都是合法的yum源 默认是CentOS-Base.repo生效)

配置文件为/etc/yum.repos.d/CentOS-Base.repo

这个文件默认已经配置好了,不需要更改

[base] 容器名称,一定要放在[]中

name 容器说明,可以自己随便写

mirrorlist 镜像站点

baseurl
yum源服务器的地址。默认是CentOS官方yum源服务器,如果觉得慢,可以改成别的yum源地址

enabled 此容器是否生效,不写默认为1,代表生效

gpgcheck RPM数字证书是否生效,如果是1,则生效

gpgkey 数字证书公钥文件保存位置,不用修改

查询:

yum list #查询所有可用软件包列表

yum search 关键字 #搜索服务器上所有和关键字相关的包 yum全用包名
RPM则有包名和包全名之分

安装:

yum -y install 包名

-y 自动回答yes

例:yum -y install gcc

升级:

yum -y update 包名

例:yum -y update //此命令升级所有软件包,包括内核,慎用!

卸载:

yum -y remove 包名

#不要用yum卸载软件包!!!

会将其依赖的包卸载,出现别的问题。

服务器使用的原则:

1.最小化安装

2.使用什么软件,安装什么软件

3.尽量不卸载软件

yum软件组管理命令:

yum grouplist #列出所有可用的软件组列表

yum groupinstall 软件组名
#安装指定软件组,组名可用grouplist查询,如果组名有空格,用双引号引起来

yum groupremove 软件组名 #卸载指定软件组

网上找镜像的地址
mirrors.163.com
mirrors.soho.com
找到repodate的父目录
YUM:
/etc/yum.repos.d/FILE.repo
[id]
name=Description
baseurl=1|2|3
gpgcheck=0
enabled=0|1关闭|启动
yum[oprions][command][package…]
install安装
update升级
yumlist{all|installed|available}查看软件包
yumcheck-update检查可升级的软件包
yumremovefilename卸载软件包
yumcleanall清除缓存
yumprovides|whatprovidesFILE查询某个文件是有哪个软件包安装的==rpm-qf
yuminfo查询软件包的摘要信息==rpm-qi
yumgrouplist查看组
yumgroupinstall”xxxxx”安装
yumlocalinstallRPM-FILE本地安装rpm包

6.8 yum光盘管理

1> 挂载光盘 mount -t iso9660 /dev/sr0 /media

2> 让网络yum源文件失效

方法一:将所有选项都置成enable=0;

方法二:yum源检测的是.repo后缀名 所以改名即可

mv CentOS-Base.repo CentOS-Base.repo.bak

mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak

mv CentOS-Vault.repo CentOS-Vault.repo.bak

3> 修改光盘yum源

vim CentOS-Media.repo

修改两处:

baseurl=file:///mnt/cdrom/ #地址为自己的光盘挂载点,并把其他地址注释掉

enabled=1 #让此yum源生效

yum list | more 分屏显示

注释有严格格式,最好单行顶格写注释

–nogpgcheck不检查签名信息
yumlocalupdate
yumreinstall重装软件包
yumdowngrade降级

6.9 源码包与RPM包的区别

安装之前:概念上的区别

安装之后:安装位置不同

RPM包 系统指定的默认位置,不要人为手工修改安装目录

/etc/ 配置文件

/usr/bin/ 可执行命令

/usr/lib/ 函数库

/usr/share/doc/ 使用手册

/usr/share/man/ 帮助文件

源码包 人为手工指定安装位置

一般是 /usr/local/软件名/

安装位置不同带来的影响:

RPM包安装的服务可以使用系统服务管理命令(service)来管理,–启动、重启、关闭

例如RPM包安装的Apache的启动方法是:

/etc/rc.d/init.d/httpd start #/etc/rc.d/init.d/是所有服务的安装路径
或者

service httpd start
redhat系列专有命令,工作原理:去/etc/rc.d/init.d/目录下去找httpd服务

源码包安装的服务只能通过绝对路径进行管理:

/urs/local/apache2/bin/apachectl start

include包含头文件
所有软件包的头文件在/usr/include/下

6.10 源码包的安装过程

源码包安装注意事项:

源码包保存位置 /usr/local/src/

软件安装位置 /usr/local

如何确定安装过程报错?安装过程停止并出现error、warning、no的提示

安装Apache源码包过程:

1、下载源码包到/usr/local/src/

2、解压缩下载的源码包

3、(可选)du -sh 文件名/目录 查看文件夹大小 disk usage

summarize

human

4、进入解压缩目录

两个重要文件:INSTALL(安装说明文件)、README(使用说明文件)

5、查看INSTALL文件内容

INSTALL关键内容

$ ./configure –prefix=PREFIX

$ make

$ make install

$ PREFIX/bin/apachectl start

./configure 软件配置与检查,有三个作用

>定义需要的功能选项

>检测系统环境是否符合安装要求

>把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑

6、./configure –prefix=/usr/local/apache2
#跟安装路径,此命令完成后,出现Makefile文件

7、make #编译;如果出错,make clean 命令来清空产生的临时文件

欧洲杯竞猜平台 ,8、make install #编译安装,此步真正向安装目录写入文件

9、安装完成后,/usr/local/apache2/bin/apachectl start

源码包的卸载:

不需要卸载命令,直接删除安装目录即可

不会遗留任何垃圾文件

源码包 和 RPM包 如何选择?

用途

对外访问(如httpd),则采用源码包安装

本地应用(如gcc),则采用RPM包

源代码:c、c++、Perl
configure、Makefile.in—>makefile

6.11 脚本安装包

>脚本安装包并不是独立的软件包类型,常见安装的是源码包

>是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装

>非常类似于Windows下软件的安装方式

常见的脚本安装包是硬件的驱动

./setup.sh

1 下载软件

2 解压缩,并进入解压缩目录

3 执行安装脚本

c、c++源代码包安装步骤:
./configure–prefix=指定位置–help查看选项<—–检查预编译环境
make<—–编译
makeinstall<—–

Perl
Per1Makefile.PL
make

软件包: 源代码: 二进制格式:
source–binary 软件包管理器 redhat的软件包管理器是RPM
Package-version-release(发行版).arch(平台…

相关文章