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

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的配置可能会更加复杂,需要更多的时间和精力。
 

相关文章:

  • 常熟做网站下载百度app免费下载安装
  • 做网站一般做多大的爱站工具包的主要功能
  • 哪个素材网站做美工最好seo投放营销
  • 属于网络营销站点推广的是网站搭建一般要多少钱
  • 山东省两学一做网站快速排名官网
  • 建设部网站最新政策企业策划
  • 【AI论文】从跨领域视角重新审视强化学习在大型语言模型推理中的应用
  • 【实时Linux实战系列】基于实时Linux的音频处理应用开发
  • BGP边界网关协议
  • 深度图聚类DGC—Paper Notes
  • Windows所有系统自带.NET Framework版本win7,win10,win11预装.NET版本
  • CommunityToolkit.Mvvm 重构激光直写控制软件
  • Jenkins 常用定时构建脚本
  • 电商导购app平台的缓存策略与性能优化方案:架构师的实践经验
  • 将Python Tkinter程序转换为手机可运行的Web应用 - 详细教程
  • 激光束修复手机屏任意层不良区域,实现液晶线路激光修复原理
  • wordpress Contact Form 7表单插件设置使用教程
  • Hoare逻辑与分离逻辑:从程序验证到内存推理的演进
  • 智能光学计算成像技术与应用
  • 鸿蒙Next仓颉开发语言中的数据类型总结分享
  • 初识Tomcat
  • 6、做中学 | 三年级下期 Golang值类型相互转换
  • 好用的图标库和字体库
  • 《中国电信运营商骨干网:历史、现状与未来演进》系列 第五篇:新玩家入局——中国广电CBNNET如何构建全国一张网?
  • 在pypi中,yank某个包是什么意思
  • docker start mysql失败,解决方案