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 软件安装管理_第1张图片
文件丢失解决

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 自动回答yes

yum -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

源码包卸载

不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件。

脚本安装包

优点:简单,快速,方便
缺点:不能定义安装软件的版本;不能定义所需要的软件功能;源码包的优势丧失。

实例:安装Nginx

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄国公司在2004年发布。

Linux 软件安装管理_第2张图片
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

你可能感兴趣的:(Linux 软件安装管理)