Linux系统软件安装方式

Linux系统软件安装方式

    • 1. 绿色安装
    • 2. yum安装
    • 3. rpm安装
      • 3.1 rpm常用命令
    • 4. 源码安装
      • 4.1 安装依赖包
      • 4.2 执行configure脚本
      • 4.3 编译、安装
      • 4.4 安装
      • 4.5 操作nginx
      • 4.6 创建服务器

在这里插入图片描述

1. 绿色安装

Compressed Archive压缩文档包,如Java软件的压缩文档包,只需要解压、设置环境变量即可直接使用。

# 下载软件
https://www.oracle.com/java/technologies/downloads/# 新建java软件存放路径
mkdir /opt/java# 解压
tar -xvf jdk-21_linux-x64_bin.tar.gz -C /opt/java# 设置环境变量
vim /etc/profile.d/java.shJAVA_HOME=/opt/java/jdk-21.0.1/
CLASSPATH=.:$JAVA_HOME/lib
PATH=JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH# 加载环境变量
source /etc/profile.d/java.sh# 检验java环境是否配置好
java

2. yum安装

  • 在线联网

  • 需要安装的软件及版本,yum源里刚好有。

# 搜索redis源
yum search redis# 查看redis详细信息
yum info redis# 安装redis软件
yum -y install redis# 查看redis状态
systemctl status redis# 设置开机自启
systemctl enable redis# 启动redis服务
systemctl start redis

3. rpm安装

需要的软件及版本,只提供了rpm包

3.1 rpm常用命令

# 安装一个包
rpm -ivh 包名# 升级一个包
rpm -Uvh 包名# 查询包是否安装
rpm -q 包名# 查询安装包详情信息
rpm -qi 包名# 列出服务器上的一个文件属于哪个rpm包
rpm -qf 文件名# 列出所有安装的rpm包
rpm -qa# 卸载包
rpm -e 包名
# 安装java的jdk
rpm -ivh jdk-21_linux-x64_bin.rpm# 查看安装的jdk
rpm -qa | grep "jdk"# 忽略依赖关系强制卸载jdk
rpm -evh --nodeps jdk-21-21.0.1-12.x86_64

4. 源码安装

软件给的是C语言的源代码,需要编译成二进制,再安装。

Linux下安装软件,大型软件docker、oracle一般放/opt目录下;/usr目录一般由软件包管理器(yum、apt)来管理;/usr/local是用户级程序目录,/usr/local/src是用户级存放目录。

以安装nginx为例

4.1 安装依赖包

# 安装依赖 gzip模块需要zlib库、rewrite模块需要pcre库,ssl功能需要openssl库
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

4.2 执行configure脚本

./configure [option…]
  • 通过选项传递参数,指定安装路径、启用特性等;执行时会参考用户的指定以及Makefile.in文 件生成Makefile
  • 检查依赖到的外部环境,如依赖的软件包
# 下载
wget http://nginx.org/download/nginx-1.25.3.tar.gz# 解压
tar -xvf nginx-1.25.3.tar.gz -C /usr/local/src# 进入目录
cd nginx-1.25.3# 执行脚本
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --user=nginx --group=nginx

选项说明:

选项说明
–prefix=/usr/local/nginx编译安装目录。如果没有指定,默认为 /usr/local/程序名
–user=nginx所属用户nginx
–group=nginx所属组nginx
–with-http_stub_status_module该模块提供nginx的基本状态信息
–with-http_ssl_module支持HTTPS

4.3 编译、安装

# 编译
make 
  • make 根据Makefile文件,会检测依赖的环境,进行构建应用程序

4.4 安装

# 安装
make install
  • make install 复制文件到相应路径

4.5 操作nginx

# 切换目录
cd /usr/local/nginx/sbin/# 启动服务
./nginx# 重新加载配置文件
./nginx -s reload# 设置软连接
ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin/# 强制停止
nginx -s stop# 安全退出
nginx -s quit# 查看进程
ps -ef | grep nginx# 测试
curl 127.0.0.1

4.6 创建服务器

编写配置文件

# 编写配置文件
vi /usr/lib/systemd/system/nginx.service# 写入这些信息
[Unit]
Description=nginx
After=network.target[Service]
Type=forking
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true[Install]
WantedBy=multi-user.target

使用systemctl管理nginx服务

systemctl enable nginxsystemctl strat nginxsystemctl status nginx

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

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

相关文章

微信账单导出的手工操作

文章目录 微信账单导出的手工操作概述笔记手机微信版本电脑版微信版本总体操作流程具体操作END 微信账单导出的手工操作 概述 自己的openpnp设备基本调试完成, 花了不少冤枉钱. 心疼自己:( 如果是大厂有我需要的型号, 这些调试设备的钱都是不必要花的. 厂家的设备到用户手里…

Python小白之环境安装

一、安装包 1、Python开发环境,下载地址: Welcome to Python.org 2、Python工具 Python是强依赖缩进的语言,Node pad等容易有缩进问题,还是使用IDE比较合适,推荐使用PythonCharm。 PythonCharm下载地址&#xff1a…

mac配置双网卡 mac同时使用内网和外网

在公司办公通常都会连内网,而连内网最大的限制就是不可以使用外网,那遇到问题也就不能google,而当连接无线的时候,内网的东西就不可以访问,也就不能正常办公,对于我这种小白来说,工作中遇到的问…

阿里云配置ECS实例的IPv6地址,开通公网IPv6

1.阿里云ECS服务器开通IPv6地址,开通公网IPv6 1.1.官网教程 配置ECS实例的IPv6地址 1.2.相关截图 1.2.1.专有网络VPC开通IPv6 1.2.2.交换机switch开通IPv6 1.2.3.开通IPv6网关并开通公网宽带 1.2.4.ECS服务器绑定IPv6网关 1.2.5.安全组开通IPv6 1.2.6.主机测试I…

ResNet 论文理解含视频

ResNet 论文理解问题导引论文理解Q1.神经网络真的越深越好吗?Q2. 为什么加深网络会带来退化问题?Q3. 如何构建更深层的网络? 基于残差的深度学习框架Residual Learning 的理论依据 网络结构ResNet 的成绩总结 视频理解引入恒等映射 ResNet 论文理解 问…

Think-on-Graph:基于知识图的大型语言模型的深层可靠推理11.12

Hink-on-Graph:基于知识图的大型语言模型的深层可靠推理 摘要1 引言2 方法2.1图上思考2.1.1图的初始化2.1.2 探索2.1.3推理 2.2 基于关系的Think on graph 摘要 尽管大型语言模型(LLM)在各种任务中取得了巨大的成功,但它们经常与…

Redis应用场景及常见的数据类型

目录 一、Redis应用场景 1.1 Redis作为缓存 1.2 Redis作为消息队列 1.3 实现计数器和排行榜 1.4 实现分布式锁及分布式会话管理 二、Redis常见的数据类型 2.1 String(字符串)类型 2.2 list类型 2.3 Hash类型 2.4 Set类型 2.5 Sorted Set 一、Redis应用场…

Leetcode-145 二叉树的后序遍历

递归 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this…

史上最全,接口测试-用例设计总结(案例分析实例)一篇策底打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、针对输入设计 …

第一型曲面积分的第二型曲面积分的区别与联系【从几何知识的角度思考】

此处为曲线积分------>【问题思考总结】第一型曲线积分和第二型曲线积分的区别与联系【从几何知识的角度思考】 一二型曲面积分有什么区别?(了解) 一型曲面积分: 由dS进行表示。可以想像,dS是一个面积微元&#x…

Vue的vant notify组件报错Notify is not defined

解决方法: 原创作者:吴小糖 创作时间:2023.11.10