Linux下软件安装实战

  • 熟悉软件安装方式

  • 学会使用源码安装

  • 配置yum源

Linux下软件安装方式

  • RPM包管理(需要单独解决依赖问题)

  • YUM包管理(需要有网络及YUM仓库的支持,会自动从互联网下载软件,自动解决依赖)

  • 源码安装(安装过程比较复杂,源码安装三步走。优点:定制性很强)

软件:主线版[最新版](mainline),稳定版(stable)

YUM

什么是YUM

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

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

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

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

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

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

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

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

YUM的基本用法
搜索软件包

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

yum search 软件名称的关键词

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

yum search vim

为什么需要换源?

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

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

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

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

安装软件包

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

基本语法:

yum install 软件名称[选项]

选项:

-y:yes缩写,确认安装,不提示。

案例:使用yum命令安装vim编辑器。

yum install vim -y

卸载软件包

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

yum remove 软件名称[选项]

选项:

-y :yes缩写,确认卸载,不提示。

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

yum remove firefox -y

更新软件包

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

基本语法:

yum update 软件名称[选项]

选项:

-y :yes缩写,确认更新,不提示。

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

yum update vim -y

查看已安装软件包

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

yum list installed

清理缓存

使用 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

配置过程(定制)

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

编译过程

make

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

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

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

安装过程

make install

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

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

axel源码安装

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

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

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

对软件进行解压缩操作

#tar -zxf axel-2.4.tar.gz

#tar -xf axel-2.4.tar.gz

tar -jxvf xx.tar.bz2

使用cd命令切换到axel目录中

cd axe1-2.4

对axel软件进行配置

./configure --help

设置axel软件的安装路径为/opt/axel

./configure --prefix=/opt/axel

对axel软件进行编译与安装

make

make install

make && make install

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

测试与使用

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中的环境变量)

使用软链接解决

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

使用环境变量解决

复制代码
终端 => 命令 => 系统的环境变量(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

卸载源码安装的软件

第一步:进入到源码的安装包中

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.local

echo '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 all

yum makecache

yum repolist all

yum仓库的标准格式

仓库标识名称\],名称任意,在一个文件中可以拥有多个标识 name=仓库名称 baseurl=仓库的路径,支持多种格式,file://本地路径,ftp://,http:// 或https:// gpgcheck=gpg密钥,值可以是0(代表不检测),1(代表检测,如果是1,下方还要定义一个gpgkey=密钥链接) enabled=是否启动当前仓库,值可以0,也可以是1,默认为1,代表启动仓库 第五步:测试本地YUM仓库是否可用 > yum install http -y ### 网络YUM源配置 #### 网络YUM源的分类 使用比较知名平台的YUM源(阿里云、腾讯、清华) 有些特定软件(如Nginx、MySQL、Zabbix等等)需要根据官网文档自定义网络YUM源 #### 使用知名平台的YUM源 阿里源:[阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区](https://opsx.alibaba.com/mirror "阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区") 网易源:[欢迎访问网易开源镜像站](http://mirrors.163.com/ "欢迎访问网易开源镜像站") 搜狐源:[Index of /](http://mirrors.sohu.com/ "Index of /") 清华源:[清华大学开源软件镜像站 \| Tsinghua Open Source Mirror](https://mirrors.tuna.tsinghua.edu.cn/ "清华大学开源软件镜像站 | Tsinghua Open Source Mirror") 腾讯源、华为源.. > 百度搜索 =\> 华为mirror镜像源 案例:配置阿里云的yum源 第一步:百度,搜索你想要的YUM源,进入官网,找到CentOS [阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区](https://developer.aliyun.com/mirror/ "阿里巴巴开源镜像站-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 #### 扩展:EPEL源配置 > 什么是EPEL源? > > 答:EPEL是对官网源的一个扩展。 CentOS-Base.repo文件 =\> 基础源(官方在带的YUM源) epel.repo文件 =\> 扩展源,是对官方YUM源的一个补充 > yum install eper-release -y 比如:会跑的小火车就是在epel源中 > yum install sl -y > > sl #### 特定软件的YUM源配置 比如特殊的几个软件,如Nginx、MySQL、Zabbix Nginx: [nginx](http://www.nginx.org "nginx") [nginx:Linux 软件包](https://nginx.org/en/linux_packages.html#RHEL "nginx:Linux 软件包") MySQL: [https://www.mysql.com/](https://www.mysql.com/ "https://www.mysql.com/") Zabbix: [Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution](https://www.zabbix.com/ "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

相关推荐
盛满暮色 风止何安4 小时前
IS-IS 中间系统到中间系统
服务器·网络·网络协议·安全·web安全·网络安全·智能路由器
斯普信专业组4 小时前
Apidog MCP服务器,连接API规范和AI编码助手的桥梁
运维·服务器·人工智能
wayuncn5 小时前
深度解析物理机服务器故障修复时间:影响因素与优化策略
运维·服务器·物理机·服务器租用·服务器托管·物理服务器·哈尔滨idc
一人一萧十只猫�5 小时前
Linux SSH 远程连接全攻略:从加密原理到实战配置(含图解)
linux·服务器·网络
人间不清醒ab5 小时前
Ubuntu ping网络没有问题,但是浏览器无法访问到网络
linux·运维·ubuntu
babytiger5 小时前
为 Windows 和 Ubuntu 中设定代理服务器的详细方法
linux·windows·ubuntu
黄暄5 小时前
Docker项目部署深度解析:从基础命令到复杂项目部署
运维·笔记·docker·容器·持续部署
默心5 小时前
centos把jar包配置成服务并设置开机自启
linux·centos·jar
秦jh_5 小时前
【Linux网络】传输层协议UDP
linux·运维·服务器·网络·udp