Linux软件安装
软件包管理简介
软件包分类
源码包
源码压缩文件,可以直接看到开源代码,直接使用脚本编译后安装。
源码包的优点:
- 开源,可以修改源代码
- 可以自由选择所需的功能
- 软件是编译安装,更加适合自己的系统,稳定效率更高
- 卸载方便
源码包的缺点:
- 安装过程步骤多,尤其较大的软件集合,容易出错
- 编译过程时间较长,安装比二进制安装时间长
- 编译安装过程中报错新手很难解决
二进制包
RPM包、系统默认包
二进制包的优点:
包管理系统简单,通过命令就可以实现包的安装、升级、查询和卸载
安装速度比源码包安装更快
二进制包的缺点:
经过编译,不能看到源代码
功能不能灵活定制
依赖性,平台依赖性、库依赖性
脚本安装包
所谓的脚本安装包,就是把复杂的软件包安装过程写成程序脚本,初学者可以执行程序脚本实现一键安装。实际安装的还是源码包和二进制包。
优点:安装简单、快捷
缺点:完全丧失了自定义性
RPM命令管理
RPM包的来源
RPM包在系统光盘
RPM包的命名规则
httpd-2.2.15-15.el6.centos.1.i686.rpm
-httpd软件包名
-2.2.15软件包版本
-15软件发布的次数
-3l6.centos适合Linux平台
-i686适合的硬件平台,若为x64则为64位硬件平台
-rpm 扩展名
RPM包依赖性
树形依赖:a->b->c
环形依赖:a->b->c->a
模块依赖:模块依赖(库文件依赖),查询网站:www.rpmfind.net
模块依赖解决:
1. 在线查询,网站:www.rpmfind.net
2. 本地查找,通过依赖模块名,猜测可能优先安装的rpm包中可能包含需要的库文件
3. yum在线解决,RedHat通过yum在线搭载服务器,服务器已经帮助用户整理好软件安装的依赖库,方便用户下载
4. 使用光盘做本地yum
注:RedHat的yum是付费的,需要购买key
RPM包安装命令
包全名和包名
包全名:操作的包是没有安装的软件包是,使用包全名,但要注意路径。
包名:操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库
RPM安装
rpm -ivh 包全名
options:
-i (install)安装
-v(verbose)显示详细信息
-h(hash)显示进度
–nodeps不检测依赖性
rpm安装时,报依赖性错误,则先安装依赖rpm包再安装原rpm包
RPM包的升级与卸载
rpm -Uvh 包全名
options:
-U (upgrade)升级
包升级命令在包没有安装时,可以安装包;安装后可以升级包。
为什么使用包全名?
升级包对系统来说是陌生的包,必须使用包全名
rpm -e 包名
options:
-e (erase)卸载
–nodeps 不检查依赖性
所有安装过的包,都可以在后台数据库/var/lib/rpm/目录中找到包的相关信息。
包卸载时,仍有依赖性,必须按照安装顺序的相反顺序卸载依赖包。
RPM包查询
查询软件包安装信息
rpm -q 包名
rpm -qa
options:
-q (query)查询
-a (all)所有包
// 查询apache服务的rpm包是否安装
#rpm -q httpd
// 查询所有安装的rpm包
#rpm -qa
// 查询已安装服务的相关包
#rpm -qa|grep httpd
查询软件包的详细信息
rpm -qi 包名
options:
-i (information)查询软件信息
-p(package)查询未安装信息
// 查询已安装软件包的详细信息
#rpm -qi httpd
// 查询未安装的软件包信息,软件包未安装但有包作者发布的信息
#rpm -qip httpd
查询软件的安装位置
rpm -ql 包名
options
-l (list)列表
// 查询软件包httpd的安装位置
#rpm -ql httpd
RPM包默认安装位置
RPM包默认安装路径 | |
---|---|
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
查询系统文件属于哪个包
rpm -qf 系统文件名
options:
-f (file) 查询系统文件属于哪个软件包(文件不能是自己创建的文件)
查询软件包的依赖性
rpm -qR 包名
options:
-R (requires)查询软件包的依赖性
-p (package)查询未安装包信息
#rpm -qR httpd
RPM包校验
RPM包校验
rpm -V 已安装的包名
options:
-V (verify)校验指定RPM包中的文件
#rpm -V httpd // 什么都没有显示
#vim /etc/httpd/conf/httpd.conf
添加一行注释
#rpm -V httpd
S.5....T. c /etc/httpd/conf/httpd.conf
验证内容中的8个信息的具体内容
验证内容 | 含义 |
---|---|
S | 文件大小是否改变 |
M | 文件的类型或权限(rwx)是否被改变 |
5 | 文件MD5校验和是否改变(可以看成文件内容是否改变) |
D | 设备的主从代码是否改变 |
L | 文件路径是否改变 |
U | 文件的属主(所有者)是否改变 |
G | 文件的属主是否改变 |
T | 文件的修改时间是否改变 |
文件类型
类型 | 含义 |
---|---|
c | 配置文件(config file) |
d | 普通文档(documentation) |
g | “鬼”文件(ghost file),很少见,就是该文件不应该被这个RPM包包含 |
L | 授权文件(license file) |
r | 描述文件(read me) |
RPM包中文件提取
rpm2cpio 包全名 | cpio -idv .文件绝对路径
注: .不能省略,代表当前目录
rpm2cpio将rpm包转换为cpio格式的命令
cpio是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
cpio 选项 < [文件|设备]
options:
-i:copy-in模式,还原
-d:还原时自动新建目录
-v:显示还原过程
// 查询ls命令属于哪个软件包
#rpm -qf /bin/ls
// 移动ls到/tmp目录,那么假设ls文件丢失
#mv /bin/ls /tmp/
// 提取RPM包中ls命令到当前目录的/bin/ls
#rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm|cpio -idv ./bin/ls
// 把ls命令复制回/bin目录,修复文件丢失
#cp /root/bin/ls /bin/
yum在线管理
RPM包的在线安装方式即为yum方式
优点:
将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题。
yum源文件
/etc/yum.ropos.d/CentOS-Base.repo文件内容,yum.ropos.d目录中CentOS-Base.repo文件生效
内容 | 含义 |
---|---|
[base] | 容器名称,一定要放在[]中 |
name | 容器说明,可以自己随便写 |
mirrorlist | 镜像站点,这个可以注释掉,和baseurl选择一个就行 |
baseurl | yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的;如果觉得慢可以改成其他yum源地址 |
enabled | 容器是否生效,如果不写或写成enable=1都是生效,enable=0不生效 |
gpgcheck | gpgcheck=1表明RPM的数字证书生效,gpgcheck=0则不生效 |
gpgkey | 数字证书的公钥文件保存位置。不用修改 |
光盘搭建yum源
光盘搭建yum源步骤
1 挂载光盘
// 建立挂载点
mkdir /mnt/cdrom
// 挂载光盘
mount /dev/cdrom /mnt/cdrom/
2 使网络yum源失效
// 进入yum源目录
cd /etc/yum.repos.d/
// 修改yum源文件后缀名,使其失效
mv CentOS-Base.repo CentOS-Base.repo.bak
3 使光盘yum源生效
#vim CentOS-Media.repo
// 修改baseurl为自己的光盘挂载点
baseurl=file:///mnt/cdrom
// 注释掉不用的挂载点,使用#顶头注释
// 开启enabled,即可
enabled=1
// 保存即可
// 显示yum源中内容
#yum list
yum命令
常用yum命令
1 查询
// 查询所有可用软件包列表
#yum list
// 搜服服务器上所有和关键字相关的包
#yum search 关键字
2 安装
yum -y install 包名
options:
-install 安装
-y 自动回答yes
#yum -y install gcc
3 升级
yum -y update 包名
options:
- update 升级,不写包名时,升级系统所有程序
4 卸载
yum -y remove 包名
options:
- remove 卸载
提醒:
服务器使用最小化安装,用什么软件安装什么,尽量不卸载
yum软件组管理命令
// 列出所有可用的软件组列表
#yum grouplist
// 安装指定软件组,组名可以由grouplist查询出来,组名不支持中文
#yum groupinstall 软件组名
// 卸载指定软件组
#yum groupremove 软件组名
// 组名不支持中文,怎么解决
#LANG=en_US // 临时修改
#yum grouplist
#yum groupinstall grpname
// 安装完成后
#LANG=zh_CN.utf8
源码包管理
源码包和RPM包的区别
1 RMP包和源码包的区别:
安装之前:概念上的区别
安装之后:安装位置不同
注:rpm安装可以指定安装位置
2 RPM包默认安装位置
RPM包默认安装路径 | |
---|---|
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
3 源码包安装位置
可以指定位置安装,一般在/usr/local/软件名/
4安装位置不同带来的影响
RPM包安装的服务可以使用系统服务管理命令(service)来管理
// RPM包安装apache的启动方法
#/etc/rc.d/init.d/httpd start
#service httpd start
源码包安装的服务不能被服务管理命令管理,因为没有安装到默认路径,所以只能用绝对路径进行服务管理。
#/usr/local/apache2/bin/apachectl start
源码包安装过程
1 安装准备
安装c语言编译器
下载源码,并上传到服务器,使用winscp从windows上传到linux服务器
2 安装注意事项
源代码保存位置: /usr/local/src/
软件安装位置:/usr/local/
如何确定安装过程报错:安装过程停止并出现error、warning或no的提示
3 源码包安装过程
下载源码包
解压缩下载的源码包
进入解压缩目录
./configure 软件配置与检查
定义需要的功能选项
检测系统环境是否符合安装要求
把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑
注1:./configure –help 查看需要的功能选项
make编译
编译失败后,可以使用make clean清除缓存和临时文件和编译成功的文件
make install 编译安装
安装失败,执行make clean并删除安装目录
// 编译安装启动过程
#./configure --prefix=/user/local/apache2/
#make
#make install
#/usr/local/apache2/bin/apachectl start
注2:可以查看源码包中INSTALL说明文件,查看安装过程方法
4 源码包的卸载
不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件。
脚本安装包
Linux没有脚本安装包,使用脚本安装源码包或RPM包
样例:安装nginx
准备工作
关闭RPM包安装的httpd和MySQL
保证yum源正常使用
关闭SELinux和防火墙
// 关闭SELinux
#vim /etc/selinux/config
// 永久关闭SELINUX
SELINUX=disabled
下载LNMP解压缩
到lamp官网下载lamp压缩包
脚本一键安装
执行centos.sh脚本全自动安装,只需要根据提示选择作者提供的版本,安装即可。
centos.sh脚本分析
所谓的一键安装包,实际上还是安装的源码包与RPM包,只是把安装过程写成了脚本,便于初学者安装。
优点:简单、快速、方便
缺点:
- 不能定义安装软件的版本
- 不能定义所需要的软件功能
- 源码包的优势丧失
参考
慕课网Linux软件安装
更多推荐
所有评论(0)