引言:Rocky Linux作为开发平台的优势

Rocky Linux作为CentOS的替代品,已经成为许多开发者和系统管理员的首选操作系统。它不仅继承了CentOS的稳定性和可靠性,还提供了长期支持,使其成为构建专业级开发环境的理想选择。本教程将详细介绍如何在Rocky Linux上搭建一个高效、稳定的开发环境,帮助开发者提升工作效率。

Rocky Linux具有以下优势,使其成为开发平台的绝佳选择:

  • 稳定性:基于RHEL源代码,提供企业级稳定性
  • 长期支持:提供长达10年的支持周期
  • 兼容性:与RHEL完全兼容,可以无缝运行大多数企业应用
  • 社区支持:拥有活跃的社区,提供及时的技术支持和更新
  • 安全性:内置强大的安全功能,适合开发安全敏感的应用

系统安装与基础配置

系统安装

首先,我们需要安装Rocky Linux系统。以下是详细步骤:

  1. 从官方网站下载Rocky Linux ISO镜像文件:

    wget https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.1-x86_64-dvd.iso 
  2. 创建启动盘(以Linux为例):

    sudo dd if=Rocky-9.1-x86_64-dvd.iso of=/dev/sdX bs=4M status=progress 

    注意:将/dev/sdX替换为你的USB设备名称。

  3. 从USB启动并按照安装向导完成系统安装。建议选择”最小安装”以减少不必要的软件包,后续我们将手动安装所需的开发工具。

基础系统配置

系统安装完成后,我们需要进行一些基础配置:

  1. 更新系统:

    sudo dnf update -y 
  2. 添加常用工具:

    sudo dnf install -y wget curl git vim htop tree net-tools 
  3. 配置防火墙:

    sudo systemctl enable --now firewalld sudo firewall-cmd --add-service=ssh --permanent sudo firewall-cmd --reload 
  4. 配置时区:

    sudo timedatectl set-timezone Asia/Shanghai 
  5. 创建开发用户(可选,推荐):

    sudo useradd -m -G wheel developer sudo passwd developer 

常用开发工具安装与配置

文本编辑器与IDE

Visual Studio Code

VS Code是一款流行的轻量级但功能强大的代码编辑器:

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "
nname=Visual Studio Codenbaseurl=https://packages.microsoft.com/yumrepos/vscodenenabled=1ngpgcheck=1ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo' sudo dnf check-update sudo dnf install -y code

安装完成后,可以通过以下命令启动VS Code:

code 

Vim

Vim是一款强大的文本编辑器,适合在终端环境下使用:

sudo dnf install -y vim-enhanced 

配置Vim(创建或编辑~/.vimrc文件):

cat > ~/.vimrc << EOF set number set syntax=on set tabstop=4 set shiftwidth=4 set expandtab set autoindent set ruler set showcmd set encoding=utf-8 set fileencoding=utf-8 set fileformat=unix EOF 

版本控制工具

Git

Git是分布式版本控制系统,是现代开发不可或缺的工具:

sudo dnf install -y git 

配置Git:

git config --global user.name "Your Name" git config --global user.email "your.email@example.com" git config --global core.editor vim 

GitHub CLI

GitHub CLI是GitHub的官方命令行工具:

sudo dnf install -y gh 

登录GitHub:

gh auth login 

编程语言环境

Python

Python是一种广泛使用的高级编程语言:

sudo dnf install -y python3 python3-pip 

创建Python虚拟环境:

python3 -m venv myenv source myenv/bin/activate 

安装常用Python包:

pip install --upgrade pip pip install numpy pandas matplotlib jupyter 

Node.js

Node.js是JavaScript运行时环境:

curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash - sudo dnf install -y nodejs 

验证安装:

node -v npm -v 

Java

Java是一种广泛使用的编程语言:

sudo dnf install -y java-17-openjdk java-17-openjdk-devel 

验证安装:

java -version javac -version 

Go

Go是Google开发的编程语言:

wget https://golang.org/dl/go1.19.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.19.linux-amd64.tar.gz 

配置环境变量(编辑~/.bashrc~/.zshrc):

echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc source ~/.bashrc 

验证安装:

go version 

数据库

MySQL

MySQL是流行的关系型数据库管理系统:

sudo dnf install -y mysql-server sudo systemctl enable --now mysqld sudo mysql_secure_installation 

PostgreSQL

PostgreSQL是功能强大的开源关系型数据库:

sudo dnf install -y postgresql postgresql-server sudo postgresql-setup --initdb sudo systemctl enable --now postgresql 

MongoDB

MongoDB是流行的NoSQL数据库:

sudo dnf install -y mongodb-server sudo systemctl enable --now mongod 

容器化技术

Docker

Docker是流行的容器化平台:

sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker sudo usermod -aG docker $USER 

验证安装:

docker run hello-world 

Docker Compose

Docker Compose是用于定义和运行多容器Docker应用程序的工具:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose 

Kubernetes

Kubernetes是容器编排平台:

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni EOF sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes sudo systemctl enable --now kubelet 

系统优化与性能调优

内核参数优化

编辑/etc/sysctl.conf文件,添加以下内容:

cat << EOF | sudo tee -a /etc/sysctl.conf # 增加文件描述符限制 fs.file-max = 100000 # 增加进程数限制 kernel.pid_max = 4194304 # 优化网络参数 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 120 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.ip_local_port_range = 10000 65000 EOF 

应用配置:

sudo sysctl -p 

限制资源使用

编辑/etc/security/limits.conf文件,添加以下内容:

cat << EOF | sudo tee -a /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536 * soft nproc 32768 * hard nproc 32768 EOF 

磁盘性能优化

使用XFS文件系统(如果尚未使用):

sudo dnf install -y xfsprogs sudo mkfs.xfs /dev/sdX sudo mount /dev/sdX /mnt/data 

内存管理优化

创建swap文件(如果系统没有足够的swap空间):

sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab 

开发环境自动化配置

使用Ansible自动化配置

Ansible是一款自动化配置管理工具:

sudo dnf install -y ansible 

创建一个基本的Ansible playbook(dev_setup.yml):

--- - name: Development Environment Setup hosts: localhost become: yes tasks: - name: Install development tools dnf: name: - git - vim - python3 - python3-pip - nodejs - java-17-openjdk state: present - name: Install Docker dnf: name: - docker-ce - docker-ce-cli - containerd.io state: present - name: Start and enable Docker systemd: name: docker state: started enabled: yes - name: Add user to docker group user: name: "{{ ansible_user }}" groups: docker append: yes - name: Install VS Code dnf: name: code state: present 

运行playbook:

ansible-playbook dev_setup.yml 

使用Shell脚本自动化配置

创建一个shell脚本(setup_dev_env.sh)来自动化开发环境配置:

#!/bin/bash # 更新系统 echo "Updating system..." sudo dnf update -y # 安装基础工具 echo "Installing basic tools..." sudo dnf install -y wget curl git vim htop tree net-tools # 安装开发工具 echo "Installing development tools..." sudo dnf install -y python3 python3-pip sudo dnf install -y nodejs sudo dnf install -y java-17-openjdk java-17-openjdk-devel # 安装Docker echo "Installing Docker..." sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker sudo usermod -aG docker $USER # 安装VS Code echo "Installing VS Code..." sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "
nname=Visual Studio Codenbaseurl=https://packages.microsoft.com/yumrepos/vscodenenabled=1ngpgcheck=1ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo' sudo dnf check-update sudo dnf install -y code echo "Development environment setup completed!" echo "Please log out and log back in to apply docker group changes."

使脚本可执行并运行:

chmod +x setup_dev_env.sh ./setup_dev_env.sh 

常见问题与解决方案

问题1:Docker权限问题

问题描述:普通用户运行Docker命令时出现”Got permission denied while trying to connect to the Docker daemon socket”错误。

解决方案

sudo usermod -aG docker $USER newgrp docker 

问题2:Node.js版本管理

问题描述:需要管理多个Node.js版本。

解决方案:使用nvm(Node Version Manager):

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash source ~/.bashrc nvm install 16 nvm install 18 nvm use 18 

问题3:Python包管理

问题描述:需要隔离不同项目的Python依赖。

解决方案:使用virtualenv或conda:

# 使用virtualenv pip install virtualenv virtualenv myproject source myproject/bin/activate # 使用conda wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh conda create -n myproject python=3.9 conda activate myproject 

问题4:系统资源监控

问题描述:需要监控系统资源使用情况。

解决方案:安装和使用监控工具:

sudo dnf install -y htop iotop iftop nmon htop # 进程监控 iotop # 磁盘I/O监控 iftop # 网络流量监控 nmon # 综合系统监控 

问题5:防火墙配置

问题描述:需要开放特定端口以供开发服务使用。

解决方案:使用firewalld管理防火墙规则:

sudo firewall-cmd --permanent --add-port=3000/tcp # 开放3000端口 sudo firewall-cmd --permanent --add-service=http # 开放HTTP服务 sudo firewall-cmd --reload # 重新加载防火墙规则 sudo firewall-cmd --list-all # 查看所有规则 

总结与展望

通过本教程,我们详细介绍了如何在Rocky Linux系统上搭建一个专业级的开发环境。从系统安装到基础配置,再到各种开发工具的安装与配置,最后到系统优化和自动化配置,我们全面覆盖了开发环境搭建的各个方面。

Rocky Linux作为一个稳定、安全且长期支持的操作系统,为开发者提供了一个可靠的平台。通过正确配置开发环境,开发者可以显著提高工作效率,减少因环境问题导致的开发中断。

未来,随着技术的不断发展,开发环境也会不断演进。容器化技术、云原生应用和DevOps实践将继续影响开发环境的配置方式。Rocky Linux作为一个现代化的操作系统,将继续适应这些变化,为开发者提供更好的支持。

希望本教程能够帮助你在Rocky Linux上搭建一个高效、稳定的开发环境,提升你的开发体验和工作效率。如果你有任何问题或建议,欢迎在评论区留言讨论。