[Linux之RPM包、部署django]
[Linux之RPM包、部署django]
⼀ 软件包介绍
与windows类似,在linux系统上也可以安装各种应⽤程序,或称软件包,linux下软件包分为三类
| 分类 | 安装 | 特点 |
|---|---|---|
| rpm包 | 预先编译打包安装简单 | 通常软件的稳定版会被官⽅做成rpm,所以软件版本偏低 |
| 源码包 | ⼿动编译打包,安装繁琐 | 软件版本丰富,可选择性强 |
| ⼆进制包 | 解压即可使⽤, 安装简单 | 不能修改源代码 |
⼆ rpm包管理
2.1什么是rpm包?
在主流的linux系统上,多数软件的安装、升级、移除以及维护⼯作都是使⽤RPM软件包管理程序来完成的,那什么是RPM软件包呢?
RPM 是Red-Hat Package Manager(RPM软件包管理器)的缩写,这⼀⽂件格式名称虽然打上了RedHat的标
志,但是其原始设计理念是开放式的,通常软件的稳定版会被官⽅做成rpm,所以软件版本偏低。
rpm包格式
rpm包格式图片
RPM包格式举例
# 例1
mysql-connector-odbc-5.2.5-8.el7.x86_64.rpm
软件包名:mysql-connector-odbc
版本号Version:5.2.5
发布版本Release:8.el7
平台:el7.x86_64
后缀:.rpm
# 例2
abrt-python-doc-2.1.11-57.el7.centos.noarch.rpm
abrt-python-doc #软件包的名称
2.1.11 #软件的版本
57 #软件编译之后的发布的次数
el7 #适合的操作系统的版本
noarch #适⽤于不同版本的CPU
.rpm #后缀名
管理rpm包有两种命令
# 1、rpm命令:
需要⾃⼰找到rpm包,并且⼿动解决包的依赖性关系
ps:实际情况下,很难分辨缺少什么依赖包
# 2、yum命令:
相关rpm包事先都被存放于⼀个仓库⾥,仓库包含了所有的依赖包,所以yum按照可以帮我们解决依赖性问题
RPM包获取
# 1.本地的ISO镜像光盘(软件包可能存在版本偏低情况) : 挂载镜像有以下三种⽅式
⽅式1: [root@localhost ~]# mount /dev/cdrom /opt/
⽅式2: [root@localhost ~]# mount /dev/sr0 /opt/
⽅式3 [root@localhost ~]# mount -o loop /xxx.iso /opt
查看光盘⾥的rpm包 [root@localhost ~]# ls /opt/Packages/
# 2.⾃⼰去⽹上下载rpm包进⾏安装
# 3.联⽹从yum仓库⾥获取rpm包 # yum的时候
三 rpm命令
#1、安装:rpm -ivh <RPM包名全称>
#2、卸载:rpm -e <RPM包名>
#3、升级:rpm -Uvh <RPM包名>
#4、查询:
rpm -qa #查询系统中安装的所有RPM软件包
rpm -qa | grep php #检索系统中已经安装有关php的软件包
rpm -q <RPM包名> #查询指定软件包是否已安装
[root@egon ~]# rpm -q zip
zip-3.0-11.el7.x86_64
rpm -qi <RPM包名> #查询系统中已安装包的描述信息
rpm -ql <RPM包名> #查询系统中已安装包⾥所包含的⽂件
rpm -qc <RPM包名> #查询指定软件包的所有配置⽂件
[root@egon ~]# rpm -qc mariadb
/etc/my.cnf.d/client.cnf
rpm -qd <RPM包名> # 查询某个包安装的帮助⽂档
[root@localhost ~]# rpm -qd zlib
rpm -qf ⽂件路径 #查询系统中指定⽂件所属的软件包
[root@egon ~]# rpm -qf /usr/sbin/ifconfig
net-tools-2.0-0.25.20131004git.el7.x86_64
-p # 在上述选项的基础上加选项-p,就可以查看尚未安装的rpm包信息
[root@localhost ~]# rpm -e dos2unix # 先卸载⼀下,证明本地rpm数据库中没有该包信息
[root@localhost ~]# rpm -qip /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
[root@localhost ~]# rpm -qlp /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
[root@localhost ~]# rpm -qcp /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
[root@localhost ~]# rpm -qdp /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
额外选项
--nomd5 # 不检验软件包的签名
--nodeps # 忽略依赖性安装软件,安装后软件有可能⽆法使⽤,最好是解决依赖性后再安装
[root@localhost ~]# rpm -e dos2unix --nodeps # 忽略依赖关系
--force # 强制安装软件包,只有安装和升级可以强制执⾏
四 yum管理RPM包
yum介绍
yum⾃动解决依赖关系
Yum(全称为 Yellow dog Updater, Modified)是⼀个在Fedora和RedHat以及CentOS中的Shell前端软
件包管理器。基于RPM包管理,能够从指定的服务器⾃动下载RPM包并且安装,可以⾃动处理依赖性关系,并且⼀次
安装所有依赖的软件包,⽆须繁琐地⼀次次下载、安装。
查看yum命令与配置⽂件
[root@localhost ~]# rpm -q yum
yum-3.4.3-161.el7.centos.noarch
[root@localhost ~]# rpm -qc yum
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf
yum命令常⽤选项
常⽤选项说明:
#仓库
yum repolist # 查询可⽤仓库
yum repolist all #查看包括已启⽤或禁⽤的所有仓库状态
# 关闭与启⽤仓库:本质:都是在修改repo⽂件中的enable的值 0 不启⽤ 1 启⽤
yum-config-manager --disable epel #关闭仓库epel
yum-config-manager --enable epel #启⽤仓库epel
#查看
yum list #列出可⽤仓库中所有的软件包
yum list | less
yum grouplist #列出可⽤仓库中的软件组
yum provides /usr/sbin/ifconfig #查询命令所属的软件包,可以不加路径,只写命令名字
#与rpm -qf的区别在于yum provides后可以只跟命名名
#安装 yum install httpd httpd-tools #加上-y选项可以变成⾮交互
yum groupinstall "开发⼯具" -y #安装软件组,⼀个软件组中包含了多个软件包
yum groups install "开发⼯具" -y #同上
#卸载 yum remove httpd httpd-tools http* #卸载软件包
yum groupremove "开发⼯具" -y. #卸载软件组
yum groups remove "开发⼯具" -y #同上
#重装 yum reinstall httpd #不⼩⼼删除了配置⽂件的时,可以reinstall⼀下
#更新 yum check-update #检查可以更新的软件包
yum update -y #更新所有软件包,包括内核,通常只在刚装完系统时执⾏
yum update httpd -y #更新某个软件包
#缓存
yum makecache #制作元数据缓存
yum clean all #清理元数据缓存
vim /etc/yum.conf #默认软件包下载安装后会⾃动删除
#设置keepcache=1 即开启了软件包缓存
#缓存⽬录为配置⽂件中指定的cachedir
#历史记录
yum history # 查看执⾏过的yum命令历史记录
yum history info ID号 # 查看具体某⼀条yum命令的详细信息
yum history undo ID号 # 撤销执⾏过的历史命令
# 关于安装需要注意:
⽆论yum安装的软件来⾃何⽅,yum时刻以⾃⼰仓库中的repodata存储的依赖关系为准,如果有多个仓库依次检索
#1、yum直接安装公⽹的rpm包, 会⾃动查找当前系统上已有的仓库解决依赖关系yum install https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/Packages/samba-
4.8.3-4.el7.x86_64.rpm
#2、Yum直接安装本地的rpm包,会⾃动查找当前系统上已有的仓库解决依赖关系
yum localinstall -y /mnt/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm
**4.2 **⾃⼰制作本地yum源
1、下载好⼀堆rpm包,相关依赖包也都存在,将所有的rpm包都放置于⼀个⽂件夹下,⽐如/aaa
2、安装⼯具createrepo
[root@localhost ~]# yum install createrepo -y
3、制作repodata
[root@localhost ~]# createrepo /aaa/
4、配置本地repo⽂件,指向/aaa
[root@localhost ~]# vim /etc/yum.repos.d/soft.repo
[soft]
name=soft
baseurl=file:///aaa
enabled=1
gpgcheck=0
# 本地yum仓库
1、挂在镜像
mount /dev/sr0 /mnt
2、编写yum源配置文件
[mnt]
name="yum源的介绍"
baseurl=file:///mnt
3、生成yum源
yum makecache
4、使用
yum install zsh
yum扩展知识
1、yum元数据缓存:指的将yum仓库的元数据缓存下来,下次安装时省去了检索过程,安装速度可以加快
[root@localhost ~]# yum clean all # 清理缓存
[root@localhost ~]# yum makecache # 制作缓存
2、yum软件包缓存:开启软件包缓存后,从⽹络源下载安装完的软件安装包不再删除,都缓存到了本地,
[root@localhost ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever # 指定软件安装包的缓存⽬录
keepcache=1 # 设置为1
debuglevel=2
# 缓存⽬录为:ls /var/cache/yum/x86_64/7/
基于软件包缓存,可以做成⾃⼰的yum源,以此来控制各个服务的版本,通常的做法为
# 1、在测试环境中,在每个节点上都开启软件包缓存
# 2、在测试环境中,安装相同版本的操作系统,安装完毕后统⼀执⾏yum update -y
# 3、在测试环境中,部署完完你的架构,测试完毕
# 4、把测试环境中每台机器上缓存好的软件包安装包采集到⼀个⽂件下
[root@egon ~]# find /var/cache/yum/x86_64/7/ -type f -name "*.rpm" | xargs -I {} mv
{} /soft/
# 5、然后⽤createrepo命令制作好依赖关系,即repodata数据库
# 6、然后在线上环境部署时,就⽤该本地源就好,不要轻易升级,不要滥⽤yum源,这样可以严格控制好各个服务
的版本
**4.3 **⾃⼰制作本地yum源共享给别⼈
# 共享yum源
1、创建仓库目录
mkdir py17
2、安装配置软件
yum install yum-utils createrepo vsftpd -y
注: 安装vsftpd软件之后,会生成一个/var/ftp目录
systemctl start vsftpd
可以使用:ftp://192.168.13.100 来测试访问
3、准备安装包
将本地yum仓库移动到/var/ftp : mv /root/py17 /var/ftp
4、初始化
createrepo /var/ftp/py17/
5、开始编写配置文件(/etc/yum.repos.d)
[test]
name='这是测试yum源'
baseurl=ftp://192.168.13.100/py17/
6、测试使用
yum install zsh
5、案例
再linux系统中装一个Django
1、安装Python
yum install python3 -y
2、安装django
pip3 install django==1.11.11
3、创建项目
django-admin startproject linux
4、创建应用
cd linux
django-admin startapp application
5、关闭系统防火墙
systemctl disable --now firewalld
6、启动django
python3 manage.py runserver 0.0.0.0:8000

浙公网安备 33010602011771号