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

day7:软件包管理

一,软件包概述

软件包概述

软件包用于安装,升级,卸载一个软件

软件包类型

二进制包

源码经过了编译(而且成功了)后产生的包,二进制包是linux下默认的安装包

编译好的文件,直接使用,包.rpm

方便,但是古板,规定好了的,对计算机有一定的要求,就像官方英文翻译一样

源码包

源码包就是一大堆源代码程序,没有经过编译,所以使用的时候要先编译

没有编译的文件,要编译后才可以使用,包.tar.gz

不太方便,但是灵活,对任何计算机几乎都有效,就像你自己翻译英文一样

二,rpm安装

rpm概述

RPM(Red Hat Package Manager)是 Red Hat 开发的包管理工具,广泛应用于 RHEL(Red Hat Enterprise Linux)、CentOS、Fedora 等 Linux 发行版中。它用于安装、升级、卸载、查询和验证软件包。

获取rpm安装包的方式

  • 官方仓库:通过 Linux 系统自带的官方仓库获取 RPM 包,使用 yumdnf 等包管理工具。
  • 第三方仓库:例如 EPEL(Extra Packages for Enterprise Linux)等提供额外的软件包。
  • 下载 RPM 文件:从可信的第三方网站(如软件的官方网站)直接下载 .rpm 文件。
  • 自制 RPM 包:开发者可以根据软件的源码,打包生成自定义 RPM 包。

使用rpm安装(不常用,常用yum)

rpm 【选项】rpm包

  • -f:表示根据文件查找包,即指定的文件属于哪个已安装的 RPM 包。和q一起使用
  • -l:列出指定包中的文件。和q一起使用
  • -q【a查看所有】, --query:查询一个包。
  • -i, --install:安装一个包。
  • -v:显示更详细的信息。
  • -h:打印#,显示安装进度。
  • -U, --update:升级一个包。
  • -e, --erase:卸载一个包。
  • -V, --verify:校验一个包。

依赖关系

在使用rpm命令进行包的安装、卸载或升级时,需要注意包之间的依赖关系。如果遇到依赖问题,可以使用yum或dnf命令来自动处理依赖关系

总结

总的来说,rpm命令是一个功能强大的工具,用于在Linux系统上管理软件包。通过掌握其基本语法和常用选项,用户可以高效地完成软件包的安装、卸载、升级和查询等操作。

三,yum安装

yum概述

yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。

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

yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum源(国内)

### 阿里云镜像源
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1
### 腾讯云镜像源
baseurl=https://mirrors.cloud.tencent.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=https://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1
### 华为云镜像源
baseurl=https://repo.huaweicloud.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1
### 清华大学 TUNA 源
baseurl=http://linux.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://linux.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-7
enabled=1
### 中科大镜像源
baseurl=http://mirrors.ustc.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-7
enabled=1
### 网易(163)镜像源
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1
### 搜狐镜像源
baseurl=http://mirrors.sohu.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1
### 上海交大镜像源
baseurl=http://mirrors.sjtug.sjtu.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.sjtug.sjtu.edu.cn/centos/RPM-GPG-KEY-CentOS-7
enabled=1

yum仓库配置文件

位置:/etc/yum.repos.d/xxx.repo

这个文件以repo结尾,是yum的仓库配置文件,每次下东西系统都会进来,问问,在哪里下。

——————————————————————————————文件格式————————————————————————————————
[标识符]
#尽管每个文件都有名字,但是在使用时还是只认标识符
#是仓库的标识符,表示这是一个名为 "base" 的仓库。每个仓库都有一个唯一的标识符,以便 yum 能够区分不同的仓库。(当然也可以随便写,一般见名之意)没多大用,只有安装软件的时候显示,表示软件是从这个配置文件中的链接安装的
name=任意写
#仓库的名称,方便用户识别。就是解释这个仓库的,没什么用
baseurl=指定镜像服务器的地址列表或单个 http 地址。
#软件就是在这里面找的,其实就是个网址,换上我之前给的源就了
enabled=1
#enabled:是否启用该仓库,1 表示启用(默认),0 表示禁用。
#就像下游戏,可以在应用市场,也可以做taptap,仓库也是,可以同时有多个
-----------------------------下面的可以不用写-------------------
gpgcheck=1
#是否开启 GPG 验证,1 表示开启(默认),0 表示关闭
gpgkey=定义 GPG 密钥的地址。
#如果开启gpgcheck就会根据gpg密钥验证这个软件正不正规,建议关掉gpgcheck
failovermethod=roundrobin
#当有多个 baseurl 时选择镜像服务器的方式,priority 表示按顺序选择(不写默认),roundrobin 表示随机选择。
exclude=mysql* httpd*
#(用的很少)禁止某些软件包的安装和更新,可使用通配符,多个软件包之间用空格分隔。
注意:可以同时启用多个 yum 仓库(不建议)
  • 如果安装了 yum-plugin-priorities 插件,可以在 .repo 文件中通过 priority=n(其中 n 是一个整数)来设置仓库的优先级。数值越小,优先级越高。
  • 如果没有安装该插件,可以通过调整配置文件名的顺序来实现优先级,例如将优先级高的仓库配置文件命名为 01-base.repo,优先级低的命名为 99-epel.repo

本地yum源配置

所谓的本地,就是离线,既然是离线,就一定是本地保存好的,but,在哪里?自己下载?(可以,但是好麻烦)。我们安装虚拟机的时候,用了xxx.ios(这是linux的镜像盘,不是苹果),这个文件里有我们要的软件包,怎么操作?跟着我来吧

安装光盘

当你想要看好朋友的学习资料,大概不会用他的电脑吧,一定会拷贝下来,用u盘或者移动硬盘对吧?然后再放到自己电脑上。同样,使用系统光盘,是不是也要先安装呢?你也可以直接在原有的的设备上勾选“已连接”,不过无论如何都要重启,后面再说怎么不重启。

挂载光盘

ok,你现在插入了u盘,发现打不开?what???

别急,在linux上你要挂载,为什么,为了你计算机的安全,随意插入的新空间我不要,除非你告诉我,而且告诉我放哪里。

新命令mount挂载命令(以后会详细说,下载不用背)

mount   硬件(/dev/sr0)  挂载目录

一般在/mut中,建议在创建一个目录(chrom:可以是其他,这里这么做只是为了见名知意)放入创建的目录中。当然你可以放到任何地方,我就是这样想的

写配置文件

先看看包在哪里?

还记得怎么写配置文件吗?写个简单的,为了测试,我要然所有原有的配置都失效,与我打包所有并复制的其它文件夹备份,删除所有repo文件,写一个新的(测试完建议复制回来恢复)

[mydvd]
name=mydvd_yum
#注意地址不能有中文,所以我这个不可以,不够是这个原理,sorry
baseurl=file:///home/ly/桌面/a/Package
#baseurl:本地 RPM 包的目录。file://【绝对地址】 协议用于指向本地文件系统。
enbale=1

yum mackcache刷新一下

yum clean all把之前的老数据删除了

好了,完成:yum repolist 看看有哪些自己的yum配置文件吧

网络yum源配置

这还不简单,进入一repo文件,修改baseurl=xxxxx就可以了,就不练了,看看现成的。

yum命令

yum 【参数】【包名】

install :安装指定软件包

remove:卸载指定软件包

update:更新指定软件包,不指定就更新已安装软件包

list (availble/installed):查看可用/已安装软件包

search 【关键字】:按照关键字搜索软件包

info 【软件包】:显示软件包详细信息

clean all:清理所有yum缓存。

yum deplist 【软件包】:显示指定安装包依赖

yum group list:列出可用的软件包组。

yum group install [组名]:安装指定的软件包组。

yum group remove [组名]:删除指定的软件包组。

--version:显示yum的版本信息。

yum repolist 【all/库名】:显示启用的仓库列表,加all就显示所有仓库(包括禁用的),加的是库名,显示指定仓库的详细信息

四,源码安装

源码安装概述

源码包,是指哪些使用编译型语言编译的源文件(没有经过编译过的c文件),构成的一个压缩包。使用时要先解压,再编译,才可以使用。

好处在于,你可以自己编辑源文件代码,按照自己的需求写。在本机编译更加适配本机环境,删除时直接删除目录就可以了。

步骤编号步骤描述命令示例说明
1获取源码包wget http://example.com/source-package.tar.gz下载源码包文件(如 .tar.gz, .zip
2解压源码包tar -xzvf source-package.tar.gz使用 tar 解压 .tar.gz 文件
tar -xjvf source-package.tar.bz2使用 tar 解压 .tar.bz2 文件
unzip source-package.zip使用 unzip 解压 .zip 文件
3进入源码目录cd 【解压后的源码包目录】进入解压后的源码目录
4查看安装说明cat READMEcat INSTALL查看 READMEINSTALL 文件
5配置编译环境./configure --prefix=/usr/local(必要)生成 Makefile 文件,设置安装路径(或者说软件安装到哪个路径)
./configure --enable-feature启用某些功能
6编译源码make编译源码
make -j4【这是4核】多核编译
7安装编译好的程序sudo make install安装编译好的程序
8验证安装program_name --version检查安装是否成功
9清理编译文件(可选)make clean清理中间文件
10卸载软件make uninstall(在软件的家目录中执行)

案例:nginx

获取包

wget -c https://nginx.org/download/nginx-1.18.0.tar.gz

解压

进入安装目录

查看安装说明(可选)

配置选项(一般软件都是安装在/usr/local下的,使用源码安装,先提前创建一个目录)

安装时报错:提示缺少pcre依赖,安装:sudo yum install pcre pcre-devel(具体看自己的)

sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel make(我将所有的都提供了)

编译源码:make

安装软件:make install

查看是否安装

清理缓存或者make文件

使用nginx(在安装后的目录中找到sbin目录,执行nginx文件)

打开浏览器搜索网址:1270.0.1

关闭nginx服务


http://www.mrgr.cn/news/57551.html

相关文章:

  • 1.nginx安装【Docker】
  • 基于单片机的智能小区门禁系统设计(论文+源码)
  • 记录一个容易混淆的 Spring Boot 项目配置文件问题
  • informer学习笔记
  • JavaFX学习系列--第一章: 简单Fx界面
  • [Java基础] Lambda 表达式
  • 力扣247题详解:中心对称数 II 的多种解法与模拟面试
  • 自动粘贴神器,数据复制粘贴快速处理记事本
  • RK平台操作GPIO的两种方法
  • 爬虫中代理ip的选择和使用实战
  • HCIP--1
  • Java 网络下载文件输出字节流
  • 鸿蒙开发融云Demo消息列表
  • 顶层模块中定义一个数组,如何 通过端口将这个数组传递给所有需要它的子模块
  • Find My折叠车|苹果Find My技术与折叠车结合,智能防丢,全球定位
  • 2024年6月份北京深信服——蓝中护网面试经验分享
  • 博客搭建之路:hexo搜索引擎收录
  • 程序员35岁何必苟且,打造一人企业开启创业之路
  • 软考信息安全
  • c# grpc 保姆级教学搭建grpc框架 服务端、客户端
  • bcf的设计思想
  • 【2024工业3D异常检测文献】LSFA: 面向三维工业异常检测的自监督特征适配
  • 数据结构之栈
  • java 语言层面 Final 关键字和 Finally关键字的区别
  • Artificial Intelligence
  • 如何训练 RAG 模型