回炉重造五--软件管理

news2024/11/16 0:04:50

1.软件管理

1.1软件包中的文件分类

  • 二进制文件
  • 库文件
  • 配置文件
  • 帮助文件

1.2包查询–rpm

-a:所有包
-p:针对尚未安装的程序包文件做查询工作
-l:查看指定的程序包安装后生成的所有文件
-i:查看包的信息
#常用的查询方法
-qa/q/qi

2、yum和dnf

2.1 yum/dnf工作原理

  • yum/dnf是基于C/S模式
  • yum服务器存放的rpm包和相关包的元数据库
  • yum客户端访问yum服务器进行安装或查询等

2.1.1yum的实现过程

1、先在yum服务器上创建yum repository(yum 仓库),在仓库中事先存储众多的rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)
2、当yum客户端利用yum/dnf工具进行安装包时,会自动下载repodate中的元数据,查询元数据是否存在相关包及依赖性并自动从仓库中找到相关包下载并安装

2.2 yum客户端配置

2.2.1 yum客户端配置文件

/etc/yum.conf  #为所有仓库提供公共配置
/etc/yum.repos.d/*.repo  #为每个仓库提供配置文件
[root@localhost yum.repos.d]# cat CentOS-Base.repo 
[base]  
name=centos  #仓库名
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ #仓库URL
gpgcheck=1 #是否对安装包做校验  (0表示不检查,1表示检查)
enabled=1  #0表示关闭,1表示开启
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7  #检查仓库key的URL

2.2.2yum的常用命令

1、yum repolist #显示仓库列表
2、yum provides Package  #查命令来自哪个安装包
3、yum  history  #显示或使用事务历史
4、yum  makecache   #创建元数据缓存
5、yum  clean     #删除缓存数据
6、yum deplist     #列出软件包的依赖关系

2.2.3 搭建yum私有仓库

在这里插入图片描述

1、环境初始化

  • 时间同步
  • 关闭 防火墙和selinux

2、搭建yum仓库(这里挂载光盘源为例)

1、挂载光盘
[root@yum-server ~]#mkdir  /data
[root@yum-server ~]#mount /dev/sr0 /data/
2、下载httpd服务
[root@yum-server ~]#yum -y install httpd
[root@yum-server ~]#systemctl start httpd && systemctl enable httpd  #设置服务开机自启动
#创建存放本地光盘源的目录
[root@yum-server ~]#mkdir /var/www/html/repo
#检查http服务是否起来
[root@yum-server ~]# ss -ntlp|grep http
LISTEN     0      511       [::]:80                    [::]:*                   users:(("httpd",pid=2891,fd=4),("httpd",pid=2890,fd=4),("httpd",pid=2889,fd=4),("httpd",pid=2517,fd=4),("httpd",pid=2516,fd=4),("httpd",pid=2515,fd=4),("httpd",pid=2413,fd=4),("httpd",pid=2412,fd=4),("httpd",pid=2411,fd=4),("httpd",pid=2409,fd=4),("httpd",pid=2408,fd=4))
3、把本地厂仓源上传至/var/www/html/repo #这里有两个方法:第一个方法直接把光盘源挂载到/var/www/html/repo目录,但是一旦服务器重启后就要重新挂载,故不推荐使用;第二个方法,先把本地光盘源挂载到一个指定目录(/data),然后把仓库的数据全部拷贝到/var/www/html/repo目录下,这样即使服务器重启也不影响本地源的使用。
cp -a /data/* /var/www/html/repo/  #访问http://172.17.8.102/repo是否能打开

4、yum服务器配置本地源
[root@yum-server ~]# cat /etc/yum.repos.d/centos.repo 
[CentOS]
name=CentOS
baseurl=file:///var/www/html/repo
enabled=1
gpgcheck=0
注意:先安装个包测试本地源是否可用

5.yum客户端配置yum源
[root@yum-client yum.repos.d]# cat  centos.repo 
[BaseOS]
name=CentOS
baseurl=http://172.17.8.102/repo
enabled=1
gpgcheck=0
[root@yum-client yum.repos.d]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识                                                                源名称                                                                状态
BaseOS                                                                CentOS                                                                4,070
repolist: 4,070

3、编译安装

3.1 编译源码的项目工具

  • C、C++的源码编译:使用 make 项目管理器
    configure脚本 --> Makefile.in --> Makefile
  • 相关开发工具:
    autoconf: 生成configure脚本
    automake:生成Makefile.in
  • java的源码编译: 使用 maven

3.2编译安装的准备工作

  • 开发工具:make ,gcc
  • 开发环境:开发库(glibc:标准库),头文件,可安装开发包组 Development Tools
  • 安装软件相关的依赖包

3.3、编译安装的步骤

  1. 下载并解压包到指定的目录

  2. 运行configure脚本,生成Makefile文件 (指定安装的位置和启用的特性)

    1、安装路径的设定
    --prefix=/PATH #指定安装位置,默认的路径为/usr/local
    --sysconfdir=/PATH #配置文件按装位置
    
  3. make

  4. make insatll

注意:可以把二进制目录程序导入至PATH环境变量中

实例:编译安装tree

1、下载安装并解压到指定的路径
[root@yum-server ~]#mkdir /app
[root@yum-server app]# wget http://mama.indstate.edu/users/ice/tree/src/tree-2.1.0.tgz
[root@yum-server app]# tar -xvf tree-2.1.0.tgz
[root@yum-server ~]# cd /app/tree-2.1.0/
2、生成Makefile文件
[root@yum-server tree-2.1.0]# ll Makefile  #解压后发现tree包自带Makefile文件,这里就不需执行生成Makefile文件的步骤,直接修改Makefile文件
-rw-r--r-- 1 4437 users 2941 417 15:02 Makefile
[root@yum-server tree-2.1.0]# vim  Makefile
PREFIX=/app/tree-2.1.0  #安装包的路径(只需修改路径即可)

CC=gcc
INSTALL=install

VERSION=2.1.0   #版本
TREE_DEST=tree
DESTDIR=${PREFIX}/bin  
MAN=tree.1
3、编译
[root@yum-server tree-2.1.0]#make
4、安装
[root@yum-server tree-2.1.0]#make install
注意:为了使用方便创建tree启动文件的软链接或者修改环境变量
[root@yum-server tree-2.1.0]#ln -s /app/tree-2.1.0/bin/tree  /usr/local/bin

4、Ubuntu软件管理

  • dpkg:类似于centos的rpm
  • apt:类似于centos的yum
  • apt源的配置文件:/etc/apt/sources.list

Ubuntu和centos没什么区别,这里就不做过多的介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/439704.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库基础篇 《5. 排序与分页》

目录 1. 排序数据 1.1 排序规则 1.2 单列排序 1.3 多列排序 2. 分页 2.1 背景 2.2 实现规则 2.3 拓展 1. 排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC ( ascend ) : 升序 DESC ( descend ) : 降序 ORDER …

【Java 数据结构】栈的实现及相关OJ题

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

Flutter 通过 VS code 连接 Android 模拟器(Windows)

环境配置 Flutterhttps://flutter.cn/docs/get-started/install/windowsAndroid Studiohttps://developer.android.google.cn/studioVS code安装Flutter插件https://flutter.cn/docs/get-started/editor?tabvscode夜神模拟器https://www.yeshen.com 注意事项 Flutter安装之…

第五章_Redis事务

是什么 官网 能做什么 一个队列中,一次性、顺序性、排他性的执行一系列命令 Redis事务 VS 数据库事务 1 单独的隔离操作 Redis的事务仅仅是保证事务里的操作会被连续独占的执行,redis命令执行是单线程架构,在执行完事务内所有指令前是不可…

【浅学 Linux】

浅学 Linux 一、 Linux1. 目录2. 虚拟机的设置2.1 克隆与快照 3.系统与设置命令3.1 用户相关命令3.2 用户组3.3 管理用户组内成员3.4 日期管理3.5 显示用户3.6 id命令&sudo命令3.7 进程相关的命令top 查看进程ps 查看进展kill 杀死进程 4. Linux目录管理4.1 关机与重启命令…

RIP协议(路由信息协议)简介

一.动态路由简介 1.动态相对静态路由来说,找路更灵活,相互传递 2.分类: 二.RIP协议简介 1.三个版本RIPV1和RIPV2 (在IPV4中使用), RIPNG (在IPV6中使用) 2.原理简介 三.配置 1.启用Rip 并指定进程ID (进程ID 只具有本地意义…

即插即用! | 国防科大联合慕尼黑工业大学提出新型解耦头 TSCODE: 引入yolov5/yolov7助力目标检测器轻松涨点!

1.Task-Specific COntext DEcoupling, TSCODE 介绍 论文:https://arxiv.org/pdf/2303.01047.pdf 本文提出了一种新颖的即插即用的特定于任务的上下文解耦头(Task-Specific COntext DEcoupling, TSCODE),通过进一步解开两个任务的特征编码来提升网络整体的性能 TSCODE整体的…

SYSU程设c++(第九周)函数对象、友元函数、友元类

函数对象: 如果一个类定义了operator()运算符函数,则可以使用该类的对象名为函数名调用这个函数. 函数对象是一个对象,但调用形式和普通函数调用一样,因此取名叫函数对象 (注意operator()先有个括号,接着才是括号(参数…

XHR 和 AJAX 的结合 - API 测试

大家好,之前一期介绍了怎样通过工具类进行对API 接口测试,这一期将演示如何手写一个 Ajax的请求。 什么是 XHR ? 全称为 XMLHttpRequest ,它是浏览器内置的对象,使得 JavaScript 可以发送 HTTP 请求。 什么是Ajax ? Ajax是一种用…

Ubuntu用户权限、查看文件路径、防火墙

一、Ubuntu用户权限 1、设置root用户密码 sudo passwd root 新的 密码: 重新输入新的 密码: passwd:已成功更新密码2、普通用户赋予root权限 修改 /etc/sudoers 文件 su root vim /etc/sudoers把用户加入到root组 # root用户下操作 # -…

Elasticsearch 整合机器学习强化排序

作者:彭晟,2023 年 Elastic 开发者大会讲师 概述 Elasticsearch 整合机器学习强化排序, 介绍如何将机器学习预测能力迁移至 ES 内部,增强排序能力, 构建一个高性能,分布式搜排一体系统,并通过落地更多复杂模型特征和更…

[操作系统安全]缓冲区溢出

一、C栈帧结构 函数调用内存中的三个区域,代码区、静态数据区、动态数据区(压栈和清栈就是在这个区域完成的)。CPU中有三个寄存器,分别是eip、ebp和esp。eip永远指向代码区中将要执行的下一条指令,执行方式包括顺序执行…

NumberPicker分析(一)

NumberPicker分析(一) NumberPicker可实现连续滚动的字符串选择&#xff0c;其实现方式很有借鉴的意义 以最基本的使用方式为例&#xff0c;在layout中布局&#xff1a; <NumberPickerandroid:id"id/number_picker"android:layout_width"wrap_content"…

Visual Studio 2019 C# 上位机入门(1):制作一个简单应用

Visual Studio 2019下载安装步骤可以看&#xff1a;https://blog.csdn.net/weixin_44788542/article/details/114271126 这里不赘述&#xff0c;默认电脑上已经安装好了。 1、打开安装好的Visual Studio后&#xff0c;选择创建新项目。 2、找到选择C#下面的Windows 窗体应用&…

PCIe Protocol Basics

目录 1、PCIe Layered Architecture 2、Packet Movement 3、Simplified Layer Model 4、Layers and Packedt Generation 5、Detailed Layer Model 6、Transaction Layer 7、TransactionLayer Packet 8、TLP Header Overview 9、Data Link Layer 10、Data Link Layer Pa…

Vue 样式绑定

文章目录 Vue 样式绑定Vue classclass 属性绑定数组语法 Vue.js style(内联样式) Vue 样式绑定 Vue class class 与 style 是 HTML 元素的属性&#xff0c;用于设置元素的样式&#xff0c;我们可以用 v-bind 来设置样式属性。 Vue.js v-bind 在处理 class 和 style 时&#x…

php+vue+mysql医院医护人员医生排班系统

本医护人员排班系统管理员&#xff0c;医护。管理员功能有个人中心&#xff0c;医院信息管理&#xff0c;医护信息管理&#xff0c;医护类型管理&#xff0c;排班信息管理&#xff0c;排班类型管理&#xff0c;科室信息管理&#xff0c;投诉信息管理。医护人员可以修改自己的个…

Unity WebGL监听是否进入全屏模式

今天遇到一个需求打包成WebGL之后要当做一个iframe&#xff0c;嵌入到别的网页中&#xff0c;其中遇到两个难题。 1.要增加一个全屏模式。 2.全屏的时候使用unity中的title&#xff0c;非全屏的时候要使用网页本身的title。 全屏一开始使用webkitRequestFullScreen&#xff…

python+vue 家庭理财管理系统

本论文对家庭理财管理系统的发展背景进行详细的介绍&#xff0c;并且对系统开发技术进行介绍&#xff0c;然后对系统进行需求分析&#xff0c;对家庭理财管理系统业务流程、系统结构以及数据都进行详细说明。 1.系统功能完整性&#xff1a;根据系统每一个功能模块&#xff0c;都…

维度云工业品进销存ERP解决行业6大销售痛点

01 销售了多少?成本毛利多少? 如果不使用ERP软件进行管理&#xff0c;则需要手动记录和计算销售额和成本&#xff0c;并根据这些数据手动计算毛利润。这种方法可能会导致错误和时间浪费&#xff0c;并且很难应对规模扩大的情况。因此&#xff0c;通常建议企业使用专业的管理…