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

Linux——包源管理工具

一、概要

Linux下的包/源管理命令:主要任务就是完成在Linux环境下的安装/卸载/维护软件。

1.rpm 是最基础的rpm包的安装命令,需要提前下载相关安装包和依赖包。

2.yum/dnf (最好用)是基于rpm包的自动安装命令,可以自动在仓库中匹配安装软件和依赖包。

以上是安装指令,以下是安装源。

3光盘源是指的 安装系统时候的操作系统光盘,它里面有很多自带的常用软件安装包,定位于当前

4.局域网源是指本地局域网不便连接互联网,而且客户机都在局域网内,定位于网内自建仓库局部

5.互联网源是指当前主机可以直接外接互联网,通过外网提供的的仓库完成在线安装软件。

6.源码安装是指从互联网下载相关软件的源代码,在本机上进行配置,编译,安装的过程。

 二、离线管理rpm命令

rpm命令来自英文词组redhat package manager的缩写,中文译为“红帽软件包管理器”,

其功能是在Linux系统下对软件包进行安装、卸载、查询、验证、升级等工作,

常见的主流系统(如RHEL、Cent0s、Fedora等)都采用这种软件包管理器,

推荐用固定搭配“rpm        -ivh         软件包名"安装软件

而卸载软件则用固定搭配“rpm         -evh         软件包名”

语法格式:

rpm        参数        软件包名

使用实例:

rpm        -ivh        cockpit-185-2.el8.x86_64.rpm        #正常安装软件包,需要提前下载rpm文件

rpm        -evh        cockpit-185-2.el8.x86_64.rpm        #卸载

-i        安装软件包

-v        显示执行过程信息

-h        安装软件包时显示标记信息

rpm        -ivh        gthumb-3.12.4-1.1.x86 64.rpm        #安装需要依赖

rpm        -evh        --nodeps(--force强制卸h)        gthumb-3.12.4-1.1.x86 64.rpm        #卸载忽略依赖

三、本地源管理yum命令

该命令自动解决文件依赖关系,一次性安装所需全部软件,从指定的服务器自动下载、更新、删除软件包。

语法格式:        yum        参数        动作        软件包

常用参数:    

install安装软件包clean清理过期缓存
update更新软件包shell设置使用shell提示符
remove删除软件包localinstall安装本地软件包
list显示软件包的信息localupdate更新本地软件包
check-update检查有无可用的更新软件包rerolvedep显示软件包的依赖关系
search搜索指定软件包deplist显示软件包的依赖关系
info显示指定软件包的信息

参考示例:(无仓库时不能使用)

yum        clean        all         #清理原有仓库信息

yum        makecache        #建立最新的软件仓库信息缓存

默认源:/etc/yum.repos.d/redhat.repo

yum        (-y不提示)        install        httpd        #安装指定的服务及相关安装包


以上为命令,若没有搭建本地源,以上所有代码均无法使用。

四、本地光盘仓库搭建过程

1.虚拟机加载并连接系统安装光盘

2.挂在光盘到本地临时目录:

mount        /dev/sr0        /mnt/        #挂在光盘到本地临时目录

mount——挂载命令,可以将指定文件挂在到另一个位置

sr0是dev目录下的光盘文件

若成功,则/mnt/目录中为:

如果挂在失败,要主动断开        unmount        /mnt

3.如果有文件就备份本地原有配置

cd        /etc/yum.repo.d/        #进入本地配置目录

mkdir        bak        #创建一个备份目录

mv        *.repo        ./bak/        #将原来的repo资源拷贝到当前bak目录中

4.创建新的本地配置文件

注:要使用root用户        su        root

vim        local.repo        #创建本地配置文件

写入:

本地源配置信息
[RHEL9-BaseOS]
name=RHEL9-BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0[RHEL9-AppStream]
name=RHEL9-AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0

5.刷新缓存

yum        clean         all

yum        makcache

以上yum本地光盘元仓库创建成功

6.测试安装软件

yum        install        httpd

五、局域网源架设过程

局域网yum源配置:建设一个本地网络仓库给本地局域网用户提供下载安装。

互联网yum源配置:在线获取最新安装文件的通道。

1.环境搭建:

两台虚拟机:192.168.68.99        client

                      192.168.68.129       server

2.配置服务器端:提供yum安装服务

192.168.68.129       server

操作流程

su        root        #切换为管理员身份

yum        install        -y        httpd        #安装并启动httpd

setenforce        0        #关闭SELinux

getenforce        #查看当前情况        Permissive#关闭状态        Enforcing#开启状态

systemctl        stop        firewalld        #临时关闭防火墙

systemctl        status        firewalld        #查看防火墙状态,空圈为关闭,绿点为打开

q按键退出查看状态命令

httpd服务的目录在        var/www/html中

cd        var/www/html        #进入该目录

mkdir        rhiso        #创建httpd的工作目录

mount        /dev/sr0        var/www/html/rhiso        #将光盘挂载到rhiso

systemctl        restart      httpd.service        #  重启httpd

systemctl        status        httpd        #查看状态

在本地浏览器中输入本机ip/rhiso        http://192.168.68.129/rhiso/

                                                        或http://127.0.0.1/rhiso/        #本机回环地址

出现下面页面表示服务器端配置完成:

中文乱码解决方法:在/etc/httpd/conf/httpd.conf

配置文件中加入        IndexOptions        Charset=UTF-8

3.配置客户端:访问服务端的yum源

192.168.68.99        client

当在上一台机器已经配置好httpd后,我们选择同一网段内的其他机器配置yum源去访问此台服务器

测试一下客户机与服务端的联通情况        ping        192.168.68.129

su        root        #切换管理员

cd        /etc/yum.repos.d/

vim        network.repo        加入如下内容:

#本地局域网配置:vim network.repo文件中的内容
[RHEL9-BaseOS]
name=RHEL9-BaseOS
baseurl=http://192.169.68.129/rhiso/BaseOS
gpgcheck=0[RHEL9-AppStream]
name=RHEL9-AppStream
baseurl=http://192.168.68.129/rhiso/AppStream
gpgcheck=0

其中ip地址为服务端的IP地址

4.测试(客户端在服务器端下载)

yum        clean        all        #清理就缓存

yum        makcache        #建立新缓存

yum        repolist        #查看仓库列表

yum     install        telnet        #在服务器端下载telnet   

注意:用户端一定不能有本地源

五、建立第三方互联网络源

CSDN上收集的各个版本的REHL的镜像地址:

Redhat系列系统在线镜像源-CSDN博客

操作流程:

su        root

cd        /etc/yum.repo.d/

vim        aliyun.repo        #阿里云

写入以下内容:

#互联网源配置
[BaseOS]
name=BaseOS
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/os/
gpgcheck=0[AppStream]
name=AppStream
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/AppStream/x86_64/os/
gpgcheck=0

yum        makcache        #创建新缓存

验证能否安装:

yum        install        gcc        -y        #下载c语言编译器

gcc        hello.c        #编译事先准备好的c语言程序,编译完成后会生成一个可执行文件a.out

./a.out        #执行程序

yum        install        gthumb        #安装失败没有资源

#下载扩展源

yum        install        https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

再次下载就可以安装了

gthumb       test.png        #测试提前准备的图片

成功

yum        install        -y        sl        #有趣的玩具,ls写成sl时会跑出个小火车

yum        install        tmux        #多终端

yum        install        git        #管理控制

git        clone        https://github.com/dustinkirkland/hollywood.git        #克隆github上的文件

收尾:

cd        /etc/yum.repos.d

mkdir        ./bak

mv        local.repo        ./bak

mv        network.repo        ./bak

mv        redhat.repo        ./bak

六、源码管理命令

源码安装三部曲:

第一步:./configure(定制组件)

指定安装路径,例如:--prefiix=/opt/nginx-1.12

启用或禁用某项功能,例如L:--enable--ssl

和其它软件关联,例如:-with-pcre

检查安装环境,例如是否由编译器gcc,是否满足软件的依赖需求

检查通过后生成Makefile文件

第二步:make(生成程序)

执行make命令进行编译,可以使用-j指定CPU核心数进行编译

按Makefile文件进行编译,编译成可执行的二进制文件

生成各类模块和主程序

第三步:make        install

按照Makefile定义好的路径拷贝至安装目录中

举例练习源码包编译:(nginx)

0、先停止httpd服务(httpd与nginx都用的时80端口会有冲突)

systemctl        stop        httpd.services

1、基础环境准备:

编辑器:yum        -y        install        gcc        gcc-c++        make        wget

依赖包:yum        -y        install        zlib        zlib-devel        openssl        pcre        pcre-devel

2.下载安装包

cd        /usr/src

wget        http://nginx.org/download/nginx-1.12.2.tar.gz

3.解压源码包并进入相应的目录

tar        -zxvf nginx-1.12.2.tar.gz

cd        nginx-1.12.2

4.配置相关选项,并生成Makefile

./configure        --prefiix=/opt/nginx-1.12

5.编译并安装

make        #开始编译源码

make        install

6.建立软连接

ln        -s        /usr/src/nginx-1.12.2        /opt/nginx

7.测试效果

cd objs

./nginx

打开浏览器,输入127.0.0.1

成功

相关文章:

Linux——包源管理工具

一、概要 Linux下的包/源管理命令:主要任务就是完成在Linux环境下的安装/卸载/维护软件。 1.rpm 是最基础的rpm包的安装命令,需要提前下载相关安装包和依赖包。 2.yum/dnf (最好用)是基于rpm包的自动安装命令,可以自动…...

C++解决走迷宫问题:DFS、BFS算法应用

文章目录 思路:DFSBFSBFS和DFS的特点BFS 与 DFS 的区别BFS 的优点BFS 时间复杂度深度优先搜索(DFS)的优点深度优先搜索(DFS)的时间复杂度解释:空间复杂度总结:例如下面的迷宫: // 迷宫的表示:0表示可以走,1表示障碍 vector<vector<int>> maze = {{0, 0,…...

机器学习09-Pytorch功能拆解

机器学习09-Pytorch功能拆解 我个人是Java程序员&#xff0c;关于Python代码的使用过程中的相关代码事项&#xff0c;在此进行记录 文章目录 机器学习09-Pytorch功能拆解1-核心逻辑脉络2-个人备注3-Pytorch软件包拆解1-Python有参和无参构造构造方法的基本语法示例解释注意事项…...

BLE透传方案,IoT短距无线通信的“中坚力量”

在物联网&#xff08;IoT&#xff09;短距无线通信生态系统中&#xff0c;低功耗蓝牙&#xff08;BLE&#xff09;数据透传是一种无需任何网络或基础设施即可完成双向通信的技术。其主要通过简单操作串口的方式进行无线数据传输&#xff0c;最高能满足2Mbps的数据传输速率&…...

Linux 中的poll、select和epoll有什么区别?

poll 和 select 是Linux 系统中用于多路复用 I/O 的系统调用&#xff0c;它们允许一个程序同时监视多个文件描述符&#xff0c;以便在任何一个文件描述符准备好进行 I/O 操作时得到通知。 一、select select 是一种较早的 I/O 多路复用机制&#xff0c;具有以下特点&#xff…...

单片机-STM32 WIFI模块--ESP8266 (十二)

1.WIFI模块--ESP8266 名字由来&#xff1a; Wi-Fi这个术语被人们普遍误以为是指无线保真&#xff08;Wireless Fidelity&#xff09;&#xff0c;并且即便是Wi-Fi联盟本身也经常在新闻稿和文件中使用“Wireless Fidelity”这个词&#xff0c;Wi-Fi还出现在ITAA的一个论文中。…...

linux日志排查相关命令

实时查看日志 tail -f -n 100 文件名 -f:实时查看 -n:查看多少行 直接查看日志文件 .log文件 cat 文件名 .gz文件 zgcat 文件名 在日志文件搜索指定内容 .log文件 grep -A 3 “呀1” 文件名 -A&#xff1a;向后查看 3&#xff1a;向后查看行数 “呀1”&#xff1a;搜…...

每日一题-二叉搜索树与双向链表

将二叉搜索树转化为排序双向链表 问题描述 输入一棵二叉搜索树&#xff0c;将该二叉搜索树转换成一个排序的双向链表&#xff0c;要求空间复杂度为 O(1)&#xff0c;时间复杂度为 O(n)&#xff0c;并且不能创建新的结点&#xff0c;只能调整树中结点的指针指向。 数据范围 …...

【多视图学习】Self-Weighted Contrastive Fusion for Deep Multi-View Clustering

Self-Weighted Contrastive Fusion for Deep Multi-View Clustering 用于深度多视图聚类的自加权对比融合 TMM 2024 代码链接 论文链接 0.摘要 多视图聚类可以从多个视图中探索共识信息&#xff0c;在过去二十年中越来越受到关注。然而&#xff0c;现有的工作面临两个主要挑…...

ASK-HAR:多尺度特征提取的深度学习模型

一、探索多尺度特征提取方法 在近年来&#xff0c;随着智能家居智能系统和传感技术的快速发展&#xff0c;人类活动识别&#xff08;HAR&#xff09;技术已经成为一个备受瞩目的研究领域。HAR技术的核心在于通过各种跟踪设备和测量手段&#xff0c;如传感器和摄像头&#xff0…...

C语言:数据的存储

本文重点&#xff1a; 1. 数据类型详细介绍 2. 整形在内存中的存储&#xff1a;原码、反码、补码 3. 大小端字节序介绍及判断 4. 浮点型在内存中的存储解析 数据类型结构的介绍&#xff1a; 类型的基本归类&#xff1a; 整型家族 浮点家族 构造类型&#xff1a; 指针类型&…...

深入理解动态规划(dp)--(提前要对dfs有了解)

前言&#xff1a;对于动态规划&#xff1a;该算法思维是在dfs基础上演化发展来的&#xff0c;所以我不想讲的是看到一个题怎样直接用动态规划来解决&#xff0c;而是说先用dfs搜索&#xff0c;一步步优化&#xff0c;这个过程叫做动态规划。&#xff08;该文章教你怎样一步步的…...

单片机基础模块学习——数码管(二)

一、数码管模块代码 这部分包括将数码管想要显示的字符转换成对应段码的函数&#xff0c;另外还包括数码管显示函数 值得注意的是对于小数点和不显示部分的处理方式 由于小数点没有单独占一位&#xff0c;所以这里用到了两个变量i,j用于跳过小数点导致的占据其他字符显示在数…...

【大数据】机器学习----------强化学习机器学习阶段尾声

一、强化学习的基本概念 注&#xff1a; 圈图与折线图引用知乎博主斜杠青年 1. 任务与奖赏 任务&#xff1a;强化学习的目标是让智能体&#xff08;agent&#xff09;在一个环境&#xff08;environment&#xff09;中采取一系列行动&#xff08;actions&#xff09;以完成一个…...

flink写parquet解决timestamp时间格式字段问题

背景 Apache Parquet 是一种开源的列式数据文件格式,旨在实现高效的数据存储和检索。它提供高性能压缩和编码方案(encoding schemes)来批量处理复杂数据,并且受到许多编程语言和分析工具的支持。 在我们通过flink写入parquet文件的时候,会遇到timestamp时间格式写入的问题。…...

redis实现lamp架构缓存

redis服务器环境下mysql实现lamp架构缓存 ip角色环境192.168.242.49缓存服务器Redis2.2.7192.168.242.50mysql服务器mysql192.168.242.51web端php ***默认已安装好redis&#xff0c;mysql 三台服务器时间同步&#xff08;非常重要&#xff09; # 下载ntpdate yum -y install…...

正则表达式中常见的贪婪词

1. * 含义&#xff1a;匹配前面的元素零次或者多次。示例&#xff1a;对于正则表达式 a*&#xff0c;在字符串 "aaaa" 中&#xff0c;它会匹配整个 "aaaa"&#xff0c;因为它会尽可能多地匹配 a 字符。代码示例&#xff08;Python&#xff09;&#xff1a…...

CF 339A.Helpful Maths(Java实现)

题目分析 输入一串式子&#xff0c;输出从小到大排列的式子 思路分析 如上所说核心思路&#xff0c;但是我要使用笨方法&#xff0c;输入一串式子用split分割开&#xff0c;但是此时需要用到转义字符&#xff0c;即函数内参数不能直接使用“”&#xff0c;而是“\\”。分割开后…...

SQL 指南

SQL 指南 引言 SQL(Structured Query Language,结构化查询语言)是一种用于管理关系数据库系统的标准计算机语言。自1970年代问世以来,SQL已经成为了数据库管理和数据操作的事实标准。本文旨在为初学者和有经验的数据库用户提供一个全面的SQL指南,涵盖SQL的基础知识、高级…...

DDD架构实战第七讲总结:分层模型和代码组织

云架构师系列课程之DDD架构实战第七讲总结:分层模型和代码组织 一、引言 在前几讲中,我们介绍了领域驱动设计(DDD)的基本构造块和生命周期模型中的聚合。本讲将重点讨论如何将这些构造块和代码组织起来,探讨分层架构和六边形模型,以及如何组织代码结构。 二、工厂和资…...

Python “字典” 实战案例:5个项目开发实例

Python “字典” 实战案例&#xff1a;5个项目开发实例 内容摘要 本文包括 5 个使用 Python 字典的综合应用实例。具体是&#xff1a; 电影推荐系统配置文件解析器选票统计与排序电话黄页管理系统缓存系统&#xff08;LRU 缓存&#xff09; 以上每一个实例均有完整的程序代…...

(一)QT的简介与环境配置WIN11

目录 一、QT的概述 二、QT的下载 三、简单编程 常用快捷键 一、QT的概述 简介 Qt&#xff08;发音&#xff1a;[kjuːt]&#xff0c;类似“cute”&#xff09;是一个跨平台的开发库&#xff0c;主要用于开发图形用户界面&#xff08;GUI&#xff09;应用程序&#xff0c;…...

在 Windows 系统上,将 Ubuntu 从 C 盘 迁移到 D 盘

在 Windows 系统上&#xff0c;如果你使用的是 WSL&#xff08;Windows Subsystem for Linux&#xff09;并安装了 Ubuntu&#xff0c;你可以将 Ubuntu 从 C 盘 迁移到 D 盘。迁移过程涉及导出当前的 Ubuntu 发行版&#xff0c;然后将其导入到 D 盘的目标目录。以下是详细的步骤…...

vue2的$el.querySelector在vue3中怎么写

这个也属于直接操作 dom 了&#xff0c;不建议在项目中这样操作&#xff0c;不过我是在vue2升级vue3的时候遇到的&#xff0c;是以前同事写的代码&#xff0c;也没办法 先来看一下对比 在vue2中获取实例是直接通过 this.$refs.xxx 获取绑定属性 refxxx 的实例&#xff0c;并且…...

GPSd定时检测保活TCP GPS源

为了在 TCP GPS 源丢失连接时自动重新连接&#xff0c;可以编写一个监控脚本&#xff0c;定期检查 gpspipe 输出中的 TCP 源数据是否存在。如果检测到丢失&#xff0c;则使用 gpsdctl 或直接命令重新添加 TCP 源。 1、工具 检查并安装必要工具&#xff0c;本例需要使用 gpspi…...

IDEA中Maven使用的踩坑与最佳实践

文章目录 IDEA中Maven使用的踩坑与最佳实践一、环境配置类问题1. Maven环境配置2. IDEA中Maven配置建议 二、常见问题与解决方案1. 依赖下载失败2. 依赖冲突解决3. 编译问题修复 三、效率提升技巧1. IDEA Maven Helper插件使用2. 常用Maven命令配置3. 多模块项目配置4. 资源文件…...

使用 Python 调用 OpenAI 的接口初识

使用 Python 调用 OpenAI 的接口非常简单&#xff0c;以下将结合实际代码示例和使用场景进行详细讲解&#xff0c;步骤如下&#xff1a; 文章目录 1. 安装 OpenAI 官方库2. 准备 API Key3. 基本使用示例&#xff1a;调用 ChatGPT**代码示例&#xff1a;****运行结果&#xff1a…...

2025 最新flutter面试总结

目录 1.Dart是值传递还是引用传递&#xff1f; 2.Flutter 是单引擎还是双引擎 3. StatelessWidget 和 StatefulWidget 在 Flutter 中有什么区别&#xff1f; 4.简述Dart语音特性 5. Navigator 是什么&#xff1f;在 Flutter 中 Routes 是什么&#xff1f; 6、Dart 是不是…...

【MQ】RabbitMq的可靠性保证

消息队列中的可靠性主要是分为三部分&#xff1a; 消息不丢失&#xff1a;确保消息从生产者发送到消费者消息不丢失消息不重复&#xff1a;确保消息不被重复消费消息顺序性&#xff1a;确保消费的顺序性 解决方案主要有以下几部分&#xff1a; 消息不丢失 生产者确认机制持久…...

STM32 GPIO配置 点亮LED灯

本次是基于STM32F407ZET6做一个GPIO配置&#xff0c;实现点灯实验。 新建文件 LED.c、LED.h文件&#xff0c;将其封装到Driver文件中。 双击Driver文件将LED.c添加进来 编写头文件&#xff0c;这里注意需要将Driver头文件声明一下。 在LED.c、main.c里面引入头文件LED.h LED初…...