Liunx操作系统笔记2

Linux下的包/源管理命令:主要任务是完成在Linux环境下安装软件。
1.rpm 是最基础的rpm包的安装命令,需要提前下载相关安装包和依赖包。
2.yum/dnf是基于rpm包的自动安装命令,可以自动在仓库中匹配安装软件和依赖包。
3.光盘源 是指的 安装系统时候的操作系统光盘,它里面有很多自带的常用软件安装包,定位于当前主机。
4.局域网源·是指本地局域网不便连接互联网,而且客户机都在局域网内,定位于网内自建仓库局部使用。
5.互联网源 是指当前主机可以直接外接互联网,通过外网提供的的仓库完成在线安装软件。
6.源码安装 是指从互联网下载相关软件的源代码,在本机上进行配置,编译,安装 的过程。

离线管理命令
rpm:rpm命令中文译为“红帽软件包管理器,其功能是在Linux系统下对软件包进行安装、卸载、查询、验证、升级等工作常见的主流系统(如RHEL、CentOS、Fedora等)都采用这种软件包管理器,推荐用固定搭配“rpm   -ivh "  软件包名”安装软件,而卸载软件则用固定搭配" rpm.-evh "软件包名。

语法格式:rpm 参数 软件包名

常用参数:
-a  显示所有软件包    -c  仅显示组态配置文件
-d  仅显示文本文件      -e  卸载软件包     
-p  显示指定的软件包信息     -q  显示指定软件包是否已安装       
-R 显示软件包的依赖关系      -s 显示文件状态信息
-f  显示文件或命令属于哪个软件包      -U  升级软件包
-h  安装软件包时显示标记信息     -v  显示执行过程信息
-vv  显示执行过程详细信息         -i  安装软件包
-l  显示软件包的文件列表
使用示例:
rpm -ivh   cockpit   #正常安装软件包,需要提前下载rpm包文件
rpm  -qa       #  显示系统已安装过的全部RPM软件包
rpm  -qa  |  grep cockpit  # 过滤出其中某一个包
rpm  -qa  --last   # 列出所有已安装软件包,按照最近安装或者更新时间排序
rpm  -ql cockpit   #查询某个软件的安装路径
rpm  -qi cockpit   #查看包的信息
rpm  -qf  /sbin/ifconfig  # 查看某一个程序来自哪个安装包
rpm -qc rsync   # 查看安装的软件的配置文件位置
rpm -qR docker-ce   # 查看安装软件的依赖包
rpm -evh cockpit   #卸载通过RPM软件包安装的某个服务
rpm -e --nodeps coclpit   #卸载软件包,忽略其依赖项
rpm -Uvh cockpit   #升级某个软件包
rpm -Uvh --force cockpit-185-2.el8.x86_64.rpm  #强制安装软件包,即使存在版本冲突或者其他问题
如果需要依赖,可以下载依赖并将依赖和程序一起安装
sudo rpm -ivh 主程序.rpm 依赖1.rpm 依赖2.rpm .........

^] 出现表示telnet 连接目标服务器和端口成功。
^] 不是输入的信息,是按下ctrl + l 会自动输入这个符合并退出telnet连接
quit  整体退出当前控制环境

本地源管理命令
yum: yum命令功能是在Linux系统中基于RPM技术进行软件包的管理工作。yum技术通用于RHEL、CentOS、Fedora、OpenSUSE等主流系统,可以让系统管理人员交互式地自动化更新和管理软件包,实现从指定服务器自动下载、更新、删除软件包的工作。yum软件仓库及命令能够自动处理软件依赖关系,一次性安装所需的全部软件,无须烦琐的操作。

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

常用参数:install    安装软件包        clean 清理过期的缓存
shell     设置使用的shell提示符     check-update 检查是否有可用的更新软件包
resolvedep    显示软件包的依赖关系       localinstall   安装本地软件包
update 更新软件包     remove 删除软件包
localupdate   更新本地软件包      deplist   显示软件包的依赖关系
info   显示指定软件包的描述和概要信息
list    显示软件包的信息     search 搜索指定软件包

参考示例:
yum clean all   #清理原有的软件仓库信息缓存
yum  makecache  #建立最新的软件仓库信息缓存
yum install  httpd   #安装指定的服务及相关软件包
yum update httpd  #更新指定的服务及相关软件包
yum remove  httpd  #卸载指定的服务及相关软件包
yum grouplist  #显示可安装的软件包组列表
yum list   #列出所有可安装的软件清单
yum info httpd  #显示指定服务的软件信息
yum check-update  #列出所有可更新的软件清单
yum update   #安装所有更新软件
yum search httpd  #使用YUM查找软件包
yum list installed  #列出所有已安装的软件包
yum info installed  #列出所有已安装的软件包信息

yum本地源实现过程及原理:
先在yum服务器上创建 yum  repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用 yum/dnf 工具进行安装时会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。



yum需要依赖于环境,依赖于服务端和客户端,允许跨网络。
(1)服务端需要的两个文件:
        RPM包(Packages文件夹中)
        元数据(repodata文件夹:目录 (软件的目录),软件的依赖关系,软件的位置)
(2)客户端的配置文件中:
        baseurl=地址一定要写到这两个文件夹repodata和packages的上级目录
        最终形成两个文件夹Packages(包文件夹一般取名packages)和repodata(元数据文件夹)
(3)仓库类型:
        光盘的仓库基本仓库:比较常用的
        epel扩展仓库:比较新
主配置文件:cat /etc/yum.conf
默认的yum仓库 是centos官方的yum源,需要联网才可以使用。 ls /etc/yum.repos.d/

局域网yum源配置:建设一个本地网络仓库给本地局域网用户提供下载安装。
第三方yum源配置:在线获取最新安装文件的通道。

1.局域网Web方式yum源配置:
web服务器提供yum安装服务:
yum install -y httpd      #安装并启动httpd
setenforce 0     #关闭SELinuX#.查看当前状态
getenforce       #查看当前状态 
Permissive表示关了   Enforcing表示没关
systemctl    stop   firewalld     #临时关闭防火墙
systemctl status firewalld    #查看防火墙状态,空圈表示关闭,绿点表示开启
systemctl  start  httpd    #启动httpd     
systemctl status  httpd     #查看httpd是否启动,查看完毕用q键退出

httpd服务的目录文件在  /var/www/html
进入该目录,创建文件夹rhiso,挂载光盘到rhiso
mount /dev/sr0  var/www/html/rhiso
在浏览器输入本机ip/rhiso,比如:http://127.0.0.1/rhiso/ 出现下面页面代表配置完成


中文乱码解决方法 在 /etc/httpd/conf/httpd.conf 配置文件中加入 IndexOptions Charset=UTF-8

客户端访问服务器的yum源:
当在上一台机器已经配置好httpd后,我们选择同一网段内网其他机器配置yum源去访问此台服务器
如果使用拿不到ip地址,是因为我们都是同一个虚拟机拷贝的,会出现地址冲突
mv /var/lib/NetworkManager /var/lib/NetworkManager.bak       #网络接口备份
reboot   #重启虚拟机机器,设备在重启阶段会自动创建一个新的接口
有ip地址后,测试一下,当前客户机是否与服务器联通情况,ping 192.168.x.x #测试当前主机是否与服务器连接畅通
cd /etc/yum.repos.d/

vim local.repo 加入如下内容:
[RHEL9-BaseOS]
name=RHEL9-BaseOS
baseurl=http://172.16.80.63/rhiso/BaseOS
gpgcheck=0
[RHEL9-Appstream]
name=RHEL9-Appstream
baseurl=http://172.16.80.63/rhiso/AppStream
gpgcheck=0

yum clean all #清理旧缓存
yum makecache #建立新缓存
yum repolist #查看仓库列表


源码管理命令
源码包的安装
        编译需要编译环境,开发环境,开发库,开发工具。
        常用的编译环境有c、c++、perl、java、python5种
        c环境的编译器:gcc(GNU C Complier)
        c++环境的编译器:g++
        make(进行编译的动作)编译命令:c、c++的统一项目管理工具,编译时有可能调用gcc也有可能调用g++。
        使用makefile文件定义make按何种次序去编译源程序文件中的源程序
源码安装三部曲(常见):
第一步: ./configure(定制组件)
1.指定安装路径,例如 – prefix=/opt/nginx-1.12
2.启用或禁用某项功能, 例如 --enable-ssl
3.和其它软件关联,例如–with-pcre
4.检查安装环境,例如是否有编译器 gcc,是否满足软件的依赖需求
5.检测通过后生成Makefile文件
第二步: make (生成程序)
1.执行make命令进行编译, 可以使用-j指定CPU核心数进行编译
2.按Makefile文件进行编译, 编译成可执行二进制文件
3.生成各类模块和主程序
第三步: make install
1.按Makefile定义好的路径拷贝至安装目录中

上面介绍的源码三部曲不能百分百通用于所有源码包, 也就是说源码包的安装并非存在标准安装步骤,但是大部分源码安装都是类似的步骤
建议:
拿到源码包解压后,然后进入到目录找相关的帮助文档,通常会以INSTALL或者README为文件名

源码包编译实例
下面通过编译安装nginx来深入理解源码包安装
1.基础环境准备 [root@localhost ~]# 
编译器:yum -y install gcc gcc-c++ make wget
依赖包:yum -y install zlib zlib-devel openssl pcre pcre-devel
2.下载源码包(源码包一定要上官方站点下载,其他站点不安全)
 [root@localhost ~]# cd /usr/src
 [root@localhost src]# wget http://nginx.org/download/nginx-1.12.2.tar.gz
3.解压源码包,并进入相应目录
[root@localhost src]# tar -zxvf nginx-1.12.2.tar.gz
[root@localhost src]# cd nginx-1.12.2
4.配置相关的选项,并生成Makefile
[root@localhost nginx-1.12.2]# ./configure --prefix=/opt/nginx-1.12.2
5.编译并安装
[root@localhost nginx-1.12.2]# make #开始编译源码
[root@localhost nginx-1.12.2]# make install #开始安装程序
6.建立软链接
[root@localhost nginx-1.12.2]# ln -s /opt/nginx-1.12.2 /opt/nginx
7.测试效果
systemctl stop httpd    #停止Apache
cd obj
./nginx    #启动nginx
打开浏览器,输入127.0.0.1

可能出现的错误:
1、not found ./configure: error: C compiler cc is not found
解决方案
[root@localhost ~]# yum -y install gcc gcc-c++ make
2./configure: error: the HTTP rewrite module requires the PCRE library.
解决方案
[root@localhost ~]# yum install -y pcre-devel
3./configure: error: the HTTP gzip module requires the zlib library.
解决方案:
[root@localhost ~]# yum -y install zlib-deve
4./configure: error: SSL modules require the OpenSSL library.
解决方案
[root@localhost ~]# yum -y install openssl-devel
5.error: ‘struct crypt_data’ has no member named ‘current_salt’
 cd.current_salt[0] = ~salt[0];
解决方案
vi src/os/unix/ngx_user.c
将26行 **cd.current_salt[0] = ~salt[0];**注释掉
6、ngx_http_script.c:698:18: error: cast between incompatible function
//解决方案
进入objs目录下修改Makefile文件
CFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter **-
Werror** -g
将 **- Werror** 去掉

扩展:
在选择Web服务器时,Nginx和Apache都是备受推崇的选择。然而,对于许多开发者和管理员来说,选择哪一个可能会成为一个难以解决的问题。因此,我们需要对两者进行比较,以确定哪一个更适合我们的需求。
首先,Nginx以其高效的性能而闻名。它是一个轻量级的Web服务器,可以处理大量并发连接。
相比之下,Apache是一个成熟的Web服务器,但它在处理并发连接时可能会出现性能瓶颈。
因此,如果您需要处理大量并发连接,Nginx可能是更好的选择。
其次,Nginx具有更好的负载均衡功能。它可以在多个服务器之间均衡地分配流量,以提高性能和可靠性。Apache也可以实现负载均衡,但相对来说要更为复杂。
最后,Nginx的配置文件比Apache更为简单和易于理解。这意味着您可以更快地配置服务器并更快地上线。相比之下,Apache的配置可能会更加复杂,需要更多的时间和精力。
 

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

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

相关文章

企业级RAG系统架构设计与实现指南(Java技术栈)

企业级RAG系统架构设计与实现指南(Java技术栈) 开篇:RAG系统的基本概念与企业应用价值 在当今快速发展的AI技术背景下,检索增强生成(Retrieval-Augmented Generation, RAG) 已成为构建智能问答、知识库管…

【Rust http编程】Rust搭建webserver的底层原理与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

4 Geotools坐标参考系与转换

在地理信息系统 (GIS) 开发中,坐标参考系统 (Coordinate Reference System, CRS) 是核心概念之一。无论是处理地图投影、坐标转换,还是在 Spring Boot 应用中管理空间数据,理解和正确使用 CRS 都至关重要。本文将围绕 GeoTools 库&#xff0c…

docker start mysql失败,解决方案

文章目录 1.查看端口占用情况2.关闭7767进程3.再次检查4.运行docker start mysql 1.查看端口占用情况 sudo netstat -tanlp | grep :33062.关闭7767进程 sudo kill -9 77673.再次检查 进程已关闭 4.运行docker start mysql 正确启动 备注:可能要关闭防火墙

SQL关键字三分钟入门:DELETE —— 删除数据

在数据库操作中,除了添加和修改记录外,我们有时还需要删除不需要的记录。例如: 清除不再使用的用户账号;删除已完成并归档的订单;移除测试时插入的数据。 这时候就需要用到 SQL 中非常基础但极其重要的关键字 —— D…

electron 全量更新

electron-builder.yml配置更新地址 # 配置自动更新的信息 publish:provider: generic # 更新服务提供者url: http://xxx.xxxx.com/pc/xxx-xx# 更新的地址服务器地址 会自动读取latest.yml 下的版本号比较 检测更新方法autoUpdater.js// src/main/autoUpdater.jsimport { app, d…

《大模型 Agent 应用实战指南》第2章:商业目标与 Agent 能力边界定义

在任何技术项目,特别是像大模型 Agent 这样具有创新性和复杂性的项目启动之初,明确清晰的商业目标是成功的基石。这不仅仅是技术团队的职责,更需要产品、运营、销售甚至高层管理者的深度参与。一个明确的目标能确保所有团队成员步调一致,资源有效分配,并最终衡量项目的成功…

提供稳定可靠的自助共享空间系统,支撑客户无人自助门店运营不错数据,历程感想

以技术产品研发系统为主,为客户提供自助共享空间系统解决方案,适用于共享棋牌室,共享麻将室,共享台球室,共享KTV,共享舞蹈室等场景,以下是其中一位客户真实门店运营数据,第一家店本月…

Golang单例实现

Go语言中,实现单例模式的方式有很多种。单例模式确保一个类只有一个实例,并提供一个全局访问点。Go语言没有类的概念,但是可以通过结构体、函数和包级变量来实现类似的功能。 懒汉实现 type Product interface {DoSomething() }type single…

JVM元空间(Metaspace)详解及其工作流程

JVM元空间(Metaspace)详解与工作流程分析 元空间概述 元空间(Metaspace)是Java虚拟机(JVM)在HotSpot VM 1.8及以后版本中引入的,用于替代永久代(PermGen)的内存区域。它主要存储类的元数据信息,包括: 类的结构信息(如方法、字段…

【JAVA】idea中打成jar包后报错错误: 找不到或无法加载主类

排查步骤 首先要排查的是,将jar文件打开,查看里面的内容是否完整是否有META-INF/MANIFEST.MF是否有MANIFEST.MF里面类路径的目录排查路径里面是否有class文件,如主类 com.example.Main 对应的 class 文件应位于 com/example/Main.class 常见…

Fisco Bcos学习 - 开发第一个区块链应用

文章目录 一、前言二、业务场景分析:简易资产管理系统三、智能合约设计与实现3.1 存储结构设计3.2 接口设计3.3 完整合约代码 四、合约编译与Java接口生成五、SDK配置与项目搭建5.1 获取Java工程项目5.2 项目目录结构5.3 引入Web3SDK5.4 证书与配置文件 六、业务开发…

软件设计模式选择、判断解析-1

前言 解析是我个人的理解,相对来说我觉得是能对上定义的逻辑的 目录 一.单选题 1.设计模式的两大主题是(  )  解析:无 2.下列模式中,属于行为型模式的是() 解析: 排除A和D,剩下的观察者的“观察”…

【编程基本功】Win11中Git安装配置全攻略,包含Git以及图形化工具TortoiseGit

1 摘要 今天田辛老师给大家带来了一份超实用的博客,手把手教你安装并配置 Git 及其图形化界面 TortoiseGit,从官网下载到最终完成配置,每一个步骤都给大家讲得明明白白,还配有相应的截图,即使是新手小白也能轻松上手&…

细谈QT信号与槽机制

转自个人博客 信号与槽是我个人认为QT中最牛的机制之一,最近没有其他的内容可写,今天就来细细总结一下这个信号与槽机制。 1. 信号与槽机制概述 信号与槽机制可以理解为QT中的一种通信手段,在运行相关代码前,分别声明信号和槽&a…

Docker Swarm 与 Kubernetes 在集群管理上的主要区别

Docker Swarm 和 Kubernetes 是两种流行的容器编排工具,它们都可以用于部署、管理和扩展容器化应用,但在集群管理方面有明显的差异。 下面从多个维度对比它们在集群管理上的主要区别: ✅ 一、总体定位 项目Docker SwarmKubernetes官方支持D…

【StarRocks系列】查询优化

步骤参考官网 分析查询 | StarRocks StarRocks-Profile分析及优化指南 StarRocks-Profile分析及优化指南 - 经验教程 - StarRocks中文社区论坛

软测八股--测试理论 1 测试基础

软件测试? 发现程序中的侧屋执行程序工程 目的:不仅是找出错误,还要分析错误产生原因和错误分布。检查开发如阿健过程出现的bug,使开发人员及时修改。测试只能说明软件中存在错误 目标:尽可能发现多的错误。一个好的…

mfc与vs成功在xp系统所需做的修改

目录 前言一、MFC程序 inet_pton 、CT2A 未声明问题1)问题1:inet_pton :undeclared identifier - inet_pton未声明2)问题1:CT2A :undeclared identifier - CT2A未声明 二、VS程序 使用事件、委托问题1&…

SpringMVC系列(三)(请求处理的十个实验(上))

0 引言 作者正在学习SpringMVC相关内容,学到了一些知识,希望分享给需要短时间想要了解SpringMVC的读者朋友们,想用通俗的语言讲述其中的知识,希望与诸位共勉,共同进步! 本系列会持续更新!&…