imooc-Linux软件安装管理
第1章 概述
1-1 Linux软件安装管理概述
第2章 软件包管理简介
2-1 Linux软件包管理之源码包
-
软件包分类
- 源码包
- 脚本安装包
- 二进制包(RPM包,系统默认包)
windows中的软件在Linux中无法安装
Linux中的软件都是可以看到源代码的,windows中的软件都是经过编译的
- 源码包
-
源码包
- 源码包的优点是:
- 开源,如果有足够的能力,可以修改源代码
- 可以自由选择所需的功能
- 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
- 卸载方便
- 源码包的缺点:
- 安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
- L-Linux;A-Apache;M-MySQL;P-PHP
- 编译过程时间较长,安装比二进制安装时间长
- 因为是编译安装,安装过程中一旦报错新手很难解决
- 安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
- 源码包的优点是:
2-2 Linux软件包管理之RPM包和脚本安装包
源码包不适合初学者
-
RPM包
- 二进制包的优点
- 包管理系统简单,只通过几个命令就可以实现包的安装,升级,查询和卸载
- 安装速度比源码包安装快的多
- 二进制包的缺点
- 经过编译,不再可以看到源代码
- 功能选择不如源码包灵活
- 依赖性(软件包a是依赖于软件包b,需先装b)
- 二进制包的优点
-
脚本安装包
所谓的脚本安装包,就是把复杂的软件包安装过程写成了程序脚本,初学者可以执行程序脚本实现一键安装。但实际安装的还是源码包和二进制包
- 优点:安装简单,快捷
- 缺点:完全丧失了自定义性
第3章 rpm命令管理
3-1 Linux中rpm包命名规则
- RPM包的来源
- RPM包在系统光盘中(/mnt/cdrom/Packages)
- RPM包命名规则
- httpd-2.2.15-15.el6.centos.1.i686.rpm
- httpd软件包名
- 2.2.15软件版本
- 15软件发布的次数
- el6.centos适合的Linux平台
- i686适合的硬件平台
- rpm rpm包扩展名
- httpd-2.2.15-15.el6.centos.1.i686.rpm
- RPM包依赖性
- 树形依赖:a->b->c
- 环形依赖:a->b->c->a
- 模块依赖:(库文件依赖(.so.123))
- 所加依赖是一个文件,在一个rpm包中
- 查询网站:www.rpmfind.net
3-2 Linux中rpm命令管理之安装命令
- 包全名与包名
- 包全名:操作的是包没有安装的软件包时,使用包全名。而且要注意路径
- 包名:操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库
- RPM安装
rpm -ivh 包全名- 选项:
- -i(install):安装
- -v(verbose):显示详细信息
- -h(hash):显示进度
- –nodeps:不检测依赖性(实际工作时不使用)
- 选项:
yum安装不能查询和校验
3-3 Linux中rpm命令管理之升级与卸载
-
RPM包升级
rpm -Uvh 包全名- 选项:
- -U(upgrade):升级
- 如果该软件未安装,使用升级命令可以代替安装
- 选项:
-
卸载
-
rpm -e 包名所有安装的包都可在 /var/lib/rpm/ 下的db数据库中有记录,包的具体位置是系统默认的
删除与安装的依赖性顺序相反
- 选项:
- -e(erase):卸载
- –nodeps:不检查依赖性
- 选项:
-
3-4 Linux中rpm命令管理之RPM包查询
-
查询是否安装
-
rpm -q 包名查询包是否安装
- -q:查询(query)
-
rpm -qa查询所有已经安装的RPM包
-
-a:所有(all)
-
rpm -qa | grep keyword关键字查询
-
-
-
查询软件包详细信息
rpm -qi 包名- 选项:
- -i:查询软件信息(information)
- -p:查询未安装包信息(package)+ 包全名
- 选项:
-
查询包中文件安装位置
rpm -ql 包名- 选项:
- -l:列表(list)
- -p:查询未安装包信息(package)
- 选项:
- RPM包默认安装位置
RPM包默认安装路径 /etc/ 配置文件安装目录 /usr/bin/ 可执行的命令安装目录 /usr/lib/ 程序所使用的函数库保存位置 /usr/share/doc/ 基本的软件使用手册保存位置 /usr/share/man 帮助文件保存位置 -
查询系统文件属于哪个RPM包
-
rpm -qf 系统文件名-
选项:
-f:查询系统文件属于哪个软件包(file)
-
-
-
查询软件包的依赖性
rpm -qR 包名- 选项:
- -R:查询软件包的依赖性(requires)
- -p:查询未安装包信息(package)
- 选项:
3-5 Linux中rpm命令管理之RPM包校验
-
RPM包校验
-
rpm -V 已安装的包名-
选项:
-V:校验指定RPM包中的文件(verify)
-
-
验证内容中的8个信息的具体内容如下:
- S:文件大小是否改变
- M:文件的类型或文件的权限(rwx)是否被改变
- 5:文件MD5校验和是否改变(可以看成文件内容是否改变)
- 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 选项 < [文件|设备]- 选项:
- -i:copy-in模式,还原
- -d:还原时自动新建目录
- -v:显示还原过程
- 选项:
第4章 yum在线安装
4-1 yum源文件
好处:将所有的软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题
radhat的yum在线安装需要付费
vi /etc/yum.repos.d/CentOS-Base.repo- [base]:容器名称,一定要放在[]中
- name:容器说明,可以自己随便写
- mirrorlist:镜像站点,这个可以注释掉
- baseurl:我们的yum源服务器的地址,默认是CentOS官方的yum源服务器,是可以使用的,如果你觉得慢可以改成你喜欢的yum源地址
- mirrorlist和baseurl都是服务器地址,用哪个都行
- enabled:此容器是否生效,如果不写或写成enable=1都是生效,写成enable=0就是不生效
- gpgcheck:如果是1是指RPM的数字证书生效,如果是0则不生效
- gogkey:数字证书的公钥文件保存位置,不用修改
4-2 光盘yum源搭建
- 挂载光盘
mkdir /mnt/cdrom:建立挂载点mount /dev/cdrom /mnt/cdrom:挂载光盘
- 使网络yum源失效
cd /etc/yum.repos.d/:进入yum源目录mv CentOS-Base.repo CentOS-Base.repo.bak:修改yum源文件后缀名,使其失效
- 使光盘yum源生效
vim CentOD-Media.repo- [c6-media]
- name=CentOS-$releasever-Media
- baseurl=file:///mnt/cdrom:地址为你自己的光盘挂载地址
- #file:// /media/cdrom/
- #file:///media/cdrecorder/:注释这两个不存在的地址
- gpgcheck=1
- enable=1:把enabled=0改为enabled=1,让这个yum源配置文件生效
- gpgkey=file:///ect/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
4-3 yum命令(上)
-
常用yum命令
-
查询
yum list:查询所有可用软件包列表yum search 关键字:搜索服务器上所有和关键字相关的包
-
安装
yum -y install 包名- 选项:
- -install:安装
- -y:自动回答yes
gcc一定要安装!(第一个版本要用rpm包)
-
4-4 yum命令(下)
-
-
升级
Linux中一般不怎么升级
升级需要有已经安装好的程序
yum -y update 包名- 不加包名时,对Linux中的所有程序进行更新(包括内核!)
- 选项:
- -update:升级
- -y:自动回答yes
-
卸载
yum -y remove 包名- 选项:
- -remove:卸载
- -y:自动回答yes
服务器安装一般使用最小化安装
用什么软件安装什么
尽量不卸载
-
-
YUM软件组管理命令
yum grouplist:列出所有可用的软件组列表- 有各种开发平台,语言支持,服务器程序
yum groupinstall 软件组名:安装指定软件组,组名可用有grouplist查询出来- 注意:软件组名必须是英文
- 不使用远程工具,在Linux本机上执行
yum grouplist,得到列表为英文书写 - 现把远程访问工具的语言改为英文
LANG=en_US,再执行yum grouplist;之后改为中文LANG=zh_CN.utf8(这种修改只生效一次)
- 不使用远程工具,在Linux本机上执行
- 注意:软件组名必须是英文
yum groupremove 软件组名:卸载指定软件组
第5章 源码包安装
5-1 Linux中源码包与RPM包区别
-
区别
- 安装之前的区别:概念上的区别
- 安装之后的区别:安装位置不同
-
RPM包安装位置
- 是安装在默认位置中(有RPM包的作者决定)
- rpm安装可以指定安装位置(建议不指定)
-
源码包安装位置
-
安装在指定位置当中,一般是
/usr/local/软件名/- 因为源码包没有卸载命令
-
源码包安装的服务不能被服务管理命令管理
-
因为没有安装到默认路径中
-
只能用绝对路径进行服务的管理
/usr/local/apache2/bin/apachectl start
-
-
-
安装位置不同带来的影响
- RPM包安装的服务可以使用系统服务管理命令(service)来管理
- 例:RPM包安装的Apache的启动方法是:
/ect/rc.d/init.d/httpd startservice httpd start
- 例:RPM包安装的Apache的启动方法是:
- RPM包安装的服务可以使用系统服务管理命令(service)来管理
5-2 Linux中源码包安装过程(上)
-
安装准备
-
安装C语言编译器
- Linux中的源码包都是用C语言编写的
-
下载源码包
http://mirror.bit.edu.cn/apache/httpd
- WinSCP在两台电脑之间传送文件
-
5-3 Linux中源码包安装过程(下)
-
安装注意事项
- 源代码保存位置:
/usr/local/src/ - 软件安装位置:
/usr/local - 如何确定安装过程报错
- 安装过程停止
- 并出现error,warning或no的提示
- 源代码保存位置:
-
源码包安装过程
-
下载源码包
-
解压缩下载的源码包
-
进入解压缩目录
-
.configure软件配置与检查-
定义需要的功能选项
.configure --prefix=/usr/local/apache2自定义安装位置 -
检测系统环境是否符合安装要求
-
把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑
-
-
make编译make clean清除未编译完成的文件make install编译安装
-
-
源码包卸载
不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件。
建议工作中使用源码包,因为工作效率更高
第6章 脚本安装包
6-1 Linux中脚本安装包(上)
把复杂的安装过程写成一段脚本,来安装源码包或RPM包
-
强大的Nginx服务器
-
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,有俄国公司在2004年发布
-
可以支持更大的并发连接
-
-
准备工作
- 关闭RPM包安装的htpd和MySQL
- 保证yum源正常使用
- 关闭SELinux和防火墙
- SELinux-提高Linux安全组件
vi /etc/selinux/configSELINUX=disabled- 重启计算机
- SELinux-提高Linux安全组件
-
下载:http://lnmp.org/install.html
-
脚本一键安装包
wget -c http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz && tar zxvf lnmp1.0-full.tar.gz && cd lnmp1.0-full && ./centos.sh
-
cenos.sh脚本分析
- 所谓的意见安装包,实际上还是安装的源码包与RPM包,只是把安装过程写成了脚本,便于初学者安装
- 优点:简单、快速、方便
- 缺点:
- 不能自定义安装软件的版本
- 不能定义所需要的软件功能
- 源码包的优势丧失
本文主要介绍了Linux系统中软件的安装管理,包括源码包、RPM包和脚本安装包的优缺点及其管理方式。详细讲解了RPM包的命名规则、rpm命令的使用,如安装、升级、卸载和查询,以及yum在线安装的原理和命令。同时,对比了源码包和RPM包的差异,并阐述了源码包的安装过程。最后,提到了脚本安装包的便利性和局限性。
497

被折叠的 条评论
为什么被折叠?



