Linux07--usr目录及软件安装
一 重要目录之/usr
# /usr 安装第三方软件的目录
1./usr/local 主要用来安装软件的目录
2./usr/bin和/usr/local/bin 主要用来存放第三方 二进制命令文件的目录
二 linux安装文件的三种方式
1 rpm安装
# 1 RPM
是Red-Hat Package Manager(RPM软件包管理器)的缩写,软件比较稳定,但版本偏低
# 2 rpm包获取
# 2.1 从Linux系统的ISO镜像中获取 软件包可能存在版本偏低情况
# 从本地的ISO镜像光盘(u盘),挂载镜像
mount /dev/cdrom /opt/
mount /dev/sr0 /opt/ # /dev/cdrom 就是软连接指向的 /dev/sr0
# 直接挂载 本地的ISO镜像文件
mount -o loop /xxx.iso /opt
# -o loop 用来把一个文件当做硬盘分区,挂接上系统
# 查看光盘里的rpm包
ls /opt/Packages/
# 2.2 网上下载rpm包
华为centos-7安装包的镜像源:https://repo.huaweicloud.com/centos/7/os/x86_64/Packages
下载zsh的连接:https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/zsh-5.0.2-34.el7_8.2.x86_64.rpm
# 2.3 联网从yum仓库里获取rpm包
# 3 rpm命令管理rpm包 的缺点:
需要自己找到rpm包,并且手动解决包的依赖性关系
ps:实际情况下,很难分辨缺少什么依赖包
# 4 安装软件
rpm -ivh [软件包名称]
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm
eg: rpm -ivh zsh-5.0.2-34.el7_8.2.x86_64.rpm
warning: zsh-5.0.2-34.el7_8.2.x86_64.rpm: Header...
Preparing... ################################# [100%]
Updating / installing...
1:zsh-5.0.2-34.el7_8.2 ################################# [100%]
# 软件包名称解读
zsh : 名称
5.0.2 : 版本号
34 : 构建/发布 次数
el7 : 软件包适用的操作系统版本 Release
8.2.x86_64 : 适用于64位操作系统
.rpm : 扩展名
# 查看自己当前平台
uname -m
x86_64
cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
# 5 更新软件
rpm -Uvh [软件包名称]
# 6 卸载软件
rpm -e [软件包名称]
eg: rpm -e zsh
# 7 查询软件
rpm -q [软件包名称] # 查看该软件包是否安装
rpm -qa # 查看当前系统中所有已安装的软件包
rpm -qi [软件包名称] # 查询系统中已安装包的描述信息
rpm -ql [软件包名称] # 查看指定安装包中包含的所有文件
rpm -qc [软件包名称] # 查看指定安装包的配置文件
rpm -qf [文件路径] # 查看系统中指定文件所属的软件包
# 若再加上-p选项,表明查询的是 未安装的rpm包信息
eg: rpm -qip /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
# 8 查询软件的eg:
rpm -q zsh
package zsh is not installed
rpm -q gpm-libs-1.20.7-6.el7.x86_64
gpm-libs-1.20.7-6.el7.x86_64
rpm -qa | grep php # 检索系统中已经安装有关php的软件包
rpm -ql python
/usr/bin/pydoc
/usr/bin/python
/usr/bin/python2
/usr/bin/python2.7
/usr/libexec/platform-python
/usr/share/doc/python-2.7.5
/usr/share/doc/python-2.7.5/LICENSE
/usr/share/doc/python-2.7.5/README
/usr/share/man/man1/python.1.gz
/usr/share/man/man1/python2.1.gz
/usr/share/man/man1/python2.7.1.gz
rpm -qf /usr/sbin/ifconfig
net-tools-2.0-0.25.20131004git.el7.x86_64
# 9 额外选项
--nomd5 # 不检验软件包的签名
--nodeps # 忽略依赖性安装软件,安装后软件有可能无法使用,最好是解决依赖性后再安装
eg: rpm -e dos2unix --nodeps # 忽略依赖关系
--force # 强制安装软件包,只有安装和升级可以强制执行
# 10 rpm默认安装路径:
/etc # 一些设置文件放置的目录 如/etc/crontab
/usr/bin # 一些可执行文件
/usr/lib # 一些程序使用的动态函数库
/usr/share/doc # 一些基本的软件使用手册与帮助文档
/usr/share/man # 一些man page文件
2 yum安装
### 1 Yum介绍 全程:Yellow dog Updater, Modified
是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器
基于RPM包管理,能够从指定的服务器(yum仓库) 自动下载RPM包并且安装
可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
优点:可以自动解决安装包的依赖 (也就是说安装包安装的时候,自动将依赖包提前安装)
缺点:无法自定义安装
# yum仓库
yum仓库(yum源) 存放了所有相关软件包的一个文件夹
且该文件夹下必须要有一个文件记录了本文件夹所包含的软件包依赖关系
### 2 yum命令常用选项
# 2.1 查看yum仓库
yum repolist # 查询可用仓库
yum repolist all # 查看包括 已启用或禁用的 所有仓库状态
# 关闭与启用仓库: 本质:都是在修改repo文件中的enable的值 0 不启用 1 启用
yum-config-manager --disable epel # 关闭仓库epel
yum-config-manager --enable epel # 启用仓库epel
# 2.2 查看软件
yum list # 查询可用仓库中 所有的软件包
yum grouplist # 查询可用仓库中的软件组
yum search [软件包] # 在可用仓库中搜索相关的软件包
yum list installed # 查询所有已安装的软件包
eg: yum list installed | grep 'mysql'
yum provides /usr/sbin/ifconfig # 查询命令所属的软件包,可以不加路径,只写命令名字
与rpm -qf的区别在于yum provides后可以只跟命名名
# 2.3 安装软件
yum install [安装包的名称]
选项:-y # 非交互式 表示不提示,默认确认
eg: yum install nginx
yum groupinstall "开发工具" -y # 安装软件组,一个软件组中包含了多个软件包
yum groups install "开发工具" -y # 同上
# 2.4 卸载软件
yum remove [软件包名称]
选项:-y # 非交互式 表示不提示删除,默认确认
yum groupremove "开发工具" -y. # 卸载软件组
# 2.5 更新软件
yum update [软件包]
1.跟软件包,则更新软件包
2.不跟软件包,则更新整个操作系统的软件包
yum check-update # 检查可以更新的软件包
# 2.6 缓存 指的将yum仓库的元数据缓存下来,下次安装时省去了检索过程,安装速度可以加快
yum clean all # 清理 元数据缓存
yum makecache # 制作 元数据缓存
vim /etc/yum.conf # yum的配置文件 默认软件包下载安装后会自动删除
keepcache=0 # 是否开启软件包缓存 (0:不保存 1:保存)
cachedir=/var/cache/yum/$basearch/$releasever # 指定软件包缓存目录 (yum下载的软件包下载存放的路径)
# $basearch ==x86_64, $releasever ==7 是yum的软件变量,不是系统变量
# 2.7 历史记录
yum history # 查看执行过的yum命令历史记录
yum history info ID号 # 查看具体某一条yum命令的详细信息
yum history undo ID号 # 撤销执行过的历史命令
### 3 yum安装软件的执行逻辑
第一步:执行yum install nginx 安装命令
第二步:yum去到/etc/yum.repos.d/ 这个目录中 # repos :repository的缩写 n. 仓库、存储库
第三步:根据目录中 依次找所有以.repo结尾的文件里的baseurl连接,去寻找对应的软件包
第四步:下载软件 到 cachedir 缓存目录中
第五步:安装所有的软件(rpm -ivh)
第六步:检测是否安装完毕并返回
### 4 yum源仓库文件: 在/etc/yum.repos.d/ 目录下,以.repo结尾的文件
vim .repo
[源仓库的名称] # 名称不能中文
name=local # 源仓库的简介(必须)
baseurl=file:///opt # 源仓库的地址(必须) 可以是http:// https:// ftp:// file://
gpgcheck=0 # 检查安装的rpm是否是合法的 1:验证 0:不验证
enabled=1 # 是否启用仓库,默认就是启用的 1:启用 0:不启用
# 注:baseurl指向的仓库地址,该目录下的子目录一级 必须有一个repodata目录
2.1 yum添加远程源--epel源
# 案例:yum添加epel源 epel源是CentOS扩展包的仓库
# 方式一:直接下载社区 或者 软件官方的源仓库配置文件 epel.repo文件
# 方式二:自己写epel.repo文件,把源仓库地址 baseurl指向网络源仓库的地址即可
# 1.切换目录
cd /etc/yum.repos.d/
# 2.编辑文件 (新增epel.repo文件--epel源仓库)
vim epel.repo
[epel]
name="epel源"
baseurl=https://repo.huaweicloud.com/epel/7/x86_64/
gpgcheck=0
# 3.更新源缓存
yum clean all
yum makecache
2.2 搭建本地yum仓库,且远程可访问
### 1 准备工作:linux系统常见优化
# 1.修改IP
sed -i 's#.200#.50#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]
systemctl restart network
# 2.关闭selinux /etc/selinux/config
# 临时关闭
setenforce 0
# 永久关闭
vi /etc/selinux/config
SELINUX=disabled
或 sed -i 's#^SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config
# 3.关闭默认的防火墙
systemctl disable --now firewalld
disable : 禁用
enable : 启用
--now : 立即执行
### 2 yum仓库目录结构
仓库目录:
-Packages :软件安装包的目录
-repodata :软件依赖关系文件的目录
### 3 搭建步骤
# 1.创建目录,充当仓库
mkdir /yumrepo
# 2.在仓库中创建Packages目录,用于存放软件包
cd /yumrepo
mkdir Packages
# 3.下载软件安装包到Packages目录中
cd /yumrepo/Packages
wget https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/zip-3.0-11.el7.x86_64.rpm
# 注:
通常运维 在集群化部署时,不是直接自己去下载rpm包
而是正常去yum安装软件,并 保留缓存rpm包 的配置打开 # 即 /etc/yum.conf 中的keepcache=1
然后就把配置中 cachedir 缓存目录所有的rpm包,放进Packages中
find /var/cache/yum -type f -name "*.rpm" | xargs -I {} mv {} /yumrepo/Packages/
# 4.建立依赖关系
1.安装建立依赖关系的命令
yum install yum-utils createrepo
2.初始化,建立yum源的依赖关系 # createrepo [仓库的路径]
createrepo /yumrepo/ # 注:会在仓库目录中创建repodata目录,主要用来存放yum依赖关系的。
3.检查
cd /yumrepo/
ll repodata/
# 5.编写yum源 将源仓库地址指向私有仓库
cd /etc/yum.repos.d/
vim local.repo
[local]
name=本地yum源
baseurl=file:///yumrepo # 本地的文件作为url访问,必须以file协议开头 file:// + 文件路径
gpgcheck=0
# 6.更新源缓存
yum clean all
yum makecache
# 正常前6步,已经可以本地使用该仓库,但为了能够远程访问使用仓库,需接着配置以下步骤
# 7.安装远程软件,提供远程访问服务
1.恢复base源和epel源 # 之前为了测试本地源生效,将这两个源,移动到backup目录中了 ( mv *.repo backup/ )
cd /etc/yum.repos.d/
mv backup/* .
### 远程访问方式一: 使用Nginx代理静态资源,走的是http协议 超文本传输协议 ***常用 因为浏览器支持
2.安装nginx web服务软件
yum install nginx -y
3.修改nginx的配置文件,使其能够代理yumrepo仓库的远程服务
vim /etc/nginx/conf.d/autoindex.conf # yum安装Nginx的配置文件
或vim /etc/nginx/nginx.conf
/usr/local/nginx/nginx.conf # 编译安装Nginx的配置文件
1.将目录索引的配置参数 添加到 配置文件的 # http{ server{中} }
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
2.修改nginx代理的目录 配置文件的 # http{ server{ location{root 值} } }
root /yumrepo;
4.启动nginx服务
systemctl start nginx
5.测试nginx 浏览器访问本机的公网ip
http://192.168.15.201/
### 远程访问方式二: 使用ftp服务,走的是ftp协议 文件传输协议
2.安装ftp服务
yum install vsftpd -y
3.修改vsftpd的配置文件,修改指定的共享文件夹 # 默认是共享 /var/ftp/
# 懒得修改配置了,直接把源仓库文件 移动或拷贝 默认共享文件夹中
mv /yumrepo /var/ftp/
4.启动ftp服务
systemctl start vsftpd
systemctl status vsftpd # 查看ftp状态 确保开启
systemctl enable vsftpd # 开机自启动ftp服务
5.测试ftp ie浏览器访问本机的公网ip
ftp://192.168.15.201/
# 8.重新修改 或 其他主机添加 local yum源
1.隐藏其他源
mv CentOS-Base.repo backup/
mv epel.repo backup/
2.修改local源,使其支持远程访问
cd /etc/yum.repos.d/
vim local.repo
[local]
name=本地yum源
baseurl=http://192.168.15.201/ 或 ftp://192.168.15.201/yumrepo
gpgcheck=0
3.更新源:
yum clean all
yum makecache
# 9.测试
yum remove zip
yum install zip
3 二进制编译安装
# 0 编译安装的优缺点
优点:单独定制安装软件
缺点:不能解决依赖关系
# ps:有一些源码包是已经编译好的结果,下载后解压即可使用
# 1 下载解压安装包
下载软件包的压缩文件: # 在软件官网下载
wget https://nginx.org/download/nginx-1.20.1.tar.gz
解压文件:
tar -xvf nginx-1.20.1.tar.gz
# 2 检查安装环境
cd nginx-1.20.1
./configure # 执行文件夹里的configure文件,最终生成Makefile文件 configure:n.配置、安装
# 指定配置安装目录
--prefix=/usr/local/nginx-1.20.1
# 不指定安装目录 安装后各文件的默认位置
可执行文件 默认放在/usr/local/bin
库文件 默认放在/usr/local/lib
配置文件 默认放在/usr/local/etc
其它的资源文件 默认放在/usr/local/share
# 其他自定义配置等 根据软件的文档信息来 一般是在文档的源码安装介绍中
启用或禁用某项功能 eg: --enable-ssl, --disable-filter --with-http_ssl_module
和其它软件关联 eg: --with-pcre=/root/pcre-8.31
# 3 根据提示信息 安装 编译安装所依赖的库
yum install pcre pcre-devel zlib zlib-devel make gcc gcc-c++ -y
或者
LANG=C yum -y groupinstall "Development tools"
# 4 编译 按Makefile文件编译成 可执行二进制程序 此时安装位置还并没有该文件
make
-j : 多核编译, 但是容易出错 (不推荐)
# 5 安装 将二进制程序 拷贝至对应的目录中
make install
# 注: 4与5一般写在一起: make && make install
# 6 若中途发生错误,多半是因为缺少必要的库支持,可以先清理
make clean # 清理掉以前编译后产生的 *.o目标文件
再执行 2-5 步
# 7 建立软链接
# 作用1: 方便软件升级 以后新安装的 nginx-1.22.1,也直接软连接 到 nginx中 后续一下配置文件不用修改
ln -s /usr/local/nginx-1.20.1 /usr/local/nginx
# 作用2: 任意路径敲nginx都能执行
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
# 8 测试
# 需要禁用防火墙,不然访问不到
systemctl disable --now firewalld
# 关闭之前的Nginx服务
systemctl stop nginx
# 启动nginx服务
/usr/local/nginx/sbin/nginx
补充
# 1.下载文件
wget [下载的文件URL]
wget 需要安装:
yum install wget
rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm
# 2.curl 和 wget 之间的区别
curl 是用来访问链接的 # 访问下载链接,其实也就是下载文件
-o : 指定保存文件的路径
curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
wget 是用来下载文件的
-O :指定下载文件的路径
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
# 3.解压文件
tar -xf nginx-1.20.1.tar.gz
# 4.nginx实现目录索引 的参数配置
root /data/server/nginx; # 指定实际目录绝对路径;
autoindex on; # 开启目录浏览功能;
autoindex_exact_size off; # 关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b
autoindex_localtime on; # 开启以服务器本地时区显示文件修改日期!
# 5. file://: 本地文件传输协议 file:// + 文件路径
File协议主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件一样。
# 6.查看进程
ps -ef | grep [进程名]
# 关闭进程
kill PID [进程pid号]
分类:
Linux运维
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)