目录
频道首页
🎯安装软件
收藏
0
xy20118 最近修改于 2024-04-03 16:39:38

✅学习目标:linux安装软件

linux 由 c语言开发 开源 所以源代码是公开的 无利益 高级语言 ------>机器语言 难度较高

win 闭源 源代码是核心资产 不公开 源代码--编译好--再交给用户进行使用

红帽 red hat 市面上常用的一些软件 编译好 形成了一种 以rpm结尾的安装包软件。

📃学习内容:常用的三种安装方式

安装软件-准备软件 在光盘中 这个时候就需要进行挂载 挂载: 外来设备 (磁盘 u盘 光驱) 把磁盘和文件夹做了关联 一般情况下硬件设备/dev/cdrom
/dev/sr0 挂载的话通常使用命令:mount

mount  /dev/sr0  /mnt  #将外来设备挂载到 /mnt 
mount: /dev/sr0 写保护,将以只读方式挂载 
df #查询挂载点
/dev/sr0                 4414592 4414592        0  100% /mnt  

挂载完成后 df 显示挂载点 是否已经挂载

  • 一个挂载点 同一时间只能挂载一个设备
  • 一个挂载点同一时间挂载了多个设备,只能看到最后挂载设备的数据,其他设备上的数据将背隐藏
  • 一个设备可以同时挂载到多个挂载点
  • 通常挂载点一般是已存在的空的目录

rpm

了解:rpm 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。

特点:

  • 建立统一的数据库文件,记录操作信息
  • 不能解决依赖关系 只能发现问题

**命令语法 **

rpm [选项] [参数]

rpm安装软件 是有依赖关系的 A--B B--C C--D ….. rpm -q 软件名 查询软件是否安装 rpm -qa 查询所有的安装软件 rpm -ivh +完整包名 安装软件。 rpm -qc 软件名 查询安装软件的配置文件 rpm -qi 查询软件的详细信息 rpm -ql 软件名 查看软件的所有文件列表 rpm -e 软件名 卸载软件

  • 此方法不常用 因为存在依赖关系 有可能存在套娃的情况

详解:

[root@localhost abc]# rpm -q tree #查询tree软件是否安装
未安装软件包 tree
[root@localhost abc]# rpm -qa  #查询所有安装软件
python-linux-procfs-0.4.9-3.el7.noarch
at-spi2-atk-2.22.0-2.el7.x86_64
libthai-0.1.14-9.el7.x86_64
.
.  #比较多 不列举了。
[root@localhost opt]# rpm -qi tree  #安装软件的详细信息 
Name        : tree
Version     : 1.6.0
Release     : 10.el7
Architecture: x86_64
Install Date: 2019年04月3日 星期二 23时47分31秒
Group       : Applications/File
Size        : 89505
License     : GPLv2+
Signature   : RSA/SHA256, 2014年07月04日 星期五 13时36分46秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : tree-1.6.0-10.el7.src.rpm
Build Date  : 2014年06月10日 星期二 03时28分53秒
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
.
.
.  #等等
[root@localhost opt]# rpm -ql tree  #查看tree这个软件的所有文件列表
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz

yum

他的出现是因为rpm存在部分无法解决的依赖关系 yum可以检测+解决 依赖关系 工作原理: 服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。 客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过http或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。

客户端需要怎么找对应的服务器 以及找到对应的安装包?

  • 需要写客户端配置文件 1.必须在 etc/yum.repos.d 目录下面
    2.配置文件必须以.repo 结尾
  • 配置文件的内容需要手写。

服务端需要有什么? 1.安装包 2.元信息 用于解决安装包路径 以及解决依赖关系。

/etc/yum.repos.d/  #yum仓库文件位置 固定位置  
文件夹下面配置文件(必须要以.repo结尾的文件 ,必须在/etc/yum.repos.d/)

yum本地仓库的建立

在没有网络的情况下 需要自己写一个 本地yum仓库 自己既是服务端 也是客户端

mount  /dev/sr0 /mnt #挂载 (临时挂载)
cd /etc/yum.repos.d  切换至yum库 固定目录
mkdir test  新建文件夹
mv *.repo test/ #把所有的 .repo文件全部移至test/ 减少干扰
vim  local.repo #新建配置文件 进行编辑 i a 都可以
[test0] # 仓库描述 
name=test1 #自定义名称  唯一不可重复。
baseurl=file:///mnt #本地目录file:// 固定格式
enable=1   #默认是1 开启可以下载状态 可以不写。
gpgcheck=0 # 不检查安装包的安全性 
esc :wq #保存退出
yum clean all #清理所有缓存
yum makecache  #建立缓存 元信息

rpm -e tree #卸载安装包 查看是否已经安卓过此安装包 
yum install  tree -y #安装包名是tree的包  -y代表默认安装 
yum -remove tree -y #卸载软件 tree 

::: center image :::

编译安装

优点-功能自定义 版本可以安装最新 缺点-复杂 在编译前 需要先安装编译软件 make gcc gcc-c++ 等。 3步 ./configure
1.脚本文件,源码包中自带 ,检测安装环境
2.可以选择安装软件的功能,生成一个文件make.file 按照这个文件的配置进行编译
3.指定安装路径 --prefix= 文件路径 指定安装文件路径

make 将源代码编译成二进制 可以执行的文件 make install 将软件安装进系统的指定路径 以下以安装nginx为例 详细说明

详解:

root@localhost ~]# cd /opt  #切换到opt文件夹
[root@localhost opt]# mkdir data #新建文件夹data
[root@localhost opt]# ls
data  rh
[root@localhost data]# wget http://nginx.org/download/nginx-1.18.0.tar.gz  #下载源码包 
--2024-04-03 15:57:52--  http://nginx.org/download/nginx-1.18.0.tar.gz
正在解析主机 nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:5c0:2600::6, ...
正在连接 nginx.org (nginx.org)|52.58.199.22|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1039530 (1015K) [application/octet-stream]
正在保存至: “nginx-1.18.0.tar.gz”

100%[======================================================================================>] 1,039,530    348KB/s 用时 2.9s   

2024-04-03 15:57:55 (348 KB/s) - 已保存 “nginx-1.18.0.tar.gz” [1039530/1039530])

[root@localhost data]# tar -xf nginx-1.18.0.tar.gz  #解压安装包
[root@localhost data]# cd nginx-1.18.0  #切换目录到nginx-1.18.0 
[root@localhost nginx-1.18.0]# yum -y install gcc openssl-devel zlib-devel opensll openssl-devel # 安装依赖环境 
已加载插件:fastestmirror, langpacks
/var/run/yum.pid 已被锁定,PID 为 5800 的另一个程序正在运行。
Another app is currently holding the yum lock; waiting for it to exit...
  另一个应用程序是:PackageKit
    内存:221 M RSS (1.6 GB VSZ)
    已启动: Wed Apr  3 15:26:01 2024 - 37:59之前
    状态  :睡眠中,进程ID:5800
                    # 以上报错 可以使用m  -rf /var/run/yum.pid  解决
[root@localhost nginx-1.18.0]# rm  -rf /var/run/yum.pid #执行
[root@localhost nginx-1.18.0]# yum -y install gcc openssl-devel zlib-devel opensll openssl-devel #重新安装依赖环境 
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * extras: ftp.twaren.net
 * updates: ftp.twaren.net #比较多 不全部例举 注意看下是否有 error undefined等一些常见的报错词  注意看下提示。
 root@localhost nginx-1.18.0]# ./configure --prefix=/apps/nginx #检测环境指定安装目录
checking for OS
 + Linux 3.10.0-693.el7.x86_64 x86_64
checking for C compiler ... found
 + using GNU C compiler  #也需要看下提示 遇见不理解的可以使用configure --help 
[root@localhost nginx-1.18.0]# make -j2  #编译 -j2  2个核心编译 按需写
[root@localhost nginx-1.18.0]# make install #将软件复制到 前面规定路径
[root@localhost nginx-1.18.0]# ln -s /apps/nginx/sbin/nginx /usr/local/sbin/   #nginx设置软链接  方便后续使用
[root@localhost /]# systemctl stop firewalled  #关闭防火墙
[root@localhost /]# setenforce 0 # 不启用防火墙 
[root@localhost /]# curl 本机ip  #测试是否安装成功  
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>

浏览器输入自己的ip 查看到类似情况也是成功的。 ::: center image :::

内容大纲
批注笔记
🎯安装软件
ArticleBot
z
z
z
z
主页
会议室
Git管理
文章
云文档
看板