阿里云ECS服务器安装java环境相关软件

当前服务器版本为:Alibaba Cloud Linux 3.2104 LTS 64位

# lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	AlibabaCloud
Description:	Alibaba Cloud Linux release 3 (Soaring Falcon) 
Release:	3
Codename:	SoaringFalcon# cat /proc/version
Linux version 5.10.134-16.1.al8.x86_64 (mockbuild@a12i03132.na61) (gcc (GCC) 10.2.1 20200825 (Alibaba 10.2.1-3.5 2.32), GNU ld version 2.35-12.2.al8) #1 SMP Thu Dec 7 14:11:24 UTC 2023

前置步骤

先更新所有已安装的软件以及软件源中的软件包列表,不然可能安装比较老的包

yum -y update

一、安装Redis

查看下yum仓库里有哪些版本的Redis包

# yum search redis --showduplicates
Last metadata expiration check: 0:28:18 ago on Mon 18 Mar 2024 10:04:01 PM CST.
============================== Name Exactly Matched: redis ==============================
redis-6.2.7-1.0.2.al8.x86_64 : A persistent key-value database
redis-6.0.5-1.9.al8.x86_64 : A persistent key-value database
redis-6.0.5-1.10.al8.x86_64 : A persistent key-value database
redis-6.0.5-1.11.al8.x86_64 : A persistent key-value database
redis-6.0.9-5.0.1.al8.x86_64 : A persistent key-value database

可以看到仓库里最新的版本是6.2.7,如果不指定版本默认就是安装最新版本

centos还可以使用这个命令查看yum list available redis

1、安装

yum install -y redis

2、安装完成后,执行以下命令来启动Redis服务:

systemctl start redis

3、设置Redis开机自启动

systemctl enable redis

4、安装和启动完成后,可以通过执行以下命令来验证Redis是否成功安装并运行

redis-cli ping
如果返回PONG,则说明Redis服务正在运行,且redis-cli(Redis命令行界面)已成功安装

# redis-cli ping
PONG
# redis-cli -v
redis-cli 6.2.7

yum安装的redis的配置文件在/etc/redis.conf。可以使用find / -name redis.conf来搜索

# find / -name redis.conf
/etc/redis.conf
附:卸载redis
1、停止正在运行的Redis服务

systemctl stop redis

2、禁用在系统启动时自动运行

systemctl disable redis

3、使用yum命令卸载Redis软件包

yum remove redis

二、安装nodejs

1、安装

yum install -y nodejs

2、安装完成后,运行以下命令来验证Node.js和npm是否已成功安装

node -v
npm -v
这些命令将分别输出Node.js和npm的版本号

# node -v
v14.21.3
# npm -v
6.14.18

三、安装nginx

先检查下是否已经安装了nginx,用下面的命令

a、which nginx命令

b、使用systemctl status nginx查看服务

c、使用ps -ef | grep nginx查看进程

#这是已经安装nginx
# which nginx
/usr/sbin/nginx
# ps -ef | grep nginx
root       48512       1  0 Mar15 ?        00:00:00 nginx: master process /usr/sbin/ngin
nginx      48513   48512  0 Mar15 ?        00:00:00 nginx: worker process
1、安装

yum install -y nginx

2、安装完成后,启动Nginx服务

systemctl start nginx

3、让Nginx在系统启动时自动运行

systemctl enable nginx
可以通过访问你的服务器的IP地址来验证Nginx是否正常运行

nginx安装后配置文件在/etc/nginx/nginx.conf

# nginx -version
nginx version: nginx/1.20.1

四、安装jdk

先检查一下是否已经安装了jdk

a、which is java

b、yum list installed | grep java

c、java -version

d、rpm -qa | grep java

由于并不需要安装最新版本的jdk,所以要先查下仓库里有哪些版本的jdk
# yum search java | grep --color jdk
..........
java-11-openjdk.x86_64 : OpenJDK 11 Runtime Environment
java-11-openjdk-demo.x86_64 : OpenJDK 11 Demos
java-11-openjdk-demo-fastdebug.x86_64 : OpenJDK 11 Demos optimised with full debugging on
java-11-openjdk-demo-slowdebug.x86_64 : OpenJDK 11 Demos unoptimised with full debugging on
java-11-openjdk-devel.x86_64 : OpenJDK 11 Development Environment
..........

主要列出了3个版本1.8、11、17,但是会有很长很长的记录

要注意这两个包的区别

java-11-openjdk-devel.x86_64 如果需要编译则安装这个(有java和javac命令)

java-11-openjdk.x86_64 只包含运行所需要的环境(没有javac命令)

1、安装

yum install -y java-11-openjdk-devel.x86_64

2、验证是否安装成功

java -version
javac -version
这些命令将分别输出java和javac的版本号

# java -version
openjdk version "11.0.21" 2023-10-17 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.21.0.9-1) (build 11.0.21+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.21.0.9-1) (build 11.0.21+9-LTS, mixed mode, sharing)
3、配置JAVA_HOME

不是必须的,根据需要和环境情况配置。

要配置环境变量就必须先知道 jdk的安装目录

可以使用which java命令找到它,
然后通过ls -l查看其链接或指向的目录来确定JDK的安装路径

# which java
/usr/bin/java
# ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 Mar 16 11:36 /usr/bin/java -> /etc/alternatives/java
# ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 66 Mar 16 11:36 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-2.0.3.al8.x86_64/bin/java

jdk实际安装目录是/usr/lib/jvm/(JDK通常会被安装到/usr/java/或/usr/lib/jvm/目录下

a、使用root权限编辑/etc/profile文件:
# vi /etc/profile
b、在文件的末尾添加以下行来导出JAVA_HOME环境变量:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.21.0.9-2.0.3.al8.x86_64  
export PATH=$PATH:$JAVA_HOME/bin

$PATH:$JAVA_HOME/bin是指把$JAVA_HOME放到$PATH环境变量的后面

c、为了使更改立即生效,你可以运行以下命令:
# source /etc/profile
附:卸载jdk

yum remove java-11-openjdk
这条命令会卸载 java-11-openjdk 软件包及其未被其他软件包依赖的组件。

或者可以使用yum list installed | grep redis命令来查找已安装的Java相关软件包

# yum list installed |grep java
java-11-openjdk.x86_64                             1:11.0.21.0.9-2.0.3.al8             @alinux3-updates
java-11-openjdk-headless.x86_64                    1:11.0.21.0.9-2.0.3.al8             @alinux3-updates
javapackages-filesystem.noarch                     5.3.1-7.3.al8                       @alinux3-updates
tzdata-java.noarch           

执行yum remove java-11-openjdk.x86_64,在卸载过程中,yum可能会询问你是否确定要删除该软件包及其依赖项。请仔细阅读提示,并确认是否要继续卸载。

五、自定义安装

如果仓库里没有我们想要的软件或者版本,这个时候就得换种方式了

1、安装jdk

i、先下载自己想要的openjdk

可以从清华大学这个镜像站下载:https://mirrors.tuna.tsinghua.edu.cn/Adoptium/11/jdk/x64/

假设下载的是jdk-8u211-linux-x64.tar.gz,把它放到/usr/local目录下

ii、解压
tar -zxvf jdk-8u211-linux-x64.tar.gz
iii、配置环境变量

为了让系统能够找到JDK,你需要配置环境变量。编辑/etc/profile文件,在末尾添加以下内容:

export JAVA_HOME=/path/to/your/jdk  
export PATH=$JAVA_HOME/bin:$PATH

请将/path/to/your/jdk替换为你解压JDK的实际路径。

iv、重新加载profile文件

为了让新的环境变量生效,你需要重新加载/etc/profile文件。使用以下命令

source /etc/profile

检查是否安装成功:输入java -version命令,如果返回JDK的版本信息,说明安装成功。

2、在线安装高版本nodejs

现在nodejs在yum仓库里的最新版本是V14.21.3(有点低 _),而目前最新的版本已经是node-v20.11.1 LTS。假设想安装V16.x

i、添加NodeSource仓库

可以运行以下命令来添加NodeSource仓库

curl -sL https://rpm.nodesource.com/setup_16.x | bash -

这个命令的意思是下载一个脚本,然后静默执行这个脚本,这个脚本会把nodejs的仓库配置为16版本

ii、安装刚刚配置的nodejs版本

安装的过程和之前yum安装无异

yum install -y nodejs

3、离线安装任意版本nodejs

i、下载指定版本(node-v12.22.12-linux-x64.tar.gz)

可以从这个镜像站下载:https://registry.npmmirror.com/binary.html?path=node/

ii、把文件移动到/usr/local目录
iii、解压
tar -xzvf node-v12.22.12-linux-x64.tar.gz

(如果是解压tar.xz,那么使用tar -xJvf node-xxx-x64.tar.xz)

iv、配置环境变量

通过编辑/etc/profile文件,添加Node.js的路径到环境变量中(在文件最后)。使用vi或你喜欢的文本编辑器打开该文件,并添加类似以下内容:

export PATH=/usr/local/node-v12.22.12-linux-x64/bin:$PATH
v、让profile文件生效

通过运行source /etc/profile命令,使刚刚添加的环境变量立即生效。

vi、测试验证
node -v
v12.22.12
npm -v
6.14.16
附:第4步也可以使用软链接的方式

解压完成后,可能需要创建一个指向Node.js可执行文件的软链接,以便在全局范围内使用它。
这可以通过
ln -s /usr/local/node-vXX.XX.XX-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/node-vXX.XX.XX-linux-x64/bin/npm /usr/local/bin/npm
(其中vXX.XX.XX应替换为你的Node.js版本号)这两个命令完成。[听说最后的node和npm可以省去]
ls -l 软链接 可以查看软链接的指向

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

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

相关文章

数据库简答题:期末+复试

文章目录 1.事务的特性:2.并发操作带来的数据不一致:4.区别几种范式:5.数据、数据库、数据库管理系统、数据库系统6.关系、关系模式和关系数据库的区别:7.关系数据库的特点:8.数据模型包括什么:9.逻辑独立性、物理独立性:10.人工管理阶段和数据库系统和文件系统的区别:11.等值连…

【Android】【Bluetooth Stack】蓝牙电话本协议分析(超详细)

1. 精讲蓝牙协议栈(Bluetooth Stack):SPP/A2DP/AVRCP/HFP/PBAP/IAP2/HID/MAP/OPP/PAN/GATTC/GATTS/HOGP等协议理论 2. 欢迎大家关注和订阅,【蓝牙协议栈】专栏会持续更新中.....敬请期待! 目录 1. 协议简述 1.1 PBAP…

个人商城系统开源(配置支付宝支付2)

原文地址:个人商城系统开源(配置支付宝支付2) - Pleasure的博客 下面是正文内容: 前言 在上一篇文章中我曾提到过关于网站支付宝支付的方法,接下来我们来介绍第二种。 个人博客地址:个人商城系统开源&…

GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例应用

随着航空、航天、近地空间等多个遥感平台的不断发展,近年来遥感技术突飞猛进。由此,遥感数据的空间、时间、光谱分辨率不断提高,数据量也大幅增长,使其越来越具有大数据特征。对于相关研究而言,遥感大数据的出现为其提…

FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+GTX 8b/10b编解码SFP光口传输,提供2套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博主所有FPGA工程项目-->汇总目录本博已有的 SDI 编解码方案本方案的SDI接收发送本方案的SDI接收图像缩放应用本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS图像缩放HLS多路视频拼接应用本方案的SDI…

C++:类和对象(上篇)

目录: 一:面向对象和过程的介绍 二:类的引入 三:类的定义 四:类的访问限定符以及封装 五:类的作用域 六:类的实例化 七:类对象大小的计算 八:类成员函数的this指…

【Linux】编译器-gcc/g++的使用(预处理、编译、汇编、连接)

目录 01.预处理(宏替换) 02.编译(生成汇编) 03.汇编(生成机器可识别码) 04.连接(生成可执行文件或库文件) 05.选项 编译器在编译代码时包含以下四个步骤:1.预处理 2…

商品规格存储问题

准备条件 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.76</version> <!-- 指定您需要的 FastJSON 版本 --></dependency>Testvoid test6() {// 创建 JSON 对象JSONObjec…

MongoDB启动报错

spring boot 引入MongoDB启动报错 java.lang.IllegalStateException: Failed to introspect Class [io.micrometer.core.instrument.binder.mongodb.DefaultMongoConnectionPoolTagsProvider] from ClassLoader [sun.misc.Launcher$AppClassLoader18b4aac2] at org.springfra…

爬虫综合案例-获取房源信息并在地图上显示

文章目录 1.项目介绍2.项目分析3.爬取房源信息4. 导入高德地图5.地图上显示房源信息6.运行程序 1.项目介绍 本次案例将从 58 同城信息网爬取相关城市的房源出租信息&#xff0c;然后通过高德地图把房源信息地图显示&#xff0c;通过地图进行浏览&#xff0c;点击相应的热点文字…

二叉树|二叉树的层序遍历 (广度优先搜索)

力扣题目链接 class Solution { public:vector<vector<int>> levelOrder(TreeNode* root) {queue<TreeNode*> que;if (root ! NULL) que.push(root);vector<vector<int>> result;while (!que.empty()) {int size que.size();vector<int>…

网络工程师练习题3

网络工程师 在Cisco Catalyst 3548以太网交换机上建立一个名为lib105的VLAN&#xff0c;下列正确的配置是&#xff08;&#xff09;。 A.Switch-3 548#vlan 1 name lib 105 Switch-3548#exitB.Switch-3548&#xff08;valn&#xff09; 1 name lib 105C. Switch-3548&#xf…

[运维] 可视化爬虫易采集-EasySpider(笔记)

一、下载 ​下载地址 下滑到Assets页面&#xff0c;选择下载 二、解压运 ​解压压缩包&#xff0c;打开文件夹 在此文件夹下打开Linux Terimal, 并输入以下命令运行软件&#xff1a; ./easy-spider.sh 注意软件运行过程中不要关闭terminal。 三、使用 1.开始 首先点击…

使用 CSS 实现毛玻璃效果

在现代 Web 设计中,毛玻璃效果越来越受欢迎。它能够让界面元素看起来更加柔和、朦胧,同时又不会完全遮挡背景内容,给人一种透明而又不失质感的视觉体验。虽然过去实现这种效果需要借助图像编辑软件,但现在只需要几行 CSS 代码,就可以在网页上呈现出令人惊艳的毛玻璃效果。 使用…

愚人节礼物(C++)

这不愚人节 快到了吗&#xff1f;身为顶级程序员&#xff0c;不用c编写愚人节礼物那心里是很不舒服的&#xff0c;所以&#xff0c;趁着愚人节到来之际&#xff0c;下面分享一种坑朋友的c代码&#xff1a; 内容包含一些敏感词&#xff0c;如果对你产生了影响或伤害&#xff0c;…

IDEA 配置阿里规范检测

IDEA中安装插件 配置代码风格检查规范 使用代码风格检测 在代码类中&#xff0c;右键 然后会给出一些不符合规范的修改建议&#xff1a; 保存代码时自动格式化代码 安装插件&#xff1a; 配置插件&#xff1a;

SPSS k-均值聚类的 anova分析表解读

from&#xff1a;SPSS K均值聚类&#xff08;k-means&#xff09;和可视化方法 - CollinsLi - 博客园 (cnblogs.com) F值&#xff1a;变量对聚类的贡献 显著性水平&#xff1a;<0.05 则因子显著

MyBatis面试简答题

以下是一份MyBatis的高难度简答题,共20题: 请解释MyBatis中#{}和${}的区别,并举例说明它们在实际应用中的使用场景。 MyBatis的Mapper接口是如何与XML映射文件关联的? 如何在MyBatis中实现动态SQL?请列举几种常见的动态SQL元素并解释其作用。 描述MyBatis中的ResultMap的作…

[python] ETL 工作流程 Prefect

Prefect 是一个用于构建、调度和监控数据流程的 Python 库。它提供了一种简单而强大的方式来管理 ETL&#xff08;Extract, Transform, Load&#xff09;工作流程。下面是一个简单的示例&#xff0c;演示了如何使用 Prefect 来创建和运行一个简单的任务&#xff1a; 首先&…

深入理解JavaScript对象类型及其用法

在JavaScript中&#xff0c;对象是一种复合数据类型&#xff0c;用于存储多个值作为属性。这些属性可以是原始数据类型&#xff08;如字符串、数字等&#xff09;&#xff0c;也可以是其他对象。JavaScript对象的灵活性和强大功能使其成为编程中的关键概念。本文将深入探讨Java…