一、软件包
Linux中的软件包有以下几种:
- bin文件:后缀是.bin,作为可执行文件,适合所有的Linux发行版
- rpm包、yum:适合Redhat系列,当然包括CentOS
- 源码压缩包:适合所有Linux发行版,自行编译安装
- 官方已经编译好的,下载软件包就可以使用的,在Windows中常被称为绿色软件
二、rpm命令
<1>rpm包
来源:
- 阿里云的开源镜像: https://opsx.alibaba.com/mirror (根据不同系统自己选择对应的安装包,比如我这里选择的centos的: https://mirrors.aliyun.com/centos/6.10/os/x86_64/Packages/)
- 网易的163的镜像:https://mirrors.163.com/
还有其他的像清华开源镜像(https://mirrors.tuna.tsinghua.edu.cn/) 等等,任意选择一个即可,在外面系统选择下载完成后,上传到自己的Linux系统即可,不清楚怎么将文件传输到虚拟机可以看我的文章 Linux(CentOS)使用xshell建立ssh连接并且进行文件传输
<2>安装:不能指定安装目录,安装目录是预先定义好的
常用的选项:
选项 | 含义 |
---|---|
-i | 安装rpm文件 |
-h | 以#显示安装进度,每个#表示2% |
-v | 显示详细进程 |
-vv | 更详细的进程 |
–nodeps | 忽略依赖关系 |
–replacepkgs | 重新安装,替换原有的安装 |
–force | 强制安装,可以实现重装或者降级 |
例如:rpm -ivh yum-3.2.29-81.el6.centos.noarch.rpm
<3>查询
参数 | 含义 |
---|---|
-q PACKAGE_NAME | 查询指定包是否已经安装 |
-qa | 查询已经安装的所有包 |
-qi PACKAGE_NAME | 查询指定包的说明信息 |
-ql PACKAGE_NAME | 查询指定包安装后生成的文件列表 |
-qc PACKAGE_NAME | 查询指定包安装的配置文件 |
-qd PACKAGE_NAME | 查询指定包安装的帮助文件 |
-q --scripts PACKAGE_NAME | 查询指定包中包含的脚本 |
-qf PATH/TO/SOMEFILE | 查询指定文件是由哪个rpm包安装生成的,若未安装,需要查询其说明信息、安装后会生成的文件 |
<4>升级
参数 | 含义 |
---|---|
-Uvh PATH/TO/NEW_PACKAGE_FILE | 若已经安装旧版本则升级,否则安装 |
-Fvh PATH/TO/NEW_PACKAGE_FILE | 若已经安装旧版本则升级,否则退出 |
– oldpackage | 降级 |
<5>卸载:rpm -e PACKAGE_NAME
–nodeps:忽略依赖关系
<6>校验:rpm -V PACKAGE_NAME
<7>重建数据库
--rebuilddb:不管数据库是否存在,一定会重建数据库
--initab:初始化数据库,若数据库已经存在,直接初始化,否则建立并初始化数据库
<8>检验来源合法性和软件包完整性
rpm -K PATH/TO/PACKAGE_FILE
dsa.gpg:验证来源合法性,即验证签名。可以用–nosignature略过此项
sha1、md5:验证软件包完整性。可以用–nodigest略过此项
<9>使用rpm安装的特点
- 无法指定安装目录
- 存在依赖关系
- rpm要下载
三、yum(Yellowdog Update Modifier)
<1>使用yum的好处
- 解决rpm下载的问题
- 解决文件查询问题
- 解决rpm安装问题
- 解决rpm的依赖问题
<2>yum命令
参数 | 含义 |
---|---|
install PACKAGE_NAME | 安装指定包 |
search PACKAGE_NAME | 在网络上搜索包 |
info PACKAGE_NAME | 查询网络上的包的说明信息 |
remove/erase PACKAGE_NAME | 卸载指定包 |
repolist | 显示repo列表及其简要信息(参数:all/enabled[默认]/disabled) |
update_to | 升级为指定版本 |
provides/whatprovides | 查看指定文件或特性是由哪个包安装生成的 |
list | 列出指定参数内容,后面参数可以为:glob/all/available[可用的、仓库中有但尚未安装的]/updates[可用的升级]/installed[已装的] |
<3>自己构建yum源
可能有时候在使用系统自己原有的yum源会有下载不下来或者速度特别慢的情况,可以使用自己构建的yum源,你可以配置一个系统本地yum源或者使用镜像上的yum源。
这里以使用阿里云的镜像yum源为例,打开 https://opsx.alibaba.com/mirror ,看见centos,点击右侧的帮助,会弹出下图所示的窗口,按照上面的步骤来构建yum源。
1、备份原来的yum源
Linux系统的yum源放在/etc/yum.repos.d文件夹下,进入这个文件夹,然后备份CentOS-Base.repo文件,可以只更改文件后缀,只要文件后缀不是.repo即可。
cd /etc/yum.repos.d
mv CentOS-Base.repo ./CentOS-Base.repo.backup
2、删除/etc/yum.repos.d文件夹下的其他.repo文件,当然也可以不删除,不过要使用自己构建的yum源也就没必要留着。
rm -rf ./*.repo
3、下载网上的yum源
像上面的图片一样,如果主机安装了wget可以直接在终端运行帮助上面的代码,不然也可以直接在浏览器中打开帮助中给出的网页链接例如Centos6的yum源是这个网址:http://mirrors.aliyun.com/repo/Centos-6.repo ,当然其他的镜像有自己的帮助文档。
4、将下载后的yum源上传给Linux系统并放到配置文件中
mv Centos-6.repo /etc/yum.repos.d/Centos-6.repo
5、清理并构建缓存
clean
makecache
四、手动编译安装源码压缩包
<1>下载要安装的软件的源码压缩包并查看源码压缩包里的内容
<2>准备开发环境(编译环境)
这是我们编译源码的前提,我们要安装源码文件对应的编译环境,一般都要安装对应的工具和库,比如c的编译环境:
yum install gcc gcc-c++
<3>检查(依赖、兼容),预编译
<4>编译
<5>安装
在这里我们以安装Python-3.6.5为例子:
1、首先进入到Python的官网,鼠标移动到Downloads可以看到没有Linux系统的,说明只能自己编译源码,点击Source Code选项,进入源码下载页面,由于我这里要下载3.6.5版本的所以找到对应版本,看到gzip压缩包下载。
2、然后查看对应的压缩包内容,可以看到是.c和.h文件文件,说明开发环境是c的编译环境,将压缩包上传到Linux系统中。
3、在bash中安装编译环境和依赖的库。
yum install gcc gcc-c++ zlib* openssl*
4、解压压缩包然后进入解压后的文件夹
tar -zxvf Python-3.6.5.tar.gz
cd Python-3.6.5
5、查看文件夹里的内容发现configure文件,这个文件一般是预编译用的
./configure --help #查看文件的帮助,可以在里面看到怎么设置安装目录以及其他详细信息
./configure --prefix=/usr/local/Python-3.6.5/ --enable-optiminations #预编译文件,并且修改安装目录,如果文件夹存在则安装在指定文件夹下,否则创建文件夹并安装在该文件夹下
6、编译
make
7、安装
make install
8、配置环境变量
- 整个系统的环境变量配置文件:/etc/profile
- 当前用户的环境变量配置文件:~/.bashrc
一般我们都不修改系统环境变量,配置用户变量
配置环境变量有两种写法:
写法一:
vim ~/.bashrc
PATH=$PATH:/usr/local/Python-3.6.5/bin
保存退出
source ~/.bashrc
写法二:
vim ~/.bashrc
PYTHON_HOME=/usr/local/Python-3.6.5
PATH=$PATH:$PYTHON_HOME/bin
保存退出
source ~/.bashrc