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