Linux|Linux 软件安装管理

软件包分类 源码包 脚本安装包

【优点】
1.开源,如果有足够的能力,可以修改源代码
2.可以自由选择所需的功能
3.软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
4.卸载方便
【缺点】
1.安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现编写错误。
2.编译过程时间较长,安装比二进制安装时间长。
3.因为是编译安装,安装过程中一旦报错新手很难解决。
二进制包(RPM包,Deb包,系统默认包)
【优点】
1.包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询、卸载。
2.安装速度比源码包安装快的多。
【缺点】
1.经过编译,不再能看到源代码
2.功能选择不如源码包灵活
3.依赖性
RPM命令管理 rpm包位于安装光盘的Packages下(光盘需要先挂载哦。)
RPM包命名规则
httpd-2.2.15-15.el6.centos.1.i686.rpm -httpd 软件包名 -2.2.15 软件版本 -15 软件发布的次数 -el6.centos 适合的Linux平台 -rpm 包扩展名

RPM包依赖性 树形依赖:a→b→c
环形依赖:a→b→c→a
模块依赖:查询网站
安装 包全名与包名
包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径
包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库
安装
进入Packages之后安装或者使用包全名
rpm -ivh 包全名 选项: -i(install) 安装 -v(verbose) 显示详细信息 -h(hash) 显示进度 --nodeps 不检测依赖性(不许用)

显示依赖的安装包,然后再安装所依赖的安装包。
升级 用升级也可以安装
rpm -Uvh 包全名 选项: -U (upgrade) 升级

卸载
rpm -e 包名 选项: -e (erase) 卸载 --nodeps 不检测依赖性(不许用)

查询
# 查询包是否安装(q query) rpm -q 包名 # 查询所有已经安装的rpm包,然后加上 管道符 与包名 即可找到所有的相关的包 rpm -qa (| 包名)# 查询信息 rpm -qi 包名 # 查询未安装的包的信息 rpm -qip 包全名# 查询包中文件安装位置 rpm -ql 包名 # 查询未安装的包中文件安装位置 rpm -qlp 包全名# 查询系统文件属于哪个RPM包,这个文件必须是包安装出来的 rpm -qf 系统文件名# 查询软件包的依赖性 rpm -qR 包名 # 查询未安装的软件包的依赖性 rpm -qR 包全名

RPM包默认安装位置
路径 作用
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib/ 程序所使用的函数库保存位置
/usr/share/doc/ 基本的软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置
校验
rpm -V 包名

验证内容中的8个信息的具体内容如下:
标识符|意义
S|文件大小是否改变
M|文件的类型或文件的权限(rwx)是否被改变
5|文件MD5校验和是否改变(可以看成文件内容是否改变)
D|设备的主从代码是否改变
L|文件路径是否改变
U|文件的属主(所有者)是否改变
G|文件的属组是否改变
T|文件的修改时间是否改变
文件类型
标识符|文件类型
c|配置文件
d|普通文档
g|鬼文件,很少见,就是该文件不应该被这个RPM包包含
L|授权文件
r|描述文件
提取
rpm2cpio 包全名 | cpio -idv .文件绝对路径- rpm2cpio # 将rpm包转换为cpio格式的命令 - cpio # 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件cpio 选项 < [文件|设备] 选项: -i: copy-in模式,还原 -d: 还原时自动新建目录 -v: 显示还原过程



实例: Linux|Linux 软件安装管理
文章图片
文件丢失解决 yum在线安装 好处:将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题。
yum 源文件
vi /etc/yum.repos.d/CentOS-Base.repo

【文件内容】如下
[base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#additional packages that may be useful [extras] name=CentOS-$releasever - Extras "/etc/yum.repos.d/CentOS-Base.repo" 44L, 1664C

【解释】
[base]容器名称,一定要放在[]中 name 容器说明,可以自己随便写 mirrorlist 镜像站点。这个可以注释掉 baseurl yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的。可以改成自己喜欢的yum源地址。 enabled 此容器是否生效,如果不写或写成enabled=1都是生效,写成enable=0不生效。 gpgcheck 如果是1是指RPM的数字整数生效,如果是0则不生效 gpgkey 数字证书的公钥文件保存位置。不用修改。例如:`gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7` 其中的file://类似于 http://,是文件协议本身的// 后面是地址。

光盘yum源搭建 1.挂载光盘
2.使网络yum源失效
cd/etc/yum.repos.d/ # 修改后缀名 mv CentOS-Base.repo CentOS-Base.repo.bak

3.使光盘yum源生效
vim CentOS-Media.repo # 将地址改为自己的光盘挂载地址,并且将不存在的地址注释掉。 baseurl=file:///mnt/cdrom # 将enabled=0改成enabled=1 enabled=1

yum命令 常用yum命令
【查询】
# 查询所有可用软件包列表 yum list # 搜索服务器上所有和关键字相关的包 yum search 关键字

【安装】
# 安装包 yum -y install 包名 选项: install 安装 -y 自动回答yesyum -y install gcc

【升级】
# 升级包 yum -y update 包名 选项: update 安装 -y 自动回答yes# 升级所有包,改变软件设置和系统设置,系统版本内核都升级 yum -y update # 升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变 yum -y upgrade

【卸载】
# 卸载包 yum -y remove 包名 选项: remove 卸载 -y 自动回答yes

服务器使用最小化安装,用什么软件安装什么,尽量不卸载
yum软件组管理命令
# 列出所有可用的软件组列表 yum grouplist # 安装指定软件组,组名可以由grouplist查询出来 yum groupinstall # 卸载指定软件组 yum groupremobe

更改语言:
LANG=en-US LANG=zh-CN.utf8

源码包安装 源码包安装位置 安装在指定位置下,一般是/usr/local/软件名/,只能用绝对路径进行服务的管理。
yum安装的可以 使用service运行。
# 运行 service httpd start # 停止 servece httpd stop# centos7关闭防火墙 sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

然后在浏览器内输入ip地址即可查看到It works!字样表示服务启动,实际访问的是 /var/www/html/ 目录,空的时候访问测试页。默认为空,访问测试页。如果创建/var/www/html/index.html输入HelloWorld,则可以看到HelloWorld。
apache建议用源码包,下载后在自己的机器上编译。下载地址http://mirror.bit.edu.cn/apache/httpd,使用winscp工具从本机拷贝到服务器。
安装注意事项 源代码保存位置: /usr/local/src
软件安装位置:/usr/local/
如何确定安装过程报错:安装过程停止并出现error、warning或no的提示。
源码包安装过程 1.下载源码包
2.解压缩下载的源码包 tar -zxvf httpd-2.2.31.tar.gz
3.进入解压缩目录 cd httpd-2.2.31/
4../configure 软件配置与检查:定义需要的功能选项;检查系统环境是否符合安装要求;把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。
./configure --prefix=/usr/local/apache2

5.meke 编译
make 如果报错执行`make clean`,清楚缓存临时文件,不需要删除/usr/local/apache2

6.make install 安装
make install如果报错需要删除/usr/local/apache2,执行`make clean`

7.启动
# 启动服务 /usr/local/apache2/bin/apachectl start # 停止服务 /usr/local/apache2/bin/apachectl stop

使用方式查看 INSTALL 文件
8.访问
# centos7关闭防火墙 sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

然后在浏览器内输入ip地址即可查看到It works!字样表示服务启动,实际访问的是 /usr/local/apache2/htdocs/index.html
源码包卸载 不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件。
脚本安装包 【Linux|Linux 软件安装管理】优点:简单,快速,方便
缺点:不能定义安装软件的版本;不能定义所需要的软件功能;源码包的优势丧失。
实例:安装Nginx Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄国公司在2004年发布。
Linux|Linux 软件安装管理
文章图片
Nginx/apache/lighttpd的综合对比 准备工作
关闭rpm包安装的httpd,mysql。
保证yum源正常使用。
关闭SELinux和防火墙。
# 永久关闭SELinux并重启 vi /etc/selinux/config 修改SELINUX=disabled# centos7关闭防火墙 sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

    推荐阅读