你的位置:首页 > 操作系统

[操作系统]linux笔记:linux软件包管理


linux软件包简介

软件包分类:
1.源码包(用C语言等编写的源代码,没有进行编译):
脚本安装包(对源码包进行了安装优化的源码包)
优点:
开源,可修改
可以自由选择所需的功能
编译安装,更适合自己的系统,稳定,效率高
卸载更方便(直接删除安装目录,不会有任何垃圾文件存在)
缺点:
安装复杂,慢。
2.二进制包(经过编译后的二进制机器语言包):
RPM包(centos中二进制包都是RPM包,是系统默认包)
优点:
包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载;
安装速度快。
缺点:
不再可以看到源代码;
软件包的有严重的依赖性。

----------
RPM包管理——RPM命令管理

RPM包全名的大概的命名规则:
软件包名-软件版本-软件发布的次数.适合的linux平台.适合的硬件平台.rpm

RPM包的依赖性:
安装一个rpm包要依赖另外的rpm包
库文件依赖:
安装一个rpm包要依赖另外一个包中的文件
库文件依赖的查询网站:
www.rpmfind.net

RPM安装:
rpm -ivh 包全名
选项:
-i 安装
-v 显示详细信息
-h 显示进度
--nodeps 不检测依赖性

RPM包升级:
rpm -Uvh 包全名
选项:
-U 升级

RPM包卸载:
rpm -e 包名
选项:
-e 卸载
--nodeps 不检查依赖性

RPM包的查询:
1.查询是否安装:
rpm -q 包名
rpm -qa 查询所有已经安装的rpm包
2.查询软件包详细信息:
rpm -qi 包名
选项:
-i 查询已安装包的信息
rpm -qip 包全名
选项:
-p 查询未安装包信息
3.查询包中文件安装位置:
rpm -ql 包名
选项:
-l 文件安装位置列表
-p 查询未安装包信息
4.查询系统文件属于哪个rpm包
rpm -qf 系统文件名
5.查询软件包的依赖性:
rpm -qR 包名
选项:
-p 查询未安装包的依赖信息(需要加包全名)

rpm包校验
rpm -V 包名
用途:校验包中的文件是否被修改

rpm包中的文件提取
rpm2cpio 包全名 | cpio -idv 文件绝对路径
主要用途:对误操作误删除文件的恢复

----------
RPM包管理-yum在线管理
yum在线管理会自动解决rpm包的依赖问题。

ip地址配置:
内网访问,只需要ip和子网掩码。如果要访问互联网,还需要网关和dns。
配置步骤:
1.使用setup工具:setup
2.修改配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0 ,把ONBOOT改为"yes",启动网卡
3.重启网络服务:service network restart

网络yum源:
默认的yum源配置文件:/etc/yum.repos.d/CentOS-Base.repo
其他的yum源也在当前目录下

yum命令:
查询:
yum list #查询所有可用的软件包列表
yum search 关键字 #搜索和关键字相关的包
安装:
yum -y install 包名
选项:
-y 自动回答yes
升级:
yum -y update 包名
卸载:
yum -y remove 包名 #被卸载的包所依赖的包也会被卸载,所以用yum卸载很可能出现严重问题

用光盘做yum源:
1.挂载光盘
2.让所有的网络yum源失效,将所有yum源的文件名加后缀.bak,让系统无法识别repo文件名。
3.修改光盘yum源,使地址正确并生效。

----------
源码包管理

源码包和rpm包的区别:
安装之前的区别:概念上的区别
安装之后的区别:安装位置不同。
1.rpm包安装在默认位置中:
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib/ 程序所使用的库函数保存位置
/usr/share/doc/ 手册
/usr/share/man/ 帮助文件
2.源码包安装在手工指定位置中,一般是:
/usr/local/软件名/
安装位置不同带来的影响:
rpm包安装的服务可以使用系统服务管理命令来管理:
/etc/rc.d/init.d/xxx start 也就是使用
service xxx start
源码包安装的服务不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理。

源码包安装过程:
1.安装准备:
安装C语言编译器gcc
下载源码包
2.安装注意事项:
源代码保存位置: /usr/local/src/
软件安装位置: /usr/local/
3.源码包安装过程
下载源码包
解压缩下载的源码包
进入解压缩目录
4. ./configure 编译前准备:
./configure --prefix=安装目录
5.make 编译(从源代码编译为二进制码)
6.make install 编译安装