day19

各系统下软件包格式

windows
https://dldir1.qq.com/qqfile/qq/PCQQ9.5.9/QQ9.5.9.28625.exe

linux
https://down.qq.com/qqweb/LinuxQQ/linuxqq_2.0.0-b2-1089_x86_64.rpm

软件程序,就是程序员通过编程语言写好一堆代码,通过一些方式运行,比如编译后,生成一个应用程序,称之为软件。软件包,指的就是,程序安装所需要的一个文件。

linux下常见软甲包格式

源码包
通过各种语言写出来的一堆源代码程序,需要进行编译后才能生成二进制命令从而执行后续的一切操作
常见的源码包格式
https://tengine.taobao.org/download/tengine-2.3.3.tar.gz

二进制包
对写出来的源代码程序进行编译后已经生成可以执行的二进制命令的一个打包文件,其中又分二进制源码包和下载解压即用的二进制包。
二进制包常见格式
nginx-2.3.3.tar.gz
下载解压即用二进制包
nginx-2.3.3-x86-64.tar.gz
一般这种软件包名字上都会带有一些系统参数,告诉你支持在哪些系统环境下可以直接使用。

解释型语言和编译型语言的区别

编译型语言
  编译型语言需要通过编译器来进行翻译以后生成一个可以执行的二进制命令,优点是运行速度快,代码效率高,保密性好。缺点是代码必须经过编译后才能运行,可移植性差。
解释性语言
  解释性语言是自带编译器的,只有在运行时才进行编译,相当于边执行边翻译。优点是可移植性高,缺点是需要安装特定的运行环境,运行效率较慢。

获取rpm包方式

1.去各软件官网下载
http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.0-1.el7.ngx.x86_64.rpm

2.通过在虚拟机中挂载光盘获取
通过lsblk命令找到光盘信息
[root@localhost opt]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0   19G  0 part /
└─sda2   8:2    0 1023M  0 part /home
sr0     11:0    1  4.2G  0 rom 

[root@localhost opt]# mount  /dev/sr0  /mntmount: 
/dev/sr0 写保护,将以只读方式挂载

[root@localhost opt]# ls  /mnt/Packages/ 
这个目录下,能找到你需要的软件包的名字,即可去安装它

rpm命令

语法:rpm -qa | grep 软件名称

选项:

-q:查询,query

-a:全部,all

-i :显示软件包的概要信息

-v :显示安装详细过程

-h:显示安装进度
rpm -ivh  安装软件
rpm -e    卸载软件
rpm -Uvh  升级软件
rpm -ql   查看已经安装的软件的文件列表
查看未安装的rpm包里的文件列表
rpm -qlp  软件包(xxx.rpm)

查看已经安装的所有rpm包
rpm -qa 软件包名

查看已经安装软件的文档列表
rpm -qd 软件包名

查看已经安装软件的配置文件
rpm -qc 软件包名

查看已经安装软件的详细信息
rpm -qi 软件包名

查看指定文件来自哪个rpm包
rpm -qf 文件名


rpm包安装软件
[root@localhost opt]# rpm -ivh nginx-1.10.0-1.el7.ngx.x86_64.rpm 

通过rpm包安装的软件需要自己手动去处理该软件的依赖关系,处理时需要一层一层去解决,不是很实用。

源码包安装软件实战

下载源码
[root@localhost Python-3.9.11]# wget https://www.python.org/ftp/python/3.9.11/Python-3.9.11.tgz
解压
[root@localhost Python-3.9.11]# tar -zxvf Python-3.9.11.tgz 
进入到解压后目录
[root@localhost Python-3.9.11]# cd Python-3.9.11
指定安装路径
[root@localhost Python-3.9.11]# ./configure  --prefix=/opt/my_python
编译安装
[root@localhost Python-3.9.11]# make && make install
查看当前软件版本信息
[root@localhost opt]# /opt/my_python/bin/python3.9 -V
Python 3.9.11
写一段简单的py代码
[root@localhost my_python]# cat 123.py
import time
sentence = "Dear, I love you forever!"
for char in sentence.split():
   allChar = []
   for y in range(12, -12, -1):
       lst = []
       lst_con = ''
       for x in range(-30, 30):
            formula = ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3
            if formula <= 0:
                lst_con += char[(x) % len(char)]
            else:
                lst_con += ' '
       lst.append(lst_con)
       allChar += lst
   print('\n'.join(allChar))
   time.sleep(1)
运行py读取文本内容

编译和rpm包的区别

yum自动化软件管理命令

配置yum工具的yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
能够下载centos自带的大多数软件

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
能够下载大多数第三方软件的仓库

yum安装软件
yum -y install 软件包名

yum卸载软件
yum -y remove 软件包名

yum升级软件
yum update 软件包名

yum工具其他选项
yum list                列出仓库里的软件包
yum repolist            列出可用仓库
yum clean all        清空yum缓存
yum makecache         创建yum缓存


通过yum安装的软件是可以通过系统服务管理命令systemctl去管理的。

三种安装方式活学活用

以下属于个人观点和认知
  因为通过rpm命令去安装软件,需要手动解决这个软件的所有依赖,如果只有几个的话还好,但是不排除有好几十个依赖的情况发生,这个时候就不可能通过自己去手动接触这些依赖了,所以rpm命令安装软件会有一定的局限性,而且你在装一个软件时并不清楚这个软件会有多少个依赖,所以一般不会去用这个命令。
  一般主流的安装方式就是通过源码包安装和通过系统自带的yum工具安装,先来说一下通过源码包安装,这种方式一般用来安装一些需要定制很多功能的软件,可以指定所有文件安装到一个目录下,便于管理,或者需要安装指定版本的软件,也可用这种方式来安装,但是它安装步骤较为繁琐,而且在安装过程中容易出错。
  yum命令一般是比较常见的软件管理命令,因为它可以自动的去帮你解决一个软件所有的依赖问题,大大节省了安装时间,它是从云软件仓库去下载软件,下载时不需要知道准确的软件包全称,下载的软件都是最新版,但是yum最致命的缺点就是必须要联网,如果在断网环境下的话yum是无法使用的。
posted @ 2022-03-26 22:06  刘条缝  阅读(130)  评论(0)    收藏  举报