一文搞定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安装常用软件再也不用到处找了!!! 的相关文章

  • 使用 C++ 输出字符串覆盖 Linux 终端上的最后一个字符串

    假设我有一个命令行程序 有没有办法让我说的时候 std cout lt lt stuff 如果我不做std cout lt lt n 在另一个之间std cout lt lt stuff 东西的另一个输出将覆盖同一行上的最后一个东西 清理行
  • 无法为 Python 3.4 创建工作虚拟环境

    I 安装Python 3 4 2 https docs python org 3 using unix html building python和我的 Linux Mint 17 1 中的 Virtualenv 12 0 5 然后我尝试创建
  • 对 sf:: 的未定义引用

    我想用 C 制作 GUI 应用程序 发现 SFML 是一个不错的选择 幸运的是 我使用的是 Linux 所以 SFML 2 4 已经安装在我的系统上 所以我开始搜索一些教程并找到了一个制作简单窗口的教程 但是当我运行代码时 出现错误 提示未
  • 使用netcat将unix套接字传输到tcp套接字

    我正在尝试使用以下命令将 unix 套接字公开为 tcp 套接字 nc lkv 44444 nc Uv var run docker sock 当我尝试访问时localhost 44444 containers json从浏览器中 它不会加
  • UDP 广播发送失败:在 Linux 2.6.30 上“网络无法访问”

    我用udp广播写了一个程序 代码段如下 struct sockaddr in broadcast addr socklen t sock len sizeof broadcast addr bzero broadcast addr sock
  • 编写多个mysql脚本

    是否可以在复合脚本中包含其他 mysql 脚本 理想情况下 我不想为包含的脚本创建存储过程 对于较大的项目 我想分层维护几个较小的脚本 然后根据需要组合它们 但现在 我很乐意学习如何包含其他脚本 source是一个内置命令 您可以在 MyS
  • gdb 错误 - 文件不是可执行格式:无法识别文件格式

    我正在尝试使用 gdb 调试某个名为 xdf 的程序 但是当我运行 gdb xdf 时 出现以下错误 home nealtitusthomas X ray astronomy heasoft 6 24 x86 64 pc linux gnu
  • 远程linux服务器到远程linux服务器大型稀疏文件复制 - 如何?

    我有两台 CentOS 5 4 服务器 每台服务器上都安装了 VMware Server 假设我始终对 vmware 虚拟机使用稀疏文件 将虚拟机文件从一台服务器复制到另一台服务器的最可靠 最快速的方法是什么 虚拟机的文件复制起来很痛苦 因
  • 使用脚本自动输入 SSH 密码

    我需要创建一个自动向 OpenSSH 输入密码的脚本ssh client 假设我需要通过 SSH 进入myname somehost用密码a1234b 我已经尝试过 bin myssh sh ssh myname somehost a123
  • 如何在 Linux x86_64 上模拟 iret

    我正在编写一个基于 Intel VT 的调试器 由于当 NMI Exiting 1 时 iret 指令在 vmx guest 中的性能发生了变化 所以我应该自己处理vmx主机中的NMI 否则 guest会出现nmi可重入错误 我查了英特尔手
  • 是否有可能在linux中找到包含特定文本的文件?

    考虑这种情况 我在文件夹 Example 下有很多文件 如果我需要找到一个包含特定短语 如 Class Example 的文件 我该如何使用 Linux shell 来做到这一点 linux中有类似 定位 的函数可以做到这一点吗 Thank
  • Laravel 所有会话 ID 与 Redis 驱动程序

    在我的应用程序中 我希望允许某些用户能够注销除他 她之外的所有其他用户 当会话驱动程序设置为文件时 我已经完成了此功能 但现在我使用 redis 作为会话驱动程序 并且我无法找到任何方法来列出所有当前会话 就像我在文件时所做的那样司机 问题
  • linux下如何获取昨天和前天?

    我想在变量中获取 sysdate 1 和 sysdate 2 并回显它 我正在使用下面的查询 它将今天的日期作为输出 bin bash tm date Y d m echo tm 如何获取昨天和前天的日期 这是另一种方法 对于昨天来说 da
  • R 未获取用户库

    我有一个带 R 3 6 0 的 Fedora 30 系统 用户库设置在Renviron就像这个 R LIBS USER R LIBS USER R x86 64 redhat linux gnu library 3 6 事实上 它出现在交互
  • Linux、ARM:为什么仅当启动时存在 I2C GPIO 扩展器时才创建 gpiochip

    在 imx6sx 硬件平台 NXP 嵌入式 ARM 上使用 Linux 3 14 52 问题是设备树中指定的 PCF8575 I2C GPIO 扩展器不会实例化为 sys class gpio 结构中的设备 除非它们在内核启动期间存在 这些
  • 如何通过代理将套接字连接到http服务器?

    最近 我使用 C 语言编写了一个程序 用于连接到本地运行的 HTTP 服务器 从而向该服务器发出请求 这对我来说效果很好 之后 我尝试使用相同的代码连接到网络上的另一台服务器 例如 www google com 但我无法连接并从网络中的代理
  • 如何在 Linux 主机上的 docker 容器中挂载目录 [重复]

    这个问题在这里已经有答案了 我想将一个目录从 docker 容器挂载到本地文件系统 该目录是网站根目录 我需要能够使用任何编辑器在本地计算机上编辑它 我知道我可以跑docker run v local path container path
  • Linux 上的 Python 3.6 tkinter 窗口图标错误

    我正在从 Python GUI 编程手册 学习 Python GUI 某项任务要求我通过将以下代码添加到我的配方中来更改窗口图标 Change the main windows icon win iconbitmap r C Python3
  • 如何从 Linux 命令行获取视频文件的分辨率(宽度和高度)?

    我一直在挖掘 mplayer mencoder 和 ffmpeg 文档 但我似乎无法想出anything 我对输出格式不是特别挑剔 因为我可以使用正则表达式将其拉出来 我只是似乎无法首先获取数据 Use ffprobe https ffmp
  • 无法仅在控制台中启动 androidstudio

    你好 我的问题是下一个 我下载了Android Studio如果我去 路径 android studio bin 我执行studio sh 我收到以下错误 No JDK found Please validate either STUDIO

随机推荐

  • 机器学习 项目结构

    需求 我的项目文件夹下有许多文件 我想把我的项目单独放到一个文件夹 我的封装的模块放到一个一个文件夹方便管理 我该怎么做 这样做之后 主程序调用子模块需要在接口函数中调整路径吧 解决 将项目单独放到一个文件夹并将封装的模块放到另一个文件夹是
  • 谷歌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项目 前端项目 人工智