活动公告

系统通知
05-18 21:22
系统通知
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

Rocky Linux开发环境搭建与工具集成全指南 从基础配置到高级开发工具链的完整实践 助力开发者构建高效稳定的工作环境

SunJu_FaceMall

3万

主题

2860

科技点

3万

积分

白金月票

碾压王

积分
32872

塔罗立华奏

<font color=白金月票" /> 发表于 2025-9-17 15:30:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
引言

Rocky Linux作为CentOS的替代品,自发布以来就受到了开发者和企业的广泛关注。它是一个社区支持的企业级操作系统,旨在与Red Hat Enterprise Linux (RHEL)保持二进制兼容。对于开发者而言,Rocky Linux提供了一个稳定、安全且功能丰富的平台,适合构建各种开发环境。

本指南将详细介绍如何在Rocky Linux上搭建一个完整的开发环境,从基础系统配置到高级开发工具链的集成,帮助开发者构建高效稳定的工作环境。无论您是系统管理员、后端开发人员、DevOps工程师还是全栈开发者,本指南都能为您提供实用的指导。

系统安装与基础配置

Rocky Linux安装过程

首先,我们需要从官方网站下载Rocky Linux的ISO镜像文件。Rocky Linux提供了多个版本,包括标准安装、最小安装等。对于开发环境,推荐使用标准安装,因为它包含了更多常用的工具和软件包。

安装步骤如下:

1. 创建启动媒体:使用工具如dd或Rufus将ISO镜像写入USB驱动器。dd if=Rocky-9-x86_64-dvd.iso of=/dev/sdX bs=4M status=progress
2. 从启动媒体启动计算机,选择”Install Rocky Linux”选项。
3. 在安装界面中,选择语言、键盘布局等基本设置。
4. 配置分区方案。对于开发环境,推荐使用自定义分区,至少创建以下分区:/boot- 1GB/- 50GB/home- 剩余空间swap- 内存大小的2倍或8GB(取较大值)
5. /boot- 1GB
6. /- 50GB
7. /home- 剩余空间
8. swap- 内存大小的2倍或8GB(取较大值)
9. 设置网络和主机名。
10. 创建用户账户和设置root密码。
11. 开始安装过程,等待完成。

创建启动媒体:使用工具如dd或Rufus将ISO镜像写入USB驱动器。
  1. dd if=Rocky-9-x86_64-dvd.iso of=/dev/sdX bs=4M status=progress
复制代码

从启动媒体启动计算机,选择”Install Rocky Linux”选项。

在安装界面中,选择语言、键盘布局等基本设置。

配置分区方案。对于开发环境,推荐使用自定义分区,至少创建以下分区:

• /boot- 1GB
• /- 50GB
• /home- 剩余空间
• swap- 内存大小的2倍或8GB(取较大值)

设置网络和主机名。

创建用户账户和设置root密码。

开始安装过程,等待完成。

系统更新与基本设置

安装完成后,首先进行系统更新,确保所有软件包都是最新的:
  1. sudo dnf update -y
复制代码

安装一些基本的工具和软件包:
  1. sudo dnf install -y wget curl git vim nano htop tree net-tools
复制代码

设置时区:
  1. sudo timedatectl set-timezone Asia/Shanghai
复制代码

启用EPEL仓库,以获取更多软件包:
  1. sudo dnf install -y epel-release
复制代码

用户账户与权限管理

为了安全起见,建议使用普通用户账户进行日常开发工作,只在需要时使用sudo获取管理员权限。

将用户添加到wheel组,以获取sudo权限:
  1. sudo usermod -aG wheel username
复制代码

配置sudo免密码(可选,不推荐在生产环境中使用):
  1. echo "username ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/username
复制代码

开发环境基础工具

终端与Shell配置

Rocky Linux默认使用Bash作为Shell,但开发者可能更喜欢功能更强大的Zsh。安装Zsh和Oh My Zsh:
  1. sudo dnf install -y zsh
  2. sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
复制代码

安装一些有用的Zsh插件:
  1. git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
  2. git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
复制代码

编辑~/.zshrc文件,添加插件:
  1. plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
复制代码

安装并配置tmux,一个终端复用工具:
  1. sudo dnf install -y tmux
复制代码

创建基本的tmux配置文件~/.tmux.conf:
  1. # 设置前缀键为Ctrl+a
  2. unbind C-b
  3. set -g prefix C-a
  4. bind C-a send-prefix
  5. # 启用鼠标支持
  6. set -g mouse on
  7. # 设置状态栏
  8. set -g status-bg black
  9. set -g status-fg white
复制代码

文本编辑器与IDE

Vim是一个强大的文本编辑器,适合在终端中使用。安装Vim增强版:
  1. sudo dnf install -y vim-enhanced
复制代码

创建基本的Vim配置文件~/.vimrc:
  1. " 基本设置
  2. set number          " 显示行号
  3. set syntax on       " 语法高亮
  4. set tabstop=4       " 设置制表符宽度为4
  5. set shiftwidth=4    " 设置缩进宽度为4
  6. set expandtab       " 将制表符转换为空格
  7. set autoindent      " 自动缩进
  8. set smartindent     " 智能缩进
  9. set showmatch       " 显示匹配的括号
  10. set incsearch       " 增量搜索
  11. set hlsearch        " 高亮搜索结果
  12. set encoding=utf-8  " 使用UTF-8编码
  13. set fileencoding=utf-8
  14. " 安装插件管理器Vundle
  15. set nocompatible              " be iMproved, required
  16. filetype off                  " required
  17. " 设置运行时路径,包括Vundle并初始化
  18. set rtp+=~/.vim/bundle/Vundle.vim
  19. call vundle#begin()
  20. " 让Vundle管理Vundle,必需
  21. Plugin 'VundleVim/Vundle.vim'
  22. " 在此添加其他插件
  23. Plugin 'tpope/vim-fugitive'           " Git集成
  24. Plugin 'scrooloose/nerdtree'          " 文件浏览器
  25. Plugin 'vim-airline/vim-airline'      " 状态栏
  26. Plugin 'vim-airline/vim-airline-themes' " 状态栏主题
  27. Plugin 'sheerun/vim-polyglot'         " 语法高亮集合
  28. Plugin 'jiangmiao/auto-pairs'         " 自动配对括号
  29. call vundle#end()            " 必需
  30. filetype plugin indent on    " 必需
  31. " NERDTree快捷键
  32. map <C-n> :NERDTreeToggle<CR>
复制代码

安装Vundle和插件:
  1. git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  2. vim +PluginInstall +qall
复制代码

Visual Studio Code是一个流行的跨平台IDE,适合各种开发任务。安装VS Code:
  1. sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
  2. echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/vscode.repo
  3. sudo dnf check-update
  4. sudo dnf install -y code
复制代码

安装一些常用的VS Code扩展:
  1. code --install-extension ms-python.python
  2. code --install-extension ms-vscode.cpptools
  3. code --install-extension ms-vscode.vscode-typescript-next
  4. code --install-extension ms-vscode.vscode-json
  5. code --install-extension ms-azuretools.vscode-docker
  6. code --install-extension ms-kubernetes-tools.vscode-kubernetes-tools
  7. code --install-extension eamodio.gitlens
  8. code --install-extension ms-vscode-remote.remote-ssh
复制代码

版本控制工具(Git)

Git是最流行的版本控制系统,Rocky Linux默认已经安装了Git,但可能版本较旧。安装最新版本的Git:
  1. sudo dnf install -y git
复制代码

配置Git:
  1. git config --global user.name "Your Name"
  2. git config --global user.email "your.email@example.com"
  3. git config --global core.editor vim
  4. git config --global color.ui true
复制代码

生成SSH密钥,用于与GitHub等代码托管平台交互:
  1. ssh-keygen -t rsa -b 4096 -C "your.email@example.com"
  2. eval "$(ssh-agent -s)"
  3. ssh-add ~/.ssh/id_rsa
复制代码

将公钥添加到GitHub或其他代码托管平台:
  1. cat ~/.ssh/id_rsa.pub
复制代码

安装一些有用的Git工具:
  1. sudo dnf install -y git-gui gitk tig
复制代码

编程语言环境搭建

Python开发环境

Rocky Linux默认安装了Python 3,但可能不是最新版本。安装Python 3和开发工具:
  1. sudo dnf install -y python3 python3-devel python3-pip
复制代码

安装pyenv,用于管理多个Python版本:
  1. curl https://pyenv.run | bash
  2. echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
  3. echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
  4. echo 'eval "$(pyenv init -)"' >> ~/.zshrc
  5. source ~/.zshrc
复制代码

安装特定版本的Python:
  1. pyenv install 3.10.6
  2. pyenv global 3.10.6
复制代码

创建虚拟环境:
  1. python3 -m venv myproject
  2. source myproject/bin/activate
复制代码

安装常用的Python包:
  1. pip install --upgrade pip
  2. pip install numpy pandas matplotlib scipy jupyter ipython
  3. pip install django flask fastapi
  4. pip install pytest black flake8 mypy
  5. pip install requests beautifulsoup4 selenium
复制代码

安装Jupyter Lab:
  1. pip install jupyterlab
  2. jupyter lab --generate-config
  3. echo "c.ServerApp.ip = '0.0.0.0'" >> ~/.jupyter/jupyter_lab_config.py
  4. echo "c.ServerApp.open_browser = False" >> ~/.jupyter/jupyter_lab_config.py
  5. echo "c.ServerApp.allow_root = True" >> ~/.jupyter/jupyter_lab_config.py
  6. echo "c.ServerApp.password = 'sha1:your_hashed_password'" >> ~/.jupyter/jupyter_lab_config.py
复制代码

Java开发环境

安装OpenJDK:
  1. sudo dnf install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
  2. sudo dnf install -y java-11-openjdk java-11-openjdk-devel
  3. sudo dnf install -y java-17-openjdk java-17-openjdk-devel
复制代码

安装SDKMAN!,用于管理多个Java版本和相关工具:
  1. curl -s "https://get.sdkman.io" | bash
  2. source "$HOME/.sdkman/bin/sdkman-init.sh"
复制代码

使用SDKMAN!安装Java和其他工具:
  1. sdk install java 11.0.16-tem
  2. sdk install java 17.0.4-tem
  3. sdk install maven
  4. sdk install gradle
  5. sdk install springboot
复制代码

配置环境变量:
  1. echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk' >> ~/.zshrc
  2. echo 'export MAVEN_HOME=$HOME/.sdkman/candidates/maven/current' >> ~/.zshrc
  3. echo 'export GRADLE_HOME=$HOME/.sdkman/candidates/gradle/current' >> ~/.zshrc
  4. echo 'export PATH=$MAVEN_HOME/bin:$GRADLE_HOME/bin:$PATH' >> ~/.zshrc
  5. source ~/.zshrc
复制代码

安装IntelliJ IDEA:
  1. sudo dnf install -y intelij-idea-community
复制代码

C/C++开发环境

安装C/C++编译器和开发工具:
  1. sudo dnf groupinstall -y "Development Tools"
  2. sudo dnf install -y gcc-c++ cmake clang clang-tools-extra
复制代码

安装调试工具:
  1. sudo dnf install -y gdb valgrind
复制代码

安装构建工具:
  1. sudo dnf install -y make automake autoconf
复制代码

安装包管理器Conan:
  1. pip install conan
  2. conan profile detect --force
复制代码

示例CMake项目:

创建项目目录结构:
  1. mkdir myproject
  2. cd myproject
  3. mkdir src include build
复制代码

创建CMakeLists.txt文件:
  1. cmake_minimum_required(VERSION 3.10)
  2. project(MyProject)
  3. set(CMAKE_CXX_STANDARD 17)
  4. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  5. include_directories(include)
  6. add_executable(myapp src/main.cpp)
复制代码

创建include/myapp.hpp文件:
  1. #ifndef MYAPP_HPP
  2. #define MYAPP_HPP
  3. #include <iostream>
  4. #include <string>
  5. void greet(const std::string& name);
  6. #endif // MYAPP_HPP
复制代码

创建src/main.cpp文件:
  1. #include "myapp.hpp"
  2. void greet(const std::string& name) {
  3.     std::cout << "Hello, " << name << "!" << std::endl;
  4. }
  5. int main() {
  6.     greet("World");
  7.     return 0;
  8. }
复制代码

构建项目:
  1. cd build
  2. cmake ..
  3. make
  4. ./myapp
复制代码

Node.js/JavaScript环境

安装Node Version Manager (nvm):
  1. curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
  2. source ~/.zshrc
复制代码

安装Node.js:
  1. nvm install 16
  2. nvm install 18
  3. nvm use 18
复制代码

安装Yarn包管理器:
  1. npm install -g yarn
复制代码

安装常用的全局包:
  1. npm install -g @vue/cli @angular/cli create-react-app express-generator typescript ts-node nodemon
复制代码

创建一个简单的Express应用:
  1. mkdir my-express-app
  2. cd my-express-app
  3. npm init -y
  4. npm install express
复制代码

创建index.js文件:
  1. const express = require('express');
  2. const app = express();
  3. const port = 3000;
  4. app.get('/', (req, res) => {
  5.   res.send('Hello World!');
  6. });
  7. app.listen(port, () => {
  8.   console.log(`App listening at http://localhost:${port}`);
  9. });
复制代码

运行应用:
  1. node index.js
复制代码

Go语言环境

安装Go:
  1. sudo dnf install -y golang
复制代码

配置Go环境变量:
  1. echo 'export GOPATH=$HOME/go' >> ~/.zshrc
  2. echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> ~/.zshrc
  3. source ~/.zshrc
复制代码

安装Go工具链:
  1. go install golang.org/x/tools/cmd/goimports@latest
  2. go install golang.org/x/tools/cmd/godoc@latest
  3. go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
复制代码

创建一个简单的Go应用:
  1. mkdir my-go-app
  2. cd my-go-app
  3. go mod init my-go-app
复制代码

创建main.go文件:
  1. package main
  2. import (
  3.         "fmt"
  4.         "net/http"
  5. )
  6. func handler(w http.ResponseWriter, r *http.Request) {
  7.         fmt.Fprintf(w, "Hello, World!")
  8. }
  9. func main() {
  10.         http.HandleFunc("/", handler)
  11.         http.ListenAndServe(":8080", nil)
  12. }
复制代码

运行应用:
  1. go run main.go
复制代码

Ruby环境

安装Ruby和RubyGems:
  1. sudo dnf install -y ruby ruby-devel
复制代码

安装Ruby版本管理器RVM:
  1. gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
  2. curl -sSL https://get.rvm.io | bash -s stable
  3. source ~/.rvm/scripts/rvm
复制代码

安装特定版本的Ruby:
  1. rvm install 3.1.2
  2. rvm use 3.1.2 --default
复制代码

安装Bundler和Rails:
  1. gem install bundler rails
复制代码

创建一个简单的Rails应用:
  1. rails new my-rails-app
  2. cd my-rails-app
  3. rails server
复制代码

PHP环境

安装PHP和常用扩展:
  1. sudo dnf install -y php php-cli php-fpm php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json
复制代码

安装Composer:
  1. curl -sS https://getcomposer.org/installer | php
  2. sudo mv composer.phar /usr/local/bin/composer
复制代码

安装Laravel:
  1. composer global require laravel/installer
  2. echo 'export PATH=$PATH:$HOME/.config/composer/vendor/bin' >> ~/.zshrc
  3. source ~/.zshrc
复制代码

创建一个Laravel应用:
  1. laravel new my-laravel-app
  2. cd my-laravel-app
  3. php artisan serve
复制代码

容器化与虚拟化

Docker安装与配置

安装Docker:
  1. sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  2. sudo dnf install -y docker-ce docker-ce-cli containerd.io
  3. sudo systemctl start docker
  4. sudo systemctl enable docker
复制代码

将用户添加到docker组,以避免使用sudo:
  1. sudo usermod -aG docker $USER
  2. newgrp docker
复制代码

安装Docker Compose:
  1. sudo curl -L "https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  2. sudo chmod +x /usr/local/bin/docker-compose
复制代码

创建一个简单的Docker应用:

创建Dockerfile:
  1. FROM python:3.9-slim
  2. WORKDIR /app
  3. COPY requirements.txt .
  4. RUN pip install --no-cache-dir -r requirements.txt
  5. COPY . .
  6. CMD ["python", "app.py"]
复制代码

创建requirements.txt:
  1. flask==2.1.2
复制代码

创建app.py:
  1. from flask import Flask
  2. app = Flask(__name__)
  3. @app.route('/')
  4. def hello():
  5.     return 'Hello from Docker!'
  6. if __name__ == '__main__':
  7.     app.run(host='0.0.0.0', port=5000)
复制代码

构建并运行Docker容器:
  1. docker build -t my-flask-app .
  2. docker run -p 5000:5000 my-flask-app
复制代码

Kubernetes本地集群

安装Minikube,用于在本地运行Kubernetes集群:
  1. curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
  2. sudo install minikube-linux-amd64 /usr/local/bin/minikube
复制代码

安装kubectl:
  1. curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
  2. sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
复制代码

启动Minikube集群:
  1. minikube start --driver=docker
复制代码

部署一个简单的Nginx应用:
  1. kubectl create deployment nginx --image=nginx
  2. kubectl expose deployment nginx --port=80 --type=NodePort
  3. minikube service nginx
复制代码

虚拟机管理

安装KVM和libvirt:
  1. sudo dnf install -y @virtualization
  2. sudo systemctl start libvirtd
  3. sudo systemctl enable libvirtd
  4. sudo usermod -aG libvirt $(whoami)
复制代码

安装virt-manager,一个图形化的虚拟机管理工具:
  1. sudo dnf install -y virt-manager
复制代码

安装Vagrant,用于管理虚拟机:
  1. sudo dnf install -y vagrant
复制代码

创建一个Vagrantfile:
  1. Vagrant.configure("2") do |config|
  2.   config.vm.box = "rockylinux/9"
  3.   config.vm.network "private_network", ip: "192.168.33.10"
  4.   config.vm.provider "virtualbox" do |vb|
  5.     vb.memory = "2048"
  6.     vb.cpus = "2"
  7.   end
  8. end
复制代码

启动虚拟机:
  1. vagrant up
复制代码

数据库环境

MySQL/MariaDB

安装MariaDB(MySQL的分支):
  1. sudo dnf install -y mariadb-server mariadb
  2. sudo systemctl start mariadb
  3. sudo systemctl enable mariadb
复制代码

安全安装:
  1. sudo mysql_secure_installation
复制代码

创建数据库和用户:
  1. CREATE DATABASE mydb;
  2. CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
  3. GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
  4. FLUSH PRIVILEGES;
复制代码

PostgreSQL

安装PostgreSQL:
  1. sudo dnf install -y postgresql-server postgresql-contrib
  2. sudo postgresql-setup --initdb
  3. sudo systemctl start postgresql
  4. sudo systemctl enable postgresql
复制代码

创建数据库和用户:
  1. sudo -u postgres createdb mydb
  2. sudo -u postgres createuser -s myuser
  3. sudo -u postgres psql -c "ALTER USER myuser PASSWORD 'mypassword';"
复制代码

MongoDB

安装MongoDB:
  1. sudo tee /etc/yum.repos.d/mongodb-org-6.0.repo << EOF
  2. [mongodb-org-6.0]
  3. name=MongoDB Repository
  4. baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/6.0/x86_64/
  5. gpgcheck=1
  6. enabled=1
  7. gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
  8. EOF
  9. sudo dnf install -y mongodb-org
  10. sudo systemctl start mongod
  11. sudo systemctl enable mongod
复制代码

创建用户和数据库:
  1. use admin
  2. db.createUser({
  3.   user: "myuser",
  4.   pwd: "mypassword",
  5.   roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
  6. })
  7. use mydb
  8. db.createUser({
  9.   user: "myuser",
  10.   pwd: "mypassword",
  11.   roles: [{ role: "readWrite", db: "mydb" }]
  12. })
复制代码

Redis

安装Redis:
  1. sudo dnf install -y redis
  2. sudo systemctl start redis
  3. sudo systemctl enable redis
复制代码

配置Redis密码认证:

编辑/etc/redis.conf文件,取消注释并修改:
  1. requirepass yourpassword
复制代码

重启Redis:
  1. sudo systemctl restart redis
复制代码

Web服务器与反向代理

Nginx

安装Nginx:
  1. sudo dnf install -y nginx
  2. sudo systemctl start nginx
  3. sudo systemctl enable nginx
复制代码

配置Nginx作为反向代理:

创建配置文件/etc/nginx/conf.d/myapp.conf:
  1. server {
  2.     listen 80;
  3.     server_name myapp.example.com;
  4.     location / {
  5.         proxy_pass http://localhost:5000;
  6.         proxy_set_header Host $host;
  7.         proxy_set_header X-Real-IP $remote_addr;
  8.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  9.     }
  10. }
复制代码

测试并重新加载Nginx配置:
  1. sudo nginx -t
  2. sudo systemctl reload nginx
复制代码

Apache

安装Apache:
  1. sudo dnf install -y httpd
  2. sudo systemctl start httpd
  3. sudo systemctl enable httpd
复制代码

配置Apache作为反向代理:

创建配置文件/etc/httpd/conf.d/myapp.conf:
  1. <VirtualHost *:80>
  2.     ServerName myapp.example.com
  3.     ProxyPreserveHost On
  4.     ProxyPass / http://localhost:5000/
  5.     ProxyPassReverse / http://localhost:5000/
  6. </VirtualHost>
复制代码

测试并重新加载Apache配置:
  1. sudo apachectl configtest
  2. sudo systemctl reload httpd
复制代码

DevOps工具链

CI/CD工具

安装Jenkins:
  1. sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
  2. sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
  3. sudo dnf install -y jenkins java-11-openjdk
  4. sudo systemctl start jenkins
  5. sudo systemctl enable jenkins
复制代码

安装GitLab Runner:
  1. curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
  2. sudo dnf install -y gitlab-runner
  3. sudo gitlab-runner start
复制代码

注册GitLab Runner:
  1. sudo gitlab-runner register
复制代码

监控与日志

安装Prometheus:
  1. sudo useradd --no-create-home --shell /bin/false prometheus
  2. sudo useradd --no-create-home --shell /bin/false node_exporter
  3. sudo mkdir /etc/prometheus
  4. sudo mkdir /var/lib/prometheus
  5. sudo chown prometheus:prometheus /etc/prometheus
  6. sudo chown prometheus:prometheus /var/lib/prometheus
  7. wget https://github.com/prometheus/prometheus/releases/download/v2.36.2/prometheus-2.36.2.linux-amd64.tar.gz
  8. tar xvf prometheus-2.36.2.linux-amd64.tar.gz
  9. sudo cp prometheus-2.36.2.linux-amd64/prometheus /usr/local/bin/
  10. sudo cp prometheus-2.36.2.linux-amd64/promtool /usr/local/bin/
  11. sudo chown prometheus:prometheus /usr/local/bin/prometheus
  12. sudo chown prometheus:prometheus /usr/local/bin/promtool
  13. sudo cp -r prometheus-2.36.2.linux-amd64/consoles /etc/prometheus
  14. sudo cp -r prometheus-2.36.2.linux-amd64/console_libraries /etc/prometheus
  15. sudo chown -R prometheus:prometheus /etc/prometheus/consoles
  16. sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
复制代码

创建Prometheus配置文件/etc/prometheus/prometheus.yml:
  1. global:
  2.   scrape_interval: 15s
  3. scrape_configs:
  4.   - job_name: 'prometheus'
  5.     scrape_interval: 5s
  6.     static_configs:
  7.       - targets: ['localhost:9090']
复制代码

创建Prometheus服务文件/etc/systemd/system/prometheus.service:
  1. [Unit]
  2. Description=Prometheus
  3. Wants=network-online.target
  4. After=network-online.target
  5. [Service]
  6. User=prometheus
  7. Group=prometheus
  8. Type=simple
  9. ExecStart=/usr/local/bin/prometheus \
  10.     --config.file /etc/prometheus/prometheus.yml \
  11.     --storage.tsdb.path /var/lib/prometheus/ \
  12.     --web.console.templates=/etc/prometheus/consoles \
  13.     --web.console.libraries=/etc/prometheus/console_libraries
  14. [Install]
  15. WantedBy=multi-user.target
复制代码

启动Prometheus:
  1. sudo systemctl start prometheus
  2. sudo systemctl enable prometheus
复制代码

安装Grafana:
  1. sudo wget https://dl.grafana.com/oss/release/grafana-9.1.6-1.x86_64.rpm
  2. sudo dnf install -y grafana-9.1.6-1.x86_64.rpm
  3. sudo systemctl start grafana-server
  4. sudo systemctl enable grafana-server
复制代码

安装Elasticsearch:
  1. sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
  2. sudo tee /etc/yum.repos.d/elasticsearch.repo << EOF
  3. [elasticsearch-7.x]
  4. name=Elasticsearch repository for 7.x packages
  5. baseurl=https://artifacts.elastic.co/packages/7.x/yum
  6. gpgcheck=1
  7. gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
  8. enabled=1
  9. autorefresh=1
  10. type=rpm-md
  11. EOF
  12. sudo dnf install -y elasticsearch
  13. sudo systemctl start elasticsearch
  14. sudo systemctl enable elasticsearch
复制代码

安装Logstash:
  1. sudo dnf install -y logstash
  2. sudo systemctl start logstash
  3. sudo systemctl enable logstash
复制代码

安装Kibana:
  1. sudo dnf install -y kibana
  2. sudo systemctl start kibana
  3. sudo systemctl enable kibana
复制代码

配置管理工具

安装Ansible:
  1. sudo dnf install -y ansible
复制代码

创建一个简单的Ansible playbookplaybook.yml:
  1. ---
  2. - hosts: localhost
  3.   become: yes
  4.   tasks:
  5.     - name: Install Nginx
  6.       dnf:
  7.         name: nginx
  8.         state: present
  9.    
  10.     - name: Start Nginx
  11.       service:
  12.         name: nginx
  13.         state: started
  14.         enabled: yes
复制代码

运行playbook:
  1. ansible-playbook playbook.yml
复制代码

安装Terraform:
  1. sudo dnf install -y dnf-plugins-core
  2. sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
  3. sudo dnf install -y terraform
复制代码

创建一个简单的Terraform配置main.tf:
  1. terraform {
  2.   required_providers {
  3.     docker = {
  4.       source  = "kreuzwerker/docker"
  5.       version = "~> 2.13.0"
  6.     }
  7.   }
  8. }
  9. provider "docker" {}
  10. resource "docker_image" "nginx" {
  11.   name         = "nginx:latest"
  12.   keep_locally = false
  13. }
  14. resource "docker_container" "nginx" {
  15.   image = docker_image.nginx.image_id
  16.   name  = "tutorial"
  17.   ports {
  18.     internal = 80
  19.     external = 8000
  20.   }
  21. }
复制代码

初始化并应用Terraform配置:
  1. terraform init
  2. terraform apply
复制代码

性能优化与安全加固

系统性能优化

调整内核参数:

编辑/etc/sysctl.conf文件:
  1. # 增加文件描述符限制
  2. fs.file-max = 100000
  3. # 增加网络缓冲区大小
  4. net.core.rmem_max = 16777216
  5. net.core.wmem_max = 16777216
  6. net.ipv4.tcp_rmem = 4096 87380 16777216
  7. net.ipv4.tcp_wmem = 4096 65536 16777216
  8. # 优化TCP连接
  9. net.ipv4.tcp_fin_timeout = 30
  10. net.ipv4.tcp_keepalive_time = 1200
  11. net.ipv4.tcp_max_syn_backlog = 8192
  12. net.ipv4.tcp_max_tw_buckets = 5000
  13. net.ipv4.tcp_tw_reuse = 1
  14. net.ipv4.tcp_tw_recycle = 1
  15. net.ipv4.tcp_syncookies = 1
  16. # 禁用IPv6
  17. net.ipv6.conf.all.disable_ipv6 = 1
  18. net.ipv6.conf.default.disable_ipv6 = 1
复制代码

应用内核参数:
  1. sudo sysctl -p
复制代码

调整文件描述符限制:

编辑/etc/security/limits.conf文件:
  1. * soft nofile 100000
  2. * hard nofile 100000
复制代码

安全设置

配置防火墙:
  1. sudo systemctl start firewalld
  2. sudo systemctl enable firewalld
  3. sudo firewall-cmd --permanent --add-service=ssh
  4. sudo firewall-cmd --permanent --add-service=http
  5. sudo firewall-cmd --permanent --add-service=https
  6. sudo firewall-cmd --reload
复制代码

安装并配置Fail2Ban:
  1. sudo dnf install -y fail2ban
  2. sudo systemctl start fail2ban
  3. sudo systemctl enable fail2ban
复制代码

创建Fail2Ban配置文件/etc/fail2ban/jail.local:
  1. [DEFAULT]
  2. bantime = 1h
  3. findtime = 10m
  4. maxretry = 3
  5. [sshd]
  6. enabled = true
  7. port = ssh
  8. filter = sshd
  9. logpath = /var/log/secure
  10. maxretry = 3
复制代码

重启Fail2Ban:
  1. sudo systemctl restart fail2ban
复制代码

安装并配置SELinux:
  1. sudo dnf install -y setroubleshoot-server
  2. sudo setenforce 1
  3. sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config
复制代码

高级开发工具集成

API开发与测试工具

安装Postman:
  1. sudo dnf install -y snapd
  2. sudo systemctl enable --now snapd.socket
  3. sudo ln -s /var/lib/snapd/snap /snap
  4. sudo snap install postman
复制代码

安装Insomnia:
  1. sudo dnf install -y insomnia
复制代码

文档工具

安装MkDocs:
  1. pip install mkdocs
复制代码

创建一个MkDocs项目:
  1. mkdocs new my-project
  2. cd my-project
  3. mkdocs serve
复制代码

安装Sphinx:
  1. pip install sphinx
复制代码

创建一个Sphinx项目:
  1. mkdir my-docs
  2. cd my-docs
  3. sphinx-quickstart
复制代码

项目管理工具

安装Taiga:
  1. sudo dnf install -y git python3 python3-devel python3-pip libxml2-devel libxslt-devel zlib-devel openssl-devel
  2. sudo pip install -U taiga-back
  3. sudo pip install circus
复制代码

安装Redmine:
  1. sudo dnf install -y ruby ruby-devel rubygems mysql-devel httpd httpd-devel
  2. sudo gem install redmine
复制代码

常见问题与解决方案

问题1:Docker容器无法访问外部网络

解决方案:
  1. sudo firewall-cmd --permanent --zone=trusted --change-interface=docker0
  2. sudo firewall-cmd --reload
复制代码

问题2:Node.js应用端口被占用

解决方案:
  1. sudo lsof -i :3000
  2. sudo kill -9 <PID>
复制代码

问题3:Python虚拟环境无法激活

解决方案:
  1. python3 -m venv --clear myenv
  2. source myenv/bin/activate
复制代码

问题4:Git提交时出现身份验证错误

解决方案:
  1. git config --global credential.helper store
  2. git pull
  3. # 输入用户名和密码
复制代码

问题5:Java应用内存不足

解决方案:
  1. export JAVA_OPTS="-Xms512m -Xmx1024m"
复制代码

总结与最佳实践

在Rocky Linux上搭建开发环境需要系统性的规划和实施。本指南涵盖了从基础系统配置到高级开发工具链的完整实践,帮助开发者构建高效稳定的工作环境。

最佳实践

1. 使用版本控制:始终使用Git等版本控制系统管理代码,并定期提交。
2. 自动化部署:使用CI/CD工具如Jenkins或GitLab CI自动化构建和部署流程。
3. 容器化应用:使用Docker容器化应用,确保环境一致性。
4. 监控与日志:实施全面的监控和日志记录,及时发现和解决问题。
5. 安全加固:定期更新系统,配置防火墙,使用SELinux增强安全性。
6. 资源管理:合理分配系统资源,避免资源争用和浪费。
7. 文档化:为项目创建详细的文档,便于团队协作和知识传承。

使用版本控制:始终使用Git等版本控制系统管理代码,并定期提交。

自动化部署:使用CI/CD工具如Jenkins或GitLab CI自动化构建和部署流程。

容器化应用:使用Docker容器化应用,确保环境一致性。

监控与日志:实施全面的监控和日志记录,及时发现和解决问题。

安全加固:定期更新系统,配置防火墙,使用SELinux增强安全性。

资源管理:合理分配系统资源,避免资源争用和浪费。

文档化:为项目创建详细的文档,便于团队协作和知识传承。

通过遵循这些最佳实践,开发者可以在Rocky Linux上构建一个高效、稳定且安全的开发环境,提高开发效率和代码质量。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则