4.软件包管理

1.软件包管理

1.1简介

  • 源码包

    脚本安装包(脚本安装包 install.sh)

    优点:

    1、开源,如果有足够的能力,可以修改源代码

    2、可以自由选择所需功能

    3、软件是编译安装,所以更进适合自己的系统,更加稳定也效率更高

    4、卸载方便

    缺点:

    1、安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境)容易出现拼写错误

    2、编译过程时间较长,安装比二进制安装时间长。

    3、因为是编译安装,安装过程中一旦报错新手很难解决

  • 二进制包(RPM包、系统默认包)

    为了加快安装速度,开发厂商在经过编译后安装包,不能在看到源代码

    优点:

    1、包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载

    2、安装速度比源码包安装快的多

    缺点:

    1、经过编译,不再可以看到源代码

    2、功能选择不如源码包灵活

    3、依赖性

1.2.RPM管理–rpm命令管理

1.2.1.rpm包命名依赖性

rpm包命名原则

httpd-2.2.15-15.el6.centos.i686.rpm

httpd 软件包名

2.2.15 软件版本

15 软件发布的次数

el6.centos 适合的Linux平台 el6.空和el6.noarch代表适合所有类型linux平台

i686 适合的硬件平台

rpm rpm包扩展名

RPM包依赖性

  • 树形依赖 : a〉b〉c

  • 环形依赖: a〉b〉c〉a

  • 模块依赖:模块依赖查询网址:www.rpmfind.net

  • libmysqlclient.so.18() 类似此表达式为模块依赖,在www.rpmfind.net查找

在这里插入图片描述

找对对应适用平台,选择对应软件包名称,进行安装

在这里插入图片描述

1.2.2.安装升级与卸载

(1)包全名与包名

包全名:操作的包是没有安装的软件包时,使用包全名,而且要注意路径(安装升级时)

包名:操作已经安装的软件包时,使用包名。是所搜索/var/lib/rpm中的数据库(已安装)

(2)RPM安装

rpm -ivh 包全名
参数:
-i(install)    安装  
-v(verbose)    显示详细信息
-h(hash)       显示进度
--nodeps       不检测依赖性

(3)RPM升级

rpm -Uvh 包全名
参数:
-U (upgrade)   升级

(4)卸载

rpm -e 包名
参数:
-e (erase)  卸载
--nodeps     不检查依赖性

(5)备注:需进入rpm绝对路径下使用上述命令

1.2.3.命令管理-查询

rpm -q
参数:
-i   软件信息(information)
-q   查询(query)
-a   所有(all)
-p   查询未安装包信息(package)
-l   列表(list)
-f   系统文件(file)
-R   查询软件包的依赖性(requires)
#查询是否安装
rpm -q  包名
#查询所有已安装的rpm包
rpm -qa 
rpm -qa |grep 包名
#查询软件包详细信息
rpm -qi 包名
#查询未安装包信息
rpm -p  包全名
#查询已安装包文件安装位置
rpm -ql 包名
#查询系统文件属于哪个rpm包
rpm -qf 系统文件名
#查询软件包的依赖性
rpm -qR 包名
#查询未安装软件包的依赖性
rpm -qRp 包名

1.2.4.命令管理-校验和文件提取

(1)校验

#校验
rpm -V 已安装的包名
#验证内容中的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)

(2)提取

#提取某包的某文件提取到当前目录下
rpm2cpio 包全名 | \cpio -idv.文件绝对路径  \字符太长换行标志无实际意义;  . 代表当前目录
rpm2cpio #将rpm包转换为cpio格式的命令
cpio#是一个标准的工具,它用于创建软件档案文件和从档案文件中提取文件
cpio 参数<[文件|设备]
参数:
-i copy-in模式,还原
-d 还原时自动新建目录
-v 显示还原过程

#查询ls命令属于哪个软件包
rpm -qf /bin/ls
#造成ls误删除假象
mv /bin/ls /tmp
#提取RPM包中ls命令道当前目录的/bin/ls下
rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-24.el7.x86_64.rpm |cpio -idv ./bin/ls
#把 ls命令复制到/bin目录下,修复文件丢失
cp /root/bin/ls /bin

1.3.RPM管理–yum在线管理

1.3.1.配置ip

#局域网简易配置
TYPE=Ethernet     #网络类型:Ethernet以太网
BOOTPROTO=static  #引导协议:自动获取、static静态、none不指定
DEFROUTE=yes      #启动默认路由
NAME=ens33        #网卡设备的别名
DEVICE=ens33      #网卡的设备名称
ONBOOT=yes        #开机自启
IPADDR=192.168.253.110   #ip设置
NETMASK=255.255.255.0    #子网掩码
#连接外网必须配置项
GATEWAY=192.168.253.2    #网关
DNS1=192.168.253.2       #dns
#补充
IPV4_FAILURE_FATAL=no         #不启用IPV4错误检测功能
IPV6INIT=yes                  #启用IPV6协议
IPV6_AUTOCONF=yes             #自动配置IPV6地址
IPV6_DEFROUTE=yes             #启用IPV6默认路由
IPV6_FAILURE_FATAL=no         #不启用IPV6错误
UUID=90528772-9967-46da-b401-f82b64b4acbc         #网卡设备的UUID唯一标识号
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
MACADDR=00:0C:29:36:97:20     #mac地址

重启网络服务

/etc/init.d/network restart
service network restart
systemctl restart network

1.3.2.网络yum源

网络yum源文件:/etc/yum.repos.d/CentOS-Base.repo

vi /etc/yum.repos.d/CentOS-Base.repo
1 [base]           #容器名称,一定放在[]中,默认不改
2 name=            #容器说明,可以自己随便写
3 mirrorlist=      #镜像站点,这个可以注释掉
4 baseurl=         #我们yum源服务器的地址。默认是Centos官方的yum源服务器,是可以使用的,也可按自己要求更换本地yum源地址
5 enabled=         #容器是否启用,1表示启用,0表示关闭
6 gpgcheck=1       #RPM数字证书密钥,1表示开启,0表示关闭
7 gpgkey=          #数字证书的公钥文件保存位置,不用修改

例:

配置网络yum源为163yum源

1)下载repo文件 
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
#提示找不到命令执行
yum install wget

2)备份并替换系统的repo文件 
cp CentOS7-Base-163.repo /etc/yum.repos.d/ 
cd /etc/yum.repos.d/ 
mv CentOS-Base.repo CentOS-Base.repo.bak 
mv CentOS7-Base-163.repo CentOS-Base.repo
 
3)执行yum源更新命令 
yum clean all 
yum makecache 
yum update

1.3.3.yum命令

#查询
yum list
#查找相关软件包
yum search 关键字
#安装
yum install -y 包名
参数:
install  安装
-y       自动回答yes
#升级
yum -y update 包名
参数:
update  升级
-y      自动回答yes.
yum update yum源更新
#卸载
yum -y remove 包名
参数:
remove  卸载
-y      自动回答yes

yum软件组管理命令

#列出所有可用的软件组列表
yum grouplist
#安装指导软件组,组名可以由grouplist查询出来
yum groupinstall 软件组名  
不支持中文,查询因为可在虚拟机里执行命令,组名带空格,用""隔开 如 yum groupinstall "Minimal Install"
#卸载指定软件组
yum groupremove 软件组名

1.3.4.光盘yum源搭建

光盘yum源文件/etc/yum.repos.d/CentOS7-Media.repo

1.挂载光盘
mount /dev/sr0 /mnt/cdrom
2.让其他yum源失效
cd /etc/yum.repos.d
#做备份
mv * /etc/repo.bak
3.让光盘yum生效
cd /etc/repo.bak
mv CentOS7-Media.repo /etc/yum.repos.d
4.修改光盘yum源CentOS7-Media.repo文件
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#地址改为你自己的光盘挂载地址
#        file:///media/cdrom/
#        file:///media/cdrecorder/
gpgcheck=1
enabled=0 
#把enabled=0改为enabled=1,让这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

1.4源码包管理–源码包与rpm包区别

1.4.1区别

安装之前的区别:概念上的区别,详见1.1

安装之后的区别:安装位置不同

1.4.2.RPM包默认安装位置

/etc/配置文件安装目录
/usr/bin/可执行的命令安装目录
/usr/lib/程序所使用的的函数库保存位置
/usr/share/doc/基本的软件使用手册保存位置
/usr/share/man/帮助文件保存位置

1.4.3.源码包安装位置

安装在用户指定位置,一般是/usr/local/软件名/

1.4.4.安装位置不同带来的影响

RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法是:

/etc/init.d/httpd start
service start httpd

而源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中,所以只能用绝对路径进行服务的管理,如

/usr/local/apache2/bin/apachectl start

1.5.源码包安装过程

1.5.1安装准备

  • 安装c语言编译器,gcc

  • 下载源码包

http://mirror.bit.edu.cn/apache/httpd

1.5.2.安装注意事项

  • 源码包默认保存位置:/usr/local/src

  • 软件安装位置:/usr/local

  • 如何确定安装过程报错

    安装过程停止

    并出现error、warning(警告)或no的提示

1.5.3.软件包安装过程

1.下载源码包
官方依赖包APR、APR-util、pcre
2.解压源码包
tar -zxvf httpd-2.4.43.tar.gz
3.切换到放置路径
cd /usr/local/src/httpd-2.4.43
#/configure软件配置与检查
定义需要的功能选项
检测系统环境是否符合安装要求
把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑
#指定安装路径
./configure --prefix=/usr/local/apache 
#查看是否报错如出现:
checking for APR-util... no
configure: error: APR-util not found.  Please read the documentation.
表明APR-util未安装
下载源码包apr-1.4.6
http://labs.mop.com/apache-mirror//apr/apr-1.4.6.tar.gz
tar -zxvf apr-1.4.6.tar.gz
./configure --prefix=/usr/local/apr
make&&make install
下载源码包aprutil和安装aprutil
http://labs.mop.com/apache-mirror//apr/apr-util-1.4.1.tar.gz
tar -zxvf apr-util-1.4.1.tar.gz
cd apr-util-1.4.1
./configure --with-apr=/usr/local/apr --prefix=/usr/local/apru-til
make && make install
#继续执行
--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
make
make install
#启动
/usr/local/apache/bin/apachectl start
如报错:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set
解决方法:
vi /usr/local/apache/conf/httpd.conf
添加
ServerName localhost:80

在这里插入图片描述

启动成功如图:

在这里插入图片描述

1.5.4.源码包的卸载

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

rm -rf /usr/local/apache

1.6.脚本安装包

1.6.1.简介

  • 脚本安装包并部署独立的软件包类型,常见安装的是源码包

  • 人认为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装

  • 非常类似于Windows下软件的安装方式

1.6.2.Webmin的作用

Webmin是一个基于Web的Linux系统管理界面,您可以通过图形化的方式设置用户账号、Apache、DNS、文件共享等服务

1.6.3.Webmin安装过程

下载软件

http://sourceforge.net/projects/webadmin/files/webmin

解压缩,并进入解压缩目录

tar -zxvf 

执行安装脚本

./setup.sh
#安装位置,默认/etc/webmin
Config file directory [/etc/webmin]: 
#日志路径,默认/var/webmin
Log file directory [/var/webmin]:
#perl命令默认路径
Full path to perl (default /usr/bin/perl):
#端口设置,默认:10000
Web server port (default 10000): 
#用户名,默认:admin
Login name (default admin): 
#设置密码
Login password: 
Password again:

安装完成

下载软件

http://sourceforge.net/projects/webadmin/files/webmin

解压缩,并进入解压缩目录

tar -zxvf 

执行安装脚本

./setup.sh
#安装位置,默认/etc/webmin
Config file directory [/etc/webmin]: 
#日志路径,默认/var/webmin
Log file directory [/var/webmin]:
#perl命令默认路径
Full path to perl (default /usr/bin/perl):
#端口设置,默认:10000
Web server port (default 10000): 
#用户名,默认:admin
Login name (default admin): 
#设置密码
Login password: 
Password again:

安装完成

在这里插入图片描述

访问http://ip:10000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值