Linux(CentOS)学习笔记(五)——软件安装和软件包管理

本文详细介绍了Linux CentOS系统中软件的安装方式,包括rpm命令的使用,如安装、查询、升级和卸载,以及如何检验软件包的完整性和合法性。此外,还探讨了yum的优点和其在解决依赖问题上的作用,同时讲解了如何构建自定义yum源。最后,文章阐述了手动编译安装源码压缩包的步骤,从下载源码到安装和配置环境变量。
摘要由CSDN通过智能技术生成

一、软件包

Linux中的软件包有以下几种:

  1. bin文件:后缀是.bin,作为可执行文件,适合所有的Linux发行版
  2. rpm包、yum:适合Redhat系列,当然包括CentOS
  3. 源码压缩包:适合所有Linux发行版,自行编译安装
  4. 官方已经编译好的,下载软件包就可以使用的,在Windows中常被称为绿色软件

二、rpm命令

<1>rpm包

来源:

  1. 阿里云的开源镜像: https://opsx.alibaba.com/mirror (根据不同系统自己选择对应的安装包,比如我这里选择的centos的: https://mirrors.aliyun.com/centos/6.10/os/x86_64/Packages/)
  2. 网易的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安装的特点

  1. 无法指定安装目录
  2. 存在依赖关系
  3. rpm要下载

三、yum(Yellowdog Update Modifier)

<1>使用yum的好处

  1. 解决rpm下载的问题
  2. 解决文件查询问题
  3. 解决rpm安装问题
  4. 解决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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值