一文搞定Linux安装常用软件再也不用到处找了!!!

2023-12-19

作者主页: 编程指南针

作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师

主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互助

收藏点赞不迷路  关注作者有好处

文末获取源码

一、什么是Linux

Linux是基于Unix的 Linux是一种 自由和开放源码的操作系统 ,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机 诞生于1991 年10 月5 日。是由芬兰赫尔辛基大学学生Linus Torvalds和后来加入的众多爱好者共同开发完成

Linux内核最初只是由芬兰人 林纳斯·托瓦兹 (Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux的版本分为两种: 内核版本 发行版本 ;内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号 ;

linux 内核版本和发行版本区别

内核: 是系统的心脏,是linux中最基层的代码

发行版本:在内核的基础上,不同的应用厂商会开发出不同的一些应用程序,组成的一个完整的操作系统。

二,Linux安装软件

2.1 安装JDK

  • 查看Linux系统的版本

    getconf LONG_BIT
  • 查看java 版本

    java -version
  • 查看已安装jdk 版本

    rpm -qa | grep java
  • 删除opendjdk

    rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch
    rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch
    rpm -e --nodeps tzdata-java-2019c-1.el7.noarch
  • 解压 jdk 到上一级目录

    tar -zxvf  jdk-7u75-linux-x64.tar.gz -C ../
  • 在/etc/profile.d目录下创建my_env.sh文件

  • 在my_env.sh文件中配置JAVA_HOME环境变量

    # 配置环境变量
    JAVA_HOME=/opt/jdk1.8.0_152
    # 将JAVA_HOME的环境变量拼接到PATH中
    PATH=$PATH:$JAVA_HOME/bin
    # 将JAVA_HOME变量和PATH变量提升为全局的变量
    export PATH JAVA_HOME
  • 更新配置文件

    
    source /etc/profile.d/my_env.sh使环境变量立即生效,如果不生效就重启XShell
      
  • openjdk和oraclejdk有什么区别


1. 授权协议的不同:OpenJDK采用GPL V2协议放出,而SUN JDK则采用JRL放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而JRL只允许个人研究使用。
​
2. OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在OpenJDK中是找不到的。
​
3. OpenJDK源代码不完整:这个很容易想到,在采用GPL协议的OpenJDK中,SUN JDK的一部分源代码因为产权的问题无法开放给OpenJDK使用,其中最主要的部份就是JMX中的可选元件SNMP部份的代码。
​
4. 部分源代码用开源代码替换:由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替.  

2.2 安装 mysql

  • 卸载自带的Mysql-libs(如果之前安装过mysql,要全都卸载掉)

    rpm -qa | grep mariadb
    rpm -e --nodeps mariadb-libs


  • 在/opt目录下创建MySQL目录

  • 上传MySQL的rpm安装包到/opt/MySQL目录下

  • 按照标号依次安装rpm软件包

    rpm -ivh 01_mysql-community-common-5.7.29-1.el7.x86_64.rpm
    ​
    rpm -ivh 02_mysql-community-libs-5.7.29-1.el7.x86_64.rpm
    ​
    rpm -ivh 03_mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm
    ​
    rpm -ivh 04_mysql-community-client-5.7.29-1.el7.x86_64.rpm
    ​
    rpm -ivh 05_mysql-community-server-5.7.29-1.el7.x86_64.rpm
  • 安装mysql-server时有可能出现以下异常:

    a) 错误:依赖检测失败:
    ​
    libaio.so.1()(64bit) 被 mysql-community-server-5.7.29-1.el7.x86_64 需要
    ​
    b) 通过yum安装缺少的依赖:yum install -y libaio
  • 初始化MySQL

    mysqld --initialize --user=mysql
  • 查看MySQL的临时密码

    cat /var/log/mysqld.log
  • 启动MySQL服务

    systemctl start mysqld
  • 连接MySQL

    mysql -uroot -p’临时密码’
  • 使用临时密码连接MySQL之后修改密码

    set password=password('root');
  • 编辑/etc/my.cnf配置文件设置MySQL客户端和服务端的字符集为utf8

    [mysqld]
    character-set-server=utf8
  • 重启MySQL的服务

    systemctl restart mysqld
  • 设置root远程权限

    利用root账号本地登录,修改mysql数据库,user表的root用户的远程访问权限

    update user set host='%' where user='root';
    flush privileges;

    2.3 安装 tomcat

  • 将tomcat的压缩包上传到/opt目录下

./startup.sh

  • 关闭防火墙或开放端口:

    • 关闭防火墙

       systemctl stop firewalld.service
    • 开放端口

      • 查看开放的端口号:firewall-cmd --list-all

      • 设置开放的服务或端口号

        firewall-cmd --add-service=http --permanent
        ​
        firewall-cmd --add-port=8080/tcp --permanent
    • 重启防火墙:firewall-cmd --reload

2.4 安装 docker

官网中文安装参考手册 : https://docs.docker-cn.com/engine/installation/linux/docker-ce/centos/#prerequisites

安装docker,基于centos7.x版本

  • 确定你是CentOS7及以上版本
    cat /etc/redhat-release
  • yum安装gcc相关

    检查linux系统是否安装gcc和g++是否安装好,如果没有安装好,则需要安装。

    安装gcc和g++
    
    yum -y install gcc
    yum -y install gcc-c++
  • 卸载旧版本
    yum -y remove docker docker-common docker-selinux docker-engine
  • 安装docker依赖
    yum install -y yum-utils device-mapper-persistent-data lvm2
  • 设置docker的官方仓库
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
经常会报错:
1   [Errno 14] curl#35 - TCP connection reset by peer
 
 
2   [Errno 12] curl#35 - Timeout
 
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 更新yum软件包索引

    docker有社区版和企业版,企业版功能会更强大。

    yum makecache fast
  • 安装docker
    yum -y install docker-ce
  • 启动docker
     systemctl start docker # 启动docker
     systemctl enable docker # 设置开机自启动
  • 关闭docker
    systemctl stop docker
  • 测试docker安装
    docker version
    docker run hello-world

2.5 安装 Nginx

官网: nginx news nginx: download

需要安装的包
pcre-8.37.tar.gz

openssl-1.0.1t.tar.gz

zlib-1.2.8.tar.gz

nginx-1.12.2.tar.gz

如果没有安装gcc需要提前安装

yum -y install gcc
yum -y install gcc-c++
安装pcre
  • 联网下载pcre
    wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
  • 解压压缩文件
    tar -zxvf pcre-8.37.tar.gz -C ../
  • 执行./configure检查文件

    进入到pcre-8.37执行以下命令

    ./configure
  • 编译和安装pcre
    在pcre目录下执行make,最后执行make install

make
make install
  • 检查版本
    pcre-config --version
安装openssl
解压缩openssl-xx.tar.gz包

进入解压缩目录,执行./config 

make && make install
安装zlib
解压缩zlib-xx.tar.gz包
进入解压缩目录,执行./configure
make && make install
安装nginx
解压缩nginx-xx.tar.gz包 
进入解压缩目录,执行./configure 
make && make install
进入目录 /usr/local/nginx/sbin   执行./nginx 启动服务
设置防火墙

在windows系统中访问linux中nginx,默认不能访问的,因为防火墙问题

关闭防火墙-开放访问的端口号, 80 端口

  • 查看开放的端口号

    firewall-cmd --list-all
  • 设置开放的服务或端口号

    firewall-cmd --add-service=http --permanent
    firewall-cmd --add-port=80/tcp --permanent
  • 重启防火墙

    firewall-cmd --reload
访问Nginx

访问地址: http://192.168.3.97:80

2.6 安装redis

版本 : 6.2.1 for Linux(redis-6.2.1.tar.gz)

下载安装最新版的gcc编译器
  • 安装C 语言的编译环境
    yum -y install gcc
  • 测试 gcc版本
    gcc --version

下载redis-6.2.1

将下载redis-6.2.1.tar.gz文件存放到/opt目录

解压redis
tar -zxvf redis-6.2.1.tar.gz

编译redis

进入到redis目录,执行make,编译redis,也可以是redis的src目录下,进行make编译

cd redis-6.2.1
make

如果没有准备好C语言编译环境,make 会报错 —Jemalloc/jemalloc.h: 没有那个文件

解决方案:安装gcc后, 运行make distclean,然后再进行make

安装redis

make install  

安装目录是在:/usr/local/bin

redis安装目录结构

后台启动
  • 1、备份redis.conf
    • 在/root目录下创建myredis目录

    • mkdir myredis

    • 拷贝一份redis.conf到myredis目录

    • cp /opt/redis-6.2.1/redis.conf /root/myredis

  • 2、修改配置
    
    daemonize no改成yes(L247)让服务在后台启动
      
  • 3、Redis启动
    • redis-server /root/myredis/redis.conf

  • 4、用客户端访问:redis-cli
    • 多个端口可以指定端口登录:redis-cli -p 6379

  • 5、Redis关闭
    • 单实例关闭:redis-cli shutdown,不用连接终端

    • 也可以进入终端后关闭当前实例

    • 多实例时关闭指定实例,指定端口关闭:redis-cli -p 6379 shutdown

三,相关作品展示

基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目

基于Nodejs、Vue等前端技术开发的前端实战项目

基于微信小程序和安卓APP应用开发的相关作品

基于51单片机等嵌入式物联网开发应用

基于各类算法实现的AI智能应用

基于大数据实现的各类数据管理和推荐系统

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一文搞定Linux安装常用软件再也不用到处找了!!! 的相关文章

  • 退出 bash 脚本但保持进程运行

    我正在运行服务器 需要使用参数执行以下命令 这些脚本目前工作得很好 但问题是当我运行脚本时我无法返回到控制台 它在控制台中保持运行 如果我强行停止它 那么该过程也会停止 我想继续运行该进程并返回到控制台 bin sh php home st
  • gnome-terminal 新选项卡,使用别名作为要执行的命令

    我已经创建了一个别名 bashrc文件如下 alias myproject cd Desktop myproject 当我重新启动终端时保存文件后 输入myproject带我到项目目录 但是当我尝试使用别名作为新的命令参数时gnome te
  • 是否有可能通过 mmap 匿名内存“打孔”?

    考虑一个使用大量大致页面大小的内存区域 例如 64 kB 左右 的程序 每个内存区域的寿命都相当短暂 在我的特定情况下 这些是绿色线程的替代堆栈 如何最好地分配这些区域 以便一旦该区域不再使用 它 们的页面可以返回到内核 天真的解决方案显然
  • 有没有办法用Lettuce自动发现Redis集群中新的集群节点IP

    我有一个Redis集群 3主3从 运行在一个库伯内斯簇 该集群通过Kubernetes 服务 Kube 服务 我将我的应用程序服务器连接到 Redis 集群 使用Kube 服务作为 URI 通过 Redis 的 Lettuce java 客
  • gdb 错误 - 文件不是可执行格式:无法识别文件格式

    我正在尝试使用 gdb 调试某个名为 xdf 的程序 但是当我运行 gdb xdf 时 出现以下错误 home nealtitusthomas X ray astronomy heasoft 6 24 x86 64 pc linux gnu
  • sqlite 插入需要很长时间

    我正在将不到 200 000 行插入到 sqlite 数据库表中 我只是在终端中通过 sqlite3 使用一个非常简单的 sql 文件 我打赌它已经运行了至少 30 分钟 这是正常现象还是我应该关闭该过程并尝试不同的方法 sqlite中的插
  • Windows 与 Linux 文本文件读取

    问题是 我最近从 Windows 切换到 Ubuntu 我的一些用于分析数据文件的 python 脚本给了我错误 我不确定如何正确解决 我当前仪器的数据文件输出如下 Header 有关仪器等的各种信息 Data 状态 代码 温度 字段等 0
  • Linux 中的电源管理通知

    在基于 Linux 的系统中 我们可以使用哪些方法 最简单的方法 来获取电源状态更改的通知 例如 当计算机进入睡眠 休眠状态等时 我需要这个主要是为了在睡眠前保留某些状态 当然 在计算机唤醒后恢复该状态 您只需配置即可获得所有这些事件acp
  • 为什么 ld 无法从 /etc/ld.so.conf 中的路径找到库?

    我想添加 opt vertica lib64进入系统库路径 所以我执行以下步骤 1 添加 opt vertica lib64 into etc ld so conf 然后运行ldconfig 2 检查 bash ldconfig p gre
  • Linux、ARM:为什么仅当启动时存在 I2C GPIO 扩展器时才创建 gpiochip

    在 imx6sx 硬件平台 NXP 嵌入式 ARM 上使用 Linux 3 14 52 问题是设备树中指定的 PCF8575 I2C GPIO 扩展器不会实例化为 sys class gpio 结构中的设备 除非它们在内核启动期间存在 这些
  • 无关的库链接

    我有一个可能有点愚蠢的问题 因为我很确定我可能已经知道答案了 假设你有静态库A 动态共享库B和你的linux下的程序C 假设库 A 调用库 B 中的函数 并且您的程序调用库 A 中的函数 现在假设 C 在 A 中调用的所有函数都不使用 B
  • 如何从类似于 eclipse 的命令行创建可运行的 jar 文件

    我知道 eclipse 会生成一个可运行的 jar 文件 其中提取并包含在该 jar 文件中的所有库 jar 文件 从命令提示符手动创建 jar 文件时如何执行类似的操作 我需要将所有 lib jar 解压到类文件夹中吗 目前我正在使用 j
  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she
  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上
  • 如何使redis中的“HSET”子键“过期”?

    我需要使 Redis 哈希中所有超过 1 个月的密钥过期 这不可能 https github com antirez redis issues 167 issuecomment 2559040 为了保持 Redis 简单 https git
  • 操作系统什么时候清除进程的内存

    进程在某些操作系统上成功或异常终止 操作系统何时决定擦除分配给该进程的内存 数据 代码等 在退出时或当它想为新进程分配内存时 这个清除内存分配过程在所有操作系统 winXP Win7 linux Mac 上都相同吗 据我了解 页表具有该进程
  • numpy 未定义符号:PyFPE_jbuf

    我正在尝试使用一百万首歌曲数据集 为此我必须安装 python 表 numpy cython hdf5 numexpr 等 昨天我设法安装了我需要的所有内容 在使用 hdf5 遇到一些麻烦之后 我下载了预编译的二进制包并将它们保存在我的 b
  • 构建 makefile 依赖/继承树

    如果我解释得不好或者问了一些明显的问题 我很抱歉 但我是 Linux 内核的新手 而且有点深入 我们有一个嵌入式 Linux 系统 它附带一个 文档非常糟糕的 SDK 其中包含数百个文件夹stuff 大多数文件夹包含rules make m
  • gentoo crontab:为什么这个简单的 crontab 不起作用?

    我使用 GENTOO 发行版 crontab e 35 12 root php5 home www cron php 当我手动运行时 php5 php5 home www cron php 这有效 它向我发送了一封电子邮件 然后我检查日期
  • 伊迪德信息

    重新定义问题 有什么方法可以获取所连接显示器的序列号吗 我想收集显示器的Eid信息 当我使用 logverbose 选项运行 X 时 我可以从 xorg 0 log 文件中获取它 但问题是 如果我切换显示器 拔出当前显示器 然后插入另一个显

随机推荐

  • 机器学习 项目结构

    需求 我的项目文件夹下有许多文件 我想把我的项目单独放到一个文件夹 我的封装的模块放到一个一个文件夹方便管理 我该怎么做 这样做之后 主程序调用子模块需要在接口函数中调整路径吧 解决 将项目单独放到一个文件夹并将封装的模块放到另一个文件夹是
  • 谷歌Chrome浏览器无法安装插件的解决方法

    Google Chrome是一款由Google公司开发的网页浏览器 该浏览器基于其他开源软件撰写 包括WebKit 目标是提升稳定性 速度和安全性 并创造出简单且有效率的使用者界面 使用谷歌浏览器安装扩展插件的时候有时会遇到无法安装问题 解
  • 机器学习---决策树

    介绍 决策树和随机森林都是非线性有监督的分类模型 决策树是一种树形结构 树内部每个节点表示一个属性上的测试 每个分支代表一个测试输出 每个叶子节点代表一个分类类别 通过训练数据构建决策树 可以对未知数据进行分类 随机森林是由多个决策树组成
  • 井盖出现位移怎么办?井盖传感器效果一览

    井盖位移 井盖倾斜 井盖翻转 各种各样的问题应该怎么解决呢 井盖是城市基础设施建设过程之中不容忽视的一个重要部分 但是由于各种外界影响或者是内部的原因 可能会导致井盖出现位移等异常的现象 这不仅影响了路面的平整度 而且还可能会对路过的行人和
  • orcle定时器表达式梳理

    Oracle 定时任务执行时间间隔学习笔记 oracle 定时任务每隔1小时 CSDN博客 Oracle job 定时器的执行时间间隔也是定时器job 的关键设置 在这一设置上 开始还没掌握 总是不知道怎么写 现总结如下 其实主要是使用了T
  • 设计模式 原型模式 与 Spring 原型模式源码解析(包含Bean的创建过程)

    原创 疯狂的狮子Li 狮子领域 程序圈 2023 12 19 10 30 发表于辽宁 原型模式 原型模式 Prototype模式 是指 用原型实例指定创建对象的种类 并且通过拷贝这些原型 创建新的对象 原型模式是一种创建型设计模式 允许一个
  • DataX迁移MongoDB

    DataX迁移MongoDB 项目地址 GitHub alibaba DataX DataX是阿里云DataWorks数据集成的开源版本 迁移MongoDB 读取组件为mongodbreader 写入组件为mongodbwriter 源码修
  • Android 根据uri获取文件绝对路径

    package com example webapp utils import android content ContentResolver import android content ContentUris import androi
  • 小程序源码|幼教小程序源码

    作者主页 编程指南针 作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智
  • 实现深度增强学习在自动驾驶领域的应用

    自动驾驶技术作为人工智能领域的热门应用之一 正逐渐改变着我们的出行方式 随着深度学习的快速发展 深度增强学习作为一种结合了深度学习和增强学习的方法 为自动驾驶带来了更高的智能化水平 本文将介绍深度增强学习在自动驾驶领域的应用 并探讨其对未来
  • 基于SpringBoot+Vue的餐饮管理系统设计实现(源码+lw+部署文档+讲解等)

    文章目录 前言 详细视频演示 具体实现截图 技术栈 后端框架SpringBoot 前端框架Vue 持久层框架MyBaitsPlus 系统测试 系统测试目的
  • 短视频账号矩阵系统3年技术独立源头正规开发搭建

    短视频账号矩阵3年技术独立开发打造是一个非常有挑战性和前景的项目 以下是一些建议 帮助你成功打造一个成功的短视频账号矩阵 1 确定目标受众 首先需要明确你的目标受众是谁 了解他们的兴趣爱好 年龄 性别等 以便为他们提供他们感兴趣的内容 2
  • Linux中使用HTTP协议进行网络通信的示例——你的“网络信使”

    大家好 今天我们要聊聊在Linux中如何使用HTTP协议进行网络通信 听起来有点高大上 但其实并不难 让我们一起来看看 首先 我们要明白HTTP协议是什么 HTTP 全名为超文本传输协议 Hypertext Transfer Protoco
  • 面试vue3必知的八种周期

    Vue js 是一款流行的前端 JavaScript 框架 它提供了一套完整的响应式数据绑定和组件化的开发模式 Vue js 的生命周期指的是组件实例在创建 更新和销毁过程中所经历的一系列阶段 Vue js 的生命周期可以分为以下八个阶段
  • 基于springboot实现的进销存管理系统

    一 系统架构 前端 html js css jquery 后端 springboot mybatis 环境 jdk1 7 mysql maven 二 代码及数据库 三 功能介绍 01 登录页 02 首页 03 进货管理 进货单据查询 04
  • 内涝积水的隐患,城市内涝积水监测仪的作用有哪些?

    对于任何一个城市来讲内涝积水的安全隐患是不容忽视的 因为内涝积水可能对城市的安全和正常运行造成十分严重的影响 比如可能会导致道路堵塞 交通不畅 从而给居民的日常生活带来不便 也有可能会增加交通事故的风险 同时内涝积水还可能会导致城市内的诸多
  • Another git process seems to be running in this repository, e.g. an editor o

    操作任何git命令 都提示该内容 Another git process semms to be running in this repository e g an editor opened by git commit Please ma
  • LaTeX 常见数学符号

    LaTeX 符号 新手入门 公式中常用 集合相关 希腊字母 论文中常用 花体字母 奇奇怪怪的符号
  • 机器学习 项目结构 数据预测 实验报告

    需求 我经过处理得到了测试值 然后进一步得到预测和真实值的比较 然后再把之前的所有相关的参数 评估指标 预测值 比较结果都存入excel 另外我还打算做测试报告模板 包括敏感性分析等 您建议我这些功能如何封装这些功能 哪些功能放到一个文件中
  • 一文搞定Linux安装常用软件再也不用到处找了!!!

    作者主页 编程指南针 作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智