[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
posted @ 2021-06-20 16:12  刘较瘦丫  阅读(240)  评论(0)    收藏  举报