当前位置: 首页 > news >正文

Linux下软件安装

一:YUM

1、什么是YUM

在CentOS系统中,软件管理方式通常有三种方式:rpm安装、yum安装以及编译安装。

编译安装,从过程上来讲比较麻烦,包需要用户自行下载,下载的是源码包,需要进行编译操作,编译好了才能进行安装,这个过程对于刚接触Linux的人来说比较麻烦,而且还容易出错。

好处在于是源码包,对于有需要自定义模块的用户来说非常方便。

==难度:编译安装>rpm安装>yum安装(有网络+yum源支持)。==

Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。

基于rpm包管理,能够从指定的服务器(yum源)自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

==应用商店== ==谷歌商店:默认的==

案例:想象一下,你在超市购物,YUM就像是一个购物助手,它会帮你找到所有需要的商品(软件包),并且确保你买到的商品是可以一起使用的(解决依赖关系)。

2、YUM的基本用法
(1)搜索软件包

使用 yum search 命令可以搜索软件包。

yum search 软件名称的关键词

案例:搜索阿里云仓库中的vim软件。

yum search vim
(2)为什么需要换源?

在使用YUM时,默认的YUM源可能会因为网络问题、速度慢或不稳定而导致安装和更新软件包的过程变得缓慢。换源就是将默认的YUM源替换为更快、更稳定的源。

形象解释:想象一下,你在一个城市的超市购物,超市的货物供应不稳定,常常缺货,导致你无法顺利购买到所需的商品。换源就像是你换到了一个更大的超市,这个超市的货物供应充足,价格合理,购物体验更好。

在中国,阿里云的YUM源通常比默认源更快,因此很多用户会选择将YUM源换成阿里云的镜像源。

(3)YUM源配置

YUM源配置文件所在路径 => /etc/yum.repos.d 文件夹。这个文件夹中包含了系统中所有的YUM源配置文件,每个文件都定义了一个或多个软件包源。

以下是一些常见的YUM源配置文件及其说明:

  • CentOS-Base.repo:这是默认的YUM源配置文件,包含了CentOS的主要软件包源。它提供了大多数用户所需的基本软件包。

    -rw-r--r--. 1 root root 1664 11月 23 2020 CentOS-Base.repo
  • CentOS-CR.repo:这个文件包含了CentOS的持续更新(CR,Continuous Release)源。它提供了最新的更新和修复,适合希望获得最新软件包的用户。

    -rw-r--r--. 1 root root 1309 11月 23 2020 CentOS-CR.repo
  • CentOS-Debuginfo.repo:这个文件包含了调试信息的源,主要用于开发和调试目的。它提供了软件包的调试信息,帮助开发者在调试时使用。

    -rw-r--r--. 1 root root  649 11月 23 2020 CentOS-Debuginfo.repo
  • CentOS-fasttrack.repo:这个文件包含了快速通道的源,提供了一些快速更新的软件包,适合需要快速获取更新的用户。

    -rw-r--r--. 1 root root  314 11月 23 2020 CentOS-fasttrack.repo
  • CentOS-Media.repo:这个文件用于配置本地媒体源,通常用于从光盘或USB驱动器安装软件包。

    -rw-r--r--. 1 root root  630 11月 23 2020 CentOS-Media.repo
  • CentOS-Sources.repo:这个文件包含了源代码的YUM源,适合需要编译软件包的用户。

    -rw-r--r--. 1 root root 1331 11月 23 2020 CentOS-Sources.repo
  • CentOS-Vault.repo:这个文件包含了旧版本的YUM源,适合需要访问旧版本软件包的用户。

    -rw-r--r--. 1 root root 8515 11月 23 2020 CentOS-Vault.repo
  • CentOS-x86_64-kernel.repo:这个文件包含了针对x86_64架构的内核源,适合需要特定内核版本的用户。

    -rw-r--r--. 1 root root  616 11月 23 2020 CentOS-x86_64-kernel.repo

通过这些配置文件,YUM能够从不同的源获取软件包,用户可以根据需要选择合适的源进行安装和更新。

==在YUM镜像源中添加阿里云镜像源。==

在更换YUM源之前,你需要了解两个常用的命令行工具:curlwget

  • curl:curl 是一个用于在命令行中与服务器进行数据传输的工具。它支持多种协议,包括HTTP、HTTPS、FTP等。使用 curl 可以方便地下载文件或与API进行交互。

  • wget:wget 是一个用于从网络上下载文件的命令行工具。它支持HTTP、HTTPS和FTP协议,能够在下载过程中自动处理重定向和断点续传。

接下来,你可以使用以下步骤将YUM源更换为阿里云的镜像源:

第一步:备份Centos-Base.repo这个源(更改后缀名.repo=>.repo.bak)
mv CentOS-Base.repo CentOS-Base.repo.bak
​
第二步:使用wget命令下载阿里云的镜像文件
wget -O /etc/yum.repos.d/Centos-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
选项说明:
-O:指定文件下载的位置以及名称
​
第三步:清理YUM缓存
yum clean all
​
第四步:重新建立缓存(让新YUM源生效)
yum makecache
(4)安装软件包

使用 yum install 命令可以安装软件包。

基本语法:

yum install 软件名称[选项]
​
选项:
-y:yes缩写,确认安装,不提示。
案例:使用yum命令安装vim编辑器。yum install vim -y
(5)卸载软件包

使用 yum remove 命令可以卸载软件包。

yum remove 软件名称[选项]
​
选项:
-y :yes缩写,确认卸载,不提示。

案例:把firefox火狐浏览器进行卸载操作。

yum remove firefox -y
(6)更新软件包

使用 yum update 命令可以更新软件包。

基本语法:

yum update 软件名称[选项]
​
选项:
-y :yes缩写,确认更新,不提示。

案例:把vim编辑器进行更新操作。

yum update vim -y
(7)查看已安装软件包

使用 yum list installed 命令可以查看已安装的软件包。

yum list installed
(8)清理缓存

使用 yum clean 命令可以清理缓存,释放空间。

yum clean all

二:源码安装的配置过程

http://jaist.dl.sourceforge.net/project/cmatrix/cmatrix/1.2a/cmatrix-1.2a.tar.gz

在Linux系统中,源码安装一共分为三步

第一步:配置过程(配置软件的安装路径)

第二步:编译过程(把软件由源代码编译成可以安装的程序)

第三步:安装过程(把编译后的程序进行安装)

./configure && make && make install
yum install gcc 
yum install openssl-devel

(1)、配置过程(定制)

# cd 软件源码包
# ./configure [选项]
# ./configure --help
​
--prefix=... Directories to put files in [/usr/local] 软件家目录
--bindir=... $prefix/bin        命令的目录
--etcdir=... $prefix/etc        配置文件的目录 也可能安装到系统/etc目录下 (httpd => /etc/httpd/httpd.conf)
--mandir=... $prefix/share/man man  文档路径
--locale=... $prefix/share/locale   语言编码
​
----------
./configure --prefix=/opt/cmatrix

(2)、编译过程

make

目录中可以看到很多 .c .h 结尾的文件,这个意味着这些文件底层是基于c/c++语言开发,这些源代码编译就需要gcc。

在Linux操作系统中,make主要功能就是将其他语言的源代码打包成Linux可以识别安装的程序。

编译过程需要一个gcc软件(开发工具)的支持!

(3)、安装过程

make install

将axel软件安装到/opt/axel目录下(下载软件,类似wget命令)

类似于windows中的迅雷等等软件,支持多线程下载

三:axel源码安装

第一步:获取axel多线程下载软件

第二步:上传axel软件包到Linux系统中

第三步:安装axel软件(源码安装三步走 --> 配置+编译+安装)

(1)、对软件进行解压缩操作

#tar -zxf axel-2.4.tar.gz
或
#tar -xf axel-2.4.tar.gz
​
tar -jxvf xx.tar.bz2

(2)、使用cd命令切换到axel目录中

# cd axe1-2.4

(3)、对axel软件进行配置

./configure --help
设置axel软件的安装路径为/opt/axel./configure --prefix=/opt/axel

(4)、对axel软件进行编译与安装

make
make install
​
或
​
make && make install
&&:逻辑与,如果make编译成功会立即执行右边的makeinstall安装程序,如果make编译失败,则以上程序会停止执行,然后抛出错误。

(5)、测试与使用

axel xx
​
bash: axel: 未找到命令...

出现以上问题的主要原因在于:我们没有采用默认的安装方式,所以导致当我们执行axel命令时,其找不到对应的软件。

which axel
​
/usr/bin/which: no axel in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

四:解决命令无法访问问题

第一种方式:采用软链接形式(类似windows中的快捷方式)
第二种方式:使用环境变量(重要,Linux中的环境变量)

(1)、使用软链接解决

cd /opt/axel/bin
​
解决方案:给/opt/axel/bin/axel创建一个快捷方式到/usr/local/bin
​
基本语法:
ln -s 源文件路径 软链接路径
ln -s /opt/axel/bin/axel /usr/local/bin/axel
​
axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-Cent0S-7

(2)使用环境变量解决

终端 => 命令 => 系统的环境变量(PATH=>/etc/profile)=> 一些命令的存放路径

axel多线程下载软件,通过源码的方式安装成功后,由于没有使用默认的安装路径,导致axel这个命令没有出现在系统的环境变量中,所以其会出现command not found。

查询当前系统的环境变量

echo $PATH
​
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/rbot/bin

把axel所在目录添加到环境变量

使用vim编辑/etc/profile文件,追加到最后一行
​
vim /etc/profile
​
export PATH=$PATH:/opt/axel/bin
​
source /etc/profile     =>      代表让以上配置立即生效
使用echo命令向/etc/profile文件中追加一行
echo 'export PATH=$PATH:/opt/axel/bin' >> /etc/profile
source /etc/profile

测试axel命令是否可以使用

axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-Cent0S-7

(3)、卸载源码安装的软件

第一步:进入到源码的安装包中
cd axel-2.4
make uninstall      =>  安装软件的安装包等程序
make distclean  =>  卸载编译与配置过程
​
第二步:删除软件的目录
rm -rf /opt/axel

五:本地YUM配置

使用光盘镜像作为YUM源仓库

下载很多软件,使用软件包作为YUM源仓库

使用光盘镜像作为YUM源仓库

第一步:在VMware系统中装在CentOS7.6系统的光盘镜像

第二步:把光盘挂载到某个目录下

cd ~
rm -rf /mnt/*
mount -o ro /dev/sr0 /mnt
选项说明:
-o:挂载方式ro代表以readonly=>只读的方式进行挂载rw代表以read/write=>读写的方式进行挂载#lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part├─centos-root 253:0    0   17G  0 lvm  /└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sr0              11:0    1  9.6G  0 rom  /mnt

卸载或解挂可以使用umount /mnt

第三步:把光盘挂载添加到开机启动文件中

chmod +x /etc/rc.localecho 'mount -o ro /dev/sr0 /mnt' >> /etc/rc.local

/etc/rc.local,属于系统的开机启动文件。系统启动后,会自动加载并执行这个文件

第四步:编写本地YUM仓库文件

cd /etc/yum.repos.d/
创建一个以*.repo结尾的文件,名称任意vim local.repo[local]
name=local yum
baseurl=file:///mnt
gpgcheck=0
enabled=1注:file://本地协议路径,后面跟仓库的具体路径yum clean allyum makecacheyum repolist all

yum仓库的标准格式

[仓库标识名称],名称任意,在一个文件中可以拥有多个标识

name=仓库名称

baseurl=仓库的路径,支持多种格式,file://本地路径,ftp://,http:// 或https://

gpgcheck=gpg密钥,值可以是0(代表不检测),1(代表检测,如果是1,下方还要定义一个gpgkey=密钥链接)

enabled=是否启动当前仓库,值可以0,也可以是1,默认为1,代表启动仓库

第五步:测试本地YUM仓库是否可用

yum install httpd -y

六:网络YUM源配置

1、网络YUM源的分类

使用比较知名平台的YUM源(阿里云、腾讯、清华)

有些特定软件(如Nginx、MySQL、Zabbix等等)需要根据官网文档自定义网络YUM源

2、使用知名平台的YUM源

阿里源:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

网易源:欢迎访问网易开源镜像站

搜狐源:Index of /

清华源:清华大学开源软件镜像站 | Tsinghua Open Source Mirror

腾讯源、华为源..

百度搜索 => 华为mirror镜像源

案例:配置阿里云的yum源

第一步:百度,搜索你想要的YUM源,进入官网,找到CentOS

阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

第二步:根据官网提示,配置阿里云的YUM源

# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
​
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
​
yum clean all
​
yum makecache

3、扩展:EPEL源配置

什么是EPEL源?

答:EPEL是对官网源的一个扩展。

CentOS-Base.repo文件 => 基础源(官方在带的YUM源)

epel.repo文件 => 扩展源,是对官方YUM源的一个补充

yum install epel-release -y

比如:会跑的小火车就是在epel源中

yum install sl -y
​
sl

4、特定软件的YUM源配置

比如特殊的几个软件,如Nginx、MySQL、Zabbix

Nginx: nginx nginx:Linux 软件包

MySQL: https://www.mysql.com/

Zabbix: Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution

找到官方文档,把YUM源配置,写入到一下文件中(repo文件)

#cd /etc/yum.repos.d
#vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/Sreleasever/Sbasearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

清理缓存:

yum clean all
yum makecache

安装Nginx:

yum install nginx -y

http://www.xdnf.cn/news/488053.html

相关文章:

  • C++ asio网络编程(7)增加发送队列实现全双工通信
  • Maven Deploy的依赖与引用方的依赖不同
  • 信奥赛-刷题笔记-队列篇-T4-P7912小熊的果篮
  • MySQL 数据库优化:InnoDB 存储引擎深度解析:架构、调优与最佳实践
  • 记录一个为打印高清而做投喂图像增强的例子
  • docker compose 启动指定的 service
  • MongoTemplate 基础使用帮助手册
  • 12条热门照片提示
  • XS9922C芯片:多能一体的视频处理强者,可p2p替代TP9930和TP9932,开启智能视觉新征程
  • Flask框架深度解析:蓝图、上下文机制与Jinja2模板引擎实战
  • ssh 配置了.ssh/authorized_keys 依旧需要密码的问题
  • 如何同时管理不同平台的多个账号?
  • 【第七节】ESP32-S3 霍尔传感器应用实战:磁场检测与蜂鸣器控制
  • 小学数学题批量生成及检查工具
  • PT2062单触控单输出LED调光IC
  • python报错:应为类型Union[str,int],但实际为None问题原因及解决方案
  • HGDB索引膨胀的检查与处理思路
  • 哈希表实现(1):
  • 【言语】刷题5(填空)
  • 2025-05-15 代码人生 - 精选文章周刊
  • Microsoft Azure 服务4月更新告示
  • 简化WPF开发:CommunityToolkit属性绑定与命令声明实战
  • 服务器死机了需要检查哪些问题
  • pojo层、dao层、service层、controller层的作用
  • C++(15):默认值(default)
  • 等离子模块【杀菌消毒】
  • 大群将至:通付盾推出多智能体协同平台Legion
  • mysql隔离级别的学习分享
  • python可视化:北方省市人口流动与春运数据综合分析5
  • Java项目使用Tomcat启动后JS文件中的中文乱码问题