当前位置: 首页 > 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)的基本构造块和生命周期模型中的聚合。本讲将重点讨论如何将这些构造块和代码组织起来,探讨分层架构和六边形模型,以及如何组织代码结构。 二、工厂和资…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

字符串哈希+KMP

P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...