文章目录
概述
RPM包
RPM包是什么
RPM包管理器全称是Red Hat Package Manager,RPM是一个递归缩写,由Red Hat 公司推出被众多Linux发行版所采用。
RPM包也叫做二进制包(由01组成,计算机可以直接读取),无需编译,可以直接使用。
- 优点: RPM包的下载速度很快
- 缺点:无法个人设置一些信息,无法设置开关功能。
认识RPM包
几个rpm包实示例:
zip-3.0-11.el7.x86_64.rpm
wget-1.14-15.el7x86_64.rpm
tcpdump-4.9.0-5.el7.x86_64.rpm
以zip-3.0-11.el7.x86_64.rpm
为例:
- zip: 软件包名
- 3.0-11:版本号
- el7:发布平台,该包发布在哪个平台使用的。 el7表示企业版Linux7
- x86_64: 系统平台32或64位
- rpm:文件后缀
源码包
源码包是什么
源码包就是编程人员可读的包,源码包需要经过C++等编译环境才能运行。编译就是将高级语言转换成计算机可读的(01)内容。
- 优点:可以自己设置一些信息,可以设置开关功能
- 缺点:配置复杂
认识源码包
nginx-1.8.1.tar.gz
nginx:包名
1.8.1:包的版本
RPM包管理
YUM工具
简介
Yum(全称为Yellow dog Updater, Modified ),是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器
。
- 基于RPM包管理,能够从指定的服务器
自动下载RPM包
并且安装 - 可以
自动处理依赖性关系
,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
YUM本地源(使用系统安装光盘)
YUM本地源就是使用本地地址配置yum包的下载地址。
设置YUM本地源的目的是:
- 通知inux服务器,通过本机的系统光盘获得软件包,并安装软件。
优点是:
- 通过本地源下载,无需联网也能下载包
配置YUM本地源 — 使用本地下载
1. yum的核心配置目录
yum的核心配置目录是/etc/yum.repos.d
[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo CentOS-x86_64-kernel.repo
/etc/yum.repos.d
目录下的文件yum配置的各种下载地址文件,其中最基本的配置文件就是CentOS-Base.repo
。
eg:
[root@localhost ~]# cat /etc/yum.repos.d/CentOS-Base.repo
...
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
mirrorlist镜像地址,也就是包的下载地址。
2. 删除官方下载地址
包的官方的下载地址的节点在国外,下载速度慢,可以对下载地址进行修改,首先要删除默认下载地址。
rm -rf /etc/yum.repos.d/*
3. 编写本机yum库配置文件
在/etc/yum.repos.d/
文件夹下配置后缀名为.repo
的配置文件。(文件名不限制,所以可以有多个配置文件)
[root@localhost ~]# vim /etc/yum.repos.d/dvd.repo
[dvd]
name=dvd
baseUrl=file:///mnt/cdrom
gpgcheck=0
enabled=1
– [dvd]:中括号里面一般指的是仓库的名称
– name=dvd:一般是对仓库的描述信息
– baseUrl:包的的下载地址(可以是本地也可以是远程)
– gpgcheck:包校验,0是关闭校验
– enabled:表示开启此配置库,使用该yum源。1是开启,0是关闭。默认是1。
一个配置文件里能够配置多个name,baseUrl;同时可以设置是否使用该配置库,就是通过enabled配置项进行配置。
有的时候修改完yum的配置文件不起作用,这种情况我们重启下yum就可以了。
yum makecache
4. 挂载安装光盘
上述文件配置得下载地址是file:///mnt/cdrom
我们需要手动配置下。
-
插光盘:
光盘使用的是镜像文件,镜像文件里面包含可供下载的包。
开启电源:
-
准备一个文件夹挂载光驱(光盘):
mkdir /mnt/cdrom
-
光盘所在的位置是:
/dev/cdrom
-
挂载光盘:
光盘是带有数据的盘,所以他已经进行了分区格式化,直接挂载就行。
挂载命令:mount /dev/cdrom /mnt/cdrom/
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom mount: /dev/sr0 写保护,将以只读方式挂载 [root@localhost ~]# ls /mnt/cdrom CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7 EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
挂载完之后
/mnt/cdrom
文件夹下就会有很多内容,其中Packages
文件夹下都是可下载的rpm
包。[root@localhost ~]# ls /mnt/cdrom/Packages/ | wc -l 4071
总共有4071个包。
有个问题是挂载状态在计算机重启之后会消失。所以我们需要将挂载命令
mount /dev/cdrom /mnt/cdrom
写在一个计算机启动时一定会执行的文件中,如/root/.bashrc
[root@localhost ~]# vim /root/.bashrc # .bashrc mount /dev/cdrom /mnt/cdrom # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi ~ ~ ~ ~ ~ -- 插入 --
设置之后重启虚拟机后挂载信息仍然存在。
5. 使用yum安装和卸载程序
- 安装软件:
yum install -y httpd
- 启动软件:
systemctl start httpd
- 关闭防火墙:
systemctl stop firewalld
- 禁用防火墙:
disable firewalld
使用YUM管理RPM包
- 安装:
- 全新安装:
yum -y install 包名1 软件包2 ...
-y参数是自动确认的意思。 - 重新安装:
yum -y reinstall 包名1 包名2
- 升级安装:
yum -y update 包名1 包名2
- 查询:
yum list 包名
或yum search 包名
- 卸载:
yum remove 包名
-
查询:
查询一个包是否已经安装:yum list 包名
或yum search 包名
最后一列信息如果带@
就表示是已经安装过的包,最后一列表示的是下载仓库[root@localhost ~]# yum list httpd 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 已安装的软件包 httpd.x86_64 2.4.6-95.el7.centos @dvd
-
卸载:
yum -y remove 包名1 软件包2 ...
或者yum -y erase 包名1 软件包2 ...
[root@localhost ~]# yum -y remove httpd 已加载插件:fastestmirror, langpacks 正在解决依赖关系 ... 删除: httpd.x86_64 0:2.4.6-95.el7.centos 完毕! [root@localhost ~]# yum list httpd 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 可安装的软件包 httpd.x86_64 2.4.6-95.el7.centos dvd
-
其他
- 清理yum缓存:
yum clean all
- 缓存软件包信息:
yum makecache
- 查询yum源信息:
yum repolist
- 查看软件的依赖关系:
yum deplist
- 查看文件属于哪个软件:
yum provides ld-linux.so.2
配置阿里的yum地址 — 使用网络下载
-
清除原有yum配置
-
下载阿里官网配置
前往阿里巴巴开源镜像站
选择centos下载基础包
选择epel下载扩展包
wget是一个文件下载命令,在yum.repos.d目录下执行如下下载命令就可以下载yum的配置文件到该目录。wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
-
更新yum仓库
yum clean all // 清理yum缓存 yum makecase // 缓存软件包信息,提升包的下载速度
-
查看yum配置
yum repolist
RPM工具
RPM是红帽系统/centos系统自带的rpm包管理工具,无需安装,与YUM功能相同,没有YUM好用。
使用RPM管理RPM包
-
安装
首先在/mnt/cdrom/Package文件夹下查找所要下载的包是否存在。[root@localhost ~]# cd /mnt/cdrom/Packages/ [root@localhost Packages]# ls wget-1.14-18.el7_6.1.x86_64.rpm wget-1.14-18.el7_6.1.x86_64.rpm
存在的话才能下载,执行下载命令:
rpm -ivh 包名
(i是安装,v是可视,h是百分比)。
下载的时候需要加rpm
后缀,因为是下载安装包rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm
wget
包是用来下载东西的,类似于迅雷。后缀命令:
--force
强制安装 -
查询
rpm -q 包名
(q是查询)
注意查询的时候不用加.rpm
后缀,因为是查询包,而不是安装包[root@localhost Packages]# rpm -q wget wget-1.14-18.el7_6.1.x86_64
出现包的名称说明安装成功。
rpm -ql 包名
:查询包的安装路径
rpm -qa
:查询所有已安装软件
rpm -qi 包名
:查询软件包的详细信息
rpm -qf 文件
:查询某个文件是由哪个软件产生的。rpm -qf /etc/passwd
-
删除
rpm -evh 包名
(-e是删除的意思)
注意卸载的时候不用加.rpm
后缀[root@localhost Packages]# rpm -q wget wget-1.14-18.el7_6.1.x86_64 [root@localhost Packages]# rpm -evh wget-1.14-18.el7_6.1.x86_64 准备中... ################################# [100%] 正在清理/删除... 1:wget-1.14-18.el7_6.1 ################################# [100%]
后缀命令:
--nodeps
在卸载的时候用,卸载的时候不检查依赖关系强制卸载
RPM的缺点
无法处理包之间的依赖关系。不如A包依赖B包,下载A包的时候会自动终止,他不会去自动下载B包。
源码包管理
获得源码包
官方网站可以获取最新的源码包:
- Apache: https://www.apache.org/
- Nginx:https://www.nginx.org/
- Tengine:https://tengine.taobao.org/
Tengine是淘宝对nginx的二次封装。
下载:
- 如果虚拟机可以联网,直接访问对应的网址进行下载即可
- 如果虚拟机不可以联网,在真机下载之后:
- 拖拽到虚拟机。
- 或者使用rz命令
下载完之后在终端输入rz命令,会吊起真机的盘符,然后选择下载的源码包,就可以复制到虚拟机。yum -y install lrzsz-0.12.20-36.el7.x86_64
部署源码包
-
配置源码包的编译环境
下载对应的包,以下是几个常用的编译环境的包:yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
-
解压包:
tar xf 包名
tar xf tengine-2.3.2.tar.gz
-
配置源码包
源码包的优点就是可以配置:./configure 配置项
跳转到源码包解压后的目录进行配置。[root@localhost 桌面]# cd tengine-2.3.2/ [root@localhost tengine-2.3.2]# ./configure --user=www --group=www --prefix=/usr/local/niginx
–user:指明属主
–group:指明属组
–prefix:配置安装路径在哪 -
编译
将软件包的语言编译成系统能够读懂的语言:make
make将源码编译成二进制文件,并存放在当前文件夹下[root@localhost tengine-2.3.2]# make
-
安装
安装源码包,将软件安装至指定目录(–prefix指令的目录)[root@localhost tengine-2.3.2]# make install
-
启动
tengine服务和httpd冲突,启动之前请确保httpd
是关闭的[root@localhost tengine-2.3.2]# /usr/local/nginx/sbin/nginx [root@localhost tengine-2.3.2]# systemctl stop firewalld
启动成功并关闭防火墙之后访问本机IP(http://127.0.0.1:80),如果出现nginx的网页,说明部署成功。nginx占取80端口。
或者使用命令:lsof -i:端口号
可以查看端口占用情况 -
关闭
[root@localhost tengine-2.3.2]# /usr/local/nginx/sbin/nginx -s stop