活动公告

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

Ubuntu MATE系统下开发者工具的完整配置指南从基础环境搭建到高级开发工具链

SunJu_FaceMall

3万

主题

2860

科技点

3万

积分

白金月票

碾压王

积分
32872

塔罗立华奏

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

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

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

x
Ubuntu MATE系统下开发者工具的完整配置指南:从基础环境搭建到高级开发工具链

引言

Ubuntu MATE是一个基于Ubuntu的优雅、轻量级的Linux发行版,它使用MATE桌面环境,提供了一个稳定、高效且用户友好的开发平台。本文将详细介绍如何在Ubuntu MATE系统上配置一套完整的开发者工具链,从基础环境搭建到高级开发工具的配置,帮助您打造一个高效的开发环境。

1. Ubuntu MATE系统简介

Ubuntu MATE是Ubuntu的官方衍生版本之一,继承了Ubuntu的稳定性和丰富的软件仓库,同时使用MATE桌面环境提供了一个传统而高效的桌面体验。它对硬件要求相对较低,适合各种配置的计算机,是开发者的理想选择。

MATE桌面环境基于GNOME 2,提供了直观的界面和丰富的自定义选项,同时保持了轻量级的特性,使系统能够流畅运行,不会占用过多系统资源。

2. 基础环境搭建

在开始配置开发环境之前,首先需要确保系统是最新的。打开终端(Terminal),执行以下命令:
  1. sudo apt update
  2. sudo apt upgrade -y
  3. sudo apt autoremove -y
  4. sudo apt autoclean
复制代码

这些命令将更新软件包列表、升级已安装的软件包、删除不再需要的依赖包和清理下载的软件包缓存。

安装基本的开发工具和编译环境:
  1. sudo apt install -y build-essential cmake git git-core curl wget zip unzip
复制代码

build-essential包含了编译软件所需的基本工具,如gcc、g++、make等。cmake是一个跨平台的构建工具。git是分布式版本控制系统。curl和wget是用于下载文件的工具。zip和unzip用于处理压缩文件。

为了获取更多软件,我们可以添加一些常用的第三方软件源:
  1. # 添加PPA(Personal Package Archive)示例
  2. sudo add-apt-repository ppa:webupd8team/atom -y
  3. sudo add-apt-repository ppa:webupd8team/sublime-text-3 -y
  4. sudo add-apt-repository ppa:ondrej/php -y
  5. sudo apt update
复制代码

如果系统内存较小,可以配置Swap空间:
  1. # 创建一个4GB的Swap文件
  2. sudo fallocate -l 4G /swapfile
  3. sudo chmod 600 /swapfile
  4. sudo mkswap /swapfile
  5. sudo swapon /swapfile
  6. # 使Swap永久生效
  7. echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
复制代码

编辑系统配置文件以优化性能:
  1. sudo nano /etc/sysctl.conf
复制代码

在文件末尾添加以下内容:
  1. # 增加文件监听数
  2. fs.inotify.max_user_watches = 524288
  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 16384 16777216
  8. net.ipv4.tcp_fin_timeout = 30
  9. net.ipv4.tcp_keepalive_time = 120
  10. net.ipv4.ip_local_port_range = 10000 65000
复制代码

保存文件后,执行以下命令使配置生效:
  1. sudo sysctl -p
复制代码

3. 开发环境配置

Ubuntu MATE通常预装了Python,但我们可以安装最新版本并配置开发环境:
  1. # 安装Python 3和开发工具
  2. sudo apt install -y python3 python3-pip python3-dev python3-venv python3-setuptools
  3. # 安装Python 2(如果需要)
  4. sudo apt install -y python python-pip python-dev
复制代码

使用Python虚拟环境可以隔离不同项目的依赖:
  1. # 安装virtualenv
  2. sudo pip3 install virtualenv virtualenvwrapper
  3. # 配置virtualenvwrapper
  4. echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
  5. echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
  6. echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
  7. source ~/.bashrc
  8. # 创建虚拟环境
  9. mkvirtualenv myproject
复制代码
  1. pip install --upgrade pip
  2. pip install numpy pandas matplotlib scipy jupyter ipython requests flask django
复制代码
  1. # 安装OpenJDK 11
  2. sudo apt install -y openjdk-11-jdk
  3. # 安装OpenJDK 8(如果需要)
  4. sudo apt install -y openjdk-8-jdk
  5. # 配置Java环境变量
  6. echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> ~/.bashrc
  7. echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc
  8. source ~/.bashrc
复制代码
  1. # 安装Maven
  2. sudo apt install -y maven
  3. # 安装Gradle
  4. sudo apt install -y gradle
复制代码
  1. # 下载IntelliJ IDEA Community Edition
  2. wget -O ~/intellij.tar.gz "https://download.jetbrains.com/idea/ideaIC-2023.1.2.tar.gz"
  3. # 解压
  4. sudo tar xf ~/intellij.tar.gz -C /opt/
  5. # 创建桌面快捷方式
  6. cat << EOF | sudo tee /usr/share/applications/intellij-idea.desktop
  7. [Desktop Entry]
  8. Version=1.0
  9. Type=Application
  10. Name=IntelliJ IDEA Community Edition
  11. Comment=The Most Intelligent Java IDE
  12. Exec=/opt/idea-IC-231.9011.34/bin/idea.sh
  13. Icon=/opt/idea-IC-231.9011.34/bin/idea.png
  14. Terminal=false
  15. StartupWMClass=jetbrains-idea
  16. Categories=Development;IDE;
  17. EOF
复制代码

使用NodeSource仓库安装最新的Node.js版本:
  1. # 添加NodeSource仓库
  2. curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
  3. # 安装Node.js
  4. sudo apt install -y nodejs
  5. # 验证安装
  6. node -v
  7. npm -v
复制代码
  1. # 添加Yarn仓库
  2. curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
  3. echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
  4. sudo apt update
  5. sudo apt install -y yarn
复制代码
  1. # 全局安装常用npm包
  2. sudo npm install -g typescript @angular/cli react-native-cli create-react-app vue-cli nodemon express-generator
复制代码
  1. sudo apt install -y gcc g++ gdb
复制代码
  1. # 下载CLion
  2. wget -O ~/clion.tar.gz "https://download.jetbrains.com/cpp/CLion-2023.1.2.tar.gz"
  3. # 解压
  4. sudo tar xf ~/clion.tar.gz -C /opt/
  5. # 创建桌面快捷方式
  6. cat << EOF | sudo tee /usr/share/applications/clion.desktop
  7. [Desktop Entry]
  8. Version=1.0
  9. Type=Application
  10. Name=CLion
  11. Comment=A Cross-Platform IDE for C and C++
  12. Exec=/opt/clion-2023.1.2/bin/clion.sh
  13. Icon=/opt/clion-2023.1.2/bin/clion.png
  14. Terminal=false
  15. StartupWMClass=jetbrains-clion
  16. Categories=Development;IDE;
  17. EOF
复制代码
  1. # 下载并安装Microsoft GPG密钥
  2. wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
  3. sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
  4. echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list
  5. # 安装Visual Studio Code
  6. sudo apt update
  7. sudo apt install -y code
  8. # 安装常用扩展
  9. code --install-extension ms-python.python
  10. code --install-extension ms-vscode.cpptools
  11. code --install-extension ms-vscode.cmake-tools
  12. code --install-extension eamodio.gitlens
  13. code --install-extension ms-vscode-remote.remote-ssh
复制代码
  1. # 下载Go
  2. wget -O ~/go.tar.gz "https://go.dev/dl/go1.20.4.linux-amd64.tar.gz"
  3. # 解压到/usr/local
  4. sudo tar -C /usr/local -xzf ~/go.tar.gz
  5. # 配置环境变量
  6. echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
  7. echo 'export GOPATH=$HOME/go' >> ~/.bashrc
  8. echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bashrc
  9. source ~/.bashrc
  10. # 验证安装
  11. go version
复制代码
  1. # 下载GoLand
  2. wget -O ~/goland.tar.gz "https://download.jetbrains.com/go/goland-2023.1.2.tar.gz"
  3. # 解压
  4. sudo tar xf ~/goland.tar.gz -C /opt/
  5. # 创建桌面快捷方式
  6. cat << EOF | sudo tee /usr/share/applications/goland.desktop
  7. [Desktop Entry]
  8. Version=1.0
  9. Type=Application
  10. Name=GoLand
  11. Comment=A Clever IDE to Go
  12. Exec=/opt/GoLand-231.9161.46/bin/goland.sh
  13. Icon=/opt/GoLand-231.9161.46/bin/goland.png
  14. Terminal=false
  15. StartupWMClass=jetbrains-goland
  16. Categories=Development;IDE;
  17. EOF
复制代码
  1. # 安装Rustup(Rust工具链安装器)
  2. curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  3. # 配置环境变量
  4. source ~/.cargo/env
  5. # 验证安装
  6. rustc --version
  7. cargo --version
复制代码

如果已安装CLion,可以通过插件市场添加Rust插件:
  1. # 或者使用rust-analyzer作为LSP
  2. rustup component add rust-analyzer
复制代码

4. 版本控制工具配置
  1. # 设置用户名和邮箱
  2. git config --global user.name "Your Name"
  3. git config --global user.email "your.email@example.com"
  4. # 设置默认分支名称
  5. git config --global init.defaultBranch main
  6. # 设置默认编辑器
  7. git config --global core.editor nano
  8. # 设置凭证存储
  9. git config --global credential.helper store
  10. # 配置别名
  11. git config --global alias.st status
  12. git config --global alias.co checkout
  13. git config --global alias.br branch
  14. git config --global alias.ci commit
复制代码
  1. # 安装GitKraken(需要从官网下载)
  2. wget -O ~/gitkraken-amd64.tar.gz "https://release.gitkraken.com/linux/gitkraken-amd64.tar.gz"
  3. sudo tar xf ~/gitkraken-amd64.tar.gz -C /opt/
  4. sudo ln -sf /opt/gitkraken/gitkraken /usr/local/bin/
  5. # 安装Git Cola
  6. sudo apt install -y git-cola
  7. # 安装Gitg
  8. sudo apt install -y gitg
复制代码
  1. # 安装SVN
  2. sudo apt install -y subversion
  3. # 安装RabbitVCS(图形化SVN客户端)
  4. sudo add-apt-repository ppa:rabbitvcs/ppa -y
  5. sudo apt update
  6. sudo apt install -y rabbitvcs-cli rabbitvcs-core rabbitvcs-gedit rabbitvcs-nautilus
复制代码

5. 容器化和虚拟化工具
  1. # 安装依赖
  2. sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
  3. # 添加Docker官方GPG密钥
  4. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  5. # 添加Docker仓库
  6. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  7. # 安装Docker
  8. sudo apt update
  9. sudo apt install -y docker-ce docker-ce-cli containerd.io
  10. # 将当前用户添加到docker组
  11. sudo usermod -aG docker $USER
  12. # 重新登录以使组更改生效
复制代码
  1. # 下载Docker Compose
  2. sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  3. # 添加执行权限
  4. sudo chmod +x /usr/local/bin/docker-compose
  5. # 创建软链接
  6. sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
  7. # 验证安装
  8. docker-compose --version
复制代码
  1. # 创建配置文件
  2. sudo mkdir -p /etc/docker
  3. sudo tee /etc/docker/daemon.json <<-'EOF'
  4. {
  5.   "registry-mirrors": ["https://hub-mirror.c.163.com", "https://mirror.baidubce.com"]
  6. }
  7. EOF
  8. # 重启Docker服务
  9. sudo systemctl daemon-reload
  10. sudo systemctl restart docker
复制代码
  1. # 添加VirtualBox仓库
  2. echo "deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list
  3. # 添加Oracle GPG密钥
  4. wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
  5. wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
  6. # 安装VirtualBox
  7. sudo apt update
  8. sudo apt install -y virtualbox-6.1
  9. # 安装扩展包
  10. wget https://download.virtualbox.org/virtualbox/6.1.38/Oracle_VM_VirtualBox_Extension_Pack-6.1.38.vbox-extpack
  11. sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-6.1.38.vbox-extpack
复制代码
  1. # 下载并安装Vagrant
  2. wget -O ~/vagrant.deb "https://releases.hashicorp.com/vagrant/2.3.4/vagrant_2.3.4-1_amd64.deb"
  3. sudo dpkg -i ~/vagrant.deb
  4. sudo apt install -f
  5. # 验证安装
  6. vagrant --version
复制代码
  1. # 下载Minikube
  2. curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
  3. sudo install minikube-linux-amd64 /usr/local/bin/minikube
复制代码
  1. # 下载kubectl
  2. curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
  3. sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
复制代码
  1. # 下载Helm
  2. curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
  3. echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
  4. sudo apt update
  5. sudo apt install -y helm
复制代码

6. 数据库工具
  1. # 安装MySQL服务器
  2. sudo apt install -y mysql-server
  3. # 安全配置
  4. sudo mysql_secure_installation
  5. # 安装MySQL Workbench
  6. sudo apt install -y mysql-workbench
复制代码
  1. # 安装MariaDB服务器
  2. sudo apt install -y mariadb-server
  3. # 安全配置
  4. sudo mysql_secure_installation
复制代码
  1. # 安装PostgreSQL
  2. sudo apt install -y postgresql postgresql-contrib
  3. # 安装pgAdmin图形化管理工具
  4. sudo apt install -y pgadmin3
复制代码
  1. # 切换到postgres用户
  2. sudo -u postgres psql
  3. # 在PostgreSQL shell中创建新用户和数据库
  4. CREATE USER myuser WITH PASSWORD 'mypassword';
  5. CREATE DATABASE mydb OWNER myuser;
  6. \q
复制代码
  1. # 导入MongoDB公钥
  2. wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
  3. # 添加MongoDB仓库
  4. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
  5. # 安装MongoDB
  6. sudo apt update
  7. sudo apt install -y mongodb-org
  8. # 启动MongoDB服务
  9. sudo systemctl start mongod
  10. sudo systemctl enable mongod
复制代码
  1. # 下载MongoDB Compass
  2. wget -O ~/mongodb-compass.deb "https://downloads.mongodb.com/compass/mongodb-compass_1.35.0_amd64.deb"
  3. sudo dpkg -i ~/mongodb-compass.deb
  4. sudo apt install -f
复制代码
  1. # 安装Redis
  2. sudo apt install -y redis-server
  3. # 安装Redis桌面管理工具
  4. sudo snap install redis-desktop-manager
复制代码
  1. # 安装SQLite和开发工具
  2. sudo apt install -y sqlite3 libsqlite3-dev
  3. # 安装SQLite浏览器
  4. sudo apt install -y sqlitebrowser
复制代码

7. 高级开发工具链
  1. # 安装Java(如果尚未安装)
  2. sudo apt install -y openjdk-11-jdk
  3. # 添加Jenkins仓库
  4. wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
  5. sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
  6. # 安装Jenkins
  7. sudo apt update
  8. sudo apt install -y jenkins
  9. # 启动Jenkins服务
  10. sudo systemctl start jenkins
  11. sudo systemctl enable jenkins
复制代码
  1. # 安装依赖
  2. sudo apt install -y curl openssh-server ca-certificates postfix
  3. # 添加GitLab仓库
  4. curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
  5. # 安装GitLab
  6. sudo apt install -y gitlab-ce
  7. # 配置GitLab
  8. sudo nano /etc/gitlab/gitlab.rb
  9. # 修改external_url 'http://gitlab.example.com'
  10. # 保存后执行
  11. sudo gitlab-ctl reconfigure
复制代码
  1. # 下载Postman
  2. wget -O ~/postman.tar.gz "https://dl.pstmn.io/download/latest/linux64"
  3. # 解压
  4. sudo tar -xzf ~/postman.tar.gz -C /opt
  5. # 创建符号链接
  6. sudo ln -sf /opt/Postman/Postman /usr/bin/postman
  7. # 创建桌面快捷方式
  8. cat << EOF | sudo tee /usr/share/applications/postman.desktop
  9. [Desktop Entry]
  10. Version=1.0
  11. Type=Application
  12. Name=Postman
  13. Comment=API Development Environment
  14. Exec=/usr/bin/postman
  15. Icon=/opt/Postman/app/resources/app/assets/icon.png
  16. Terminal=false
  17. Categories=Development;IDE;
  18. EOF
复制代码
  1. # 添加Insomnia仓库
  2. echo "deb https://dl.bintray.com/getinsomnia/Insomnia /" | sudo tee -a /etc/apt/sources.list.d/insomnia.list
  3. wget --quiet -O - https://insomnia.rest/keys/debian-public.key.asc | sudo apt-key add -
  4. # 安装Insomnia
  5. sudo apt update
  6. sudo apt install -y insomnia
复制代码
  1. # 安装htop
  2. sudo apt install -y htop
  3. # 安装iotop(磁盘I/O监控)
  4. sudo apt install -y iotop
  5. # 安装iftop(网络带宽监控)
  6. sudo apt install -y iftop
  7. # 安装nmon(系统性能监控)
  8. sudo apt install -y nmon
复制代码
  1. # 安装Valgrind(内存调试和分析工具)
  2. sudo apt install -y valgrind
  3. # 安装Perf(Linux性能分析工具)
  4. sudo apt install -y linux-tools-common linux-tools-generic linux-tools-$(uname -r)
  5. # 安装gprof(GNU性能分析工具)
  6. sudo apt install -y binutils
复制代码
  1. # 安装Sphinx
  2. sudo pip install sphinx sphinx-rtd-theme
  3. # 创建文档项目
  4. mkdir docs && cd docs
  5. sphinx-quickstart
复制代码
  1. # 安装MkDocs
  2. sudo pip install mkdocs
  3. # 创建新项目
  4. mkdocs new my-project
  5. cd my-project
  6. mkdocs serve
复制代码

8. 性能优化和调试工具

编辑系统配置文件以优化性能:
  1. sudo nano /etc/sysctl.conf
复制代码

添加以下内容:
  1. # 优化内核参数
  2. kernel.sem = 250 32000 100 128
  3. kernel.shmall = 4294967296
  4. kernel.shmmax = 68719476736
  5. kernel.shmmni = 4096
  6. fs.file-max = 6815744
  7. net.ipv4.ip_local_port_range = 9000 65500
  8. net.core.rmem_default = 262144
  9. net.core.rmem_max = 4194304
  10. net.core.wmem_default = 262144
  11. net.core.wmem_max = 1048576
复制代码

保存后执行:
  1. sudo sysctl -p
复制代码
  1. # 检查文件系统类型
  2. df -T
  3. # 为ext4文件系统添加noatime选项
  4. sudo nano /etc/fstab
  5. # 修改包含ext4的行,将defaults改为defaults,noatime
  6. # 保存后重启系统
复制代码
  1. # 安装GDB(已包含在build-essential中)
  2. sudo apt install -y gdb
  3. # 安装GDB图形化前端
  4. sudo apt install -y ddd insight
复制代码
  1. # 创建一个简单的C程序
  2. cat > leak.c << 'EOF'
  3. #include <stdlib.h>
  4. int main() {
  5.     int *x = malloc(10 * sizeof(int));
  6.     x[10] = 0; // 数组越界
  7.     return 0; // 内存泄漏,没有释放x
  8. }
  9. EOF
  10. # 编译程序
  11. gcc -g leak.c -o leak
  12. # 使用Valgrind检测内存问题
  13. valgrind --leak-check=full --show-leak-kinds=all ./leak
复制代码
  1. # 安装Python调试工具
  2. sudo pip install pdbpp ipdb pudb
  3. # 安装内存分析工具
  4. sudo pip install memory-profiler objgraph pympler
复制代码
  1. # 创建一个简单的C程序
  2. cat > compute.c << 'EOF'
  3. #include <stdio.h>
  4. #include <math.h>
  5. int main() {
  6.     double result = 0;
  7.     for (int i = 0; i < 100000000; i++) {
  8.         result += sin(i) * cos(i);
  9.     }
  10.     printf("Result: %f\n", result);
  11.     return 0;
  12. }
  13. EOF
  14. # 编译程序
  15. gcc -O0 -g compute.c -o compute -lm
  16. # 使用Perf记录性能数据
  17. perf record -g ./compute
  18. # 生成性能报告
  19. perf report
复制代码
  1. # 安装性能分析工具
  2. sudo pip install line_profiler memory_profiler py-spy
  3. # 创建一个Python脚本
  4. cat > compute.py << 'EOF'
  5. import math
  6. def compute():
  7.     result = 0
  8.     for i in range(100000000):
  9.         result += math.sin(i) * math.cos(i)
  10.     return result
  11. if __name__ == "__main__":
  12.     print("Result:", compute())
  13. EOF
  14. # 使用cProfile分析性能
  15. python -m cProfile -s tottime compute.py
  16. # 使用line_profiler分析行级性能
  17. echo "@profile\n$(cat compute.py)" > compute_profile.py
  18. kernprof -l -v compute_profile.py
复制代码

9. 自动化和部署工具
  1. # 安装Ansible
  2. sudo apt install -y ansible
  3. # 验证安装
  4. ansible --version
复制代码
  1. # 创建Ansible配置目录
  2. mkdir -p ~/ansible/{inventory,playbooks,roles}
  3. # 创建主机清单文件
  4. cat > ~/ansible/inventory/hosts << 'EOF'
  5. [webservers]
  6. web1.example.com
  7. web2.example.com
  8. [databases]
  9. db1.example.com
  10. [all:vars]
  11. ansible_user=admin
  12. ansible_ssh_private_key_file=~/.ssh/id_rsa
  13. EOF
  14. # 创建Ansible配置文件
  15. cat > ~/ansible/ansible.cfg << 'EOF'
  16. [defaults]
  17. inventory = ./inventory
  18. host_key_checking = False
  19. roles_path = ./roles
  20. retry_files_enabled = False
  21. EOF
复制代码
  1. # 创建一个安装Nginx的Playbook
  2. cat > ~/ansible/playbooks/install_nginx.yml << 'EOF'
  3. ---
  4. - name: Install and configure Nginx
  5.   hosts: webservers
  6.   become: yes
  7.   tasks:
  8.     - name: Update apt cache
  9.       apt:
  10.         update_cache: yes
  11.         
  12.     - name: Install Nginx
  13.       apt:
  14.         name: nginx
  15.         state: present
  16.         
  17.     - name: Start Nginx service
  18.       service:
  19.         name: nginx
  20.         state: started
  21.         enabled: yes
  22.         
  23.     - name: Create custom index.html
  24.       copy:
  25.         content: "<h1>Welcome to Ansible-managed Nginx</h1>"
  26.         dest: /var/www/html/index.html
  27. EOF
  28. # 运行Playbook
  29. cd ~/ansible
  30. ansible-playbook playbooks/install_nginx.yml
复制代码
  1. # 添加HashiCorp GPG密钥
  2. wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
  3. # 添加HashiCorp仓库
  4. echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
  5. # 安装Terraform
  6. sudo apt update
  7. sudo apt install -y terraform
复制代码
  1. # 创建Terraform工作目录
  2. mkdir -p ~/terraform/{projects,modules}
  3. # 创建一个简单的AWS EC2实例配置
  4. mkdir -p ~/terraform/projects/aws-ec2
  5. cd ~/terraform/projects/aws-ec2
  6. # 创建main.tf文件
  7. cat > main.tf << 'EOF'
  8. terraform {
  9.   required_providers {
  10.     aws = {
  11.       source  = "hashicorp/aws"
  12.       version = "~> 4.0"
  13.     }
  14.   }
  15. }
  16. provider "aws" {
  17.   region = "us-west-2"
  18. }
  19. resource "aws_instance" "example" {
  20.   ami           = "ami-830c94e3"
  21.   instance_type = "t2.micro"
  22.   
  23.   tags = {
  24.     Name = "ExampleInstance"
  25.   }
  26. }
  27. output "instance_public_ip" {
  28.   value = aws_instance.example.public_ip
  29. }
  30. EOF
  31. # 初始化Terraform
  32. terraform init
  33. # 预览更改
  34. terraform plan
  35. # 应用配置
  36. terraform apply
复制代码
  1. # 创建GitHub Actions工作流目录
  2. mkdir -p ~/projects/my-app/.github/workflows
  3. # 创建一个简单的CI工作流
  4. cat > ~/projects/my-app/.github/workflows/ci.yml << 'EOF'
  5. name: CI
  6. on:
  7.   push:
  8.     branches: [ main ]
  9.   pull_request:
  10.     branches: [ main ]
  11. jobs:
  12.   build:
  13.     runs-on: ubuntu-latest
  14.     steps:
  15.     - uses: actions/checkout@v2
  16.    
  17.     - name: Set up Python
  18.       uses: actions/setup-python@v2
  19.       with:
  20.         python-version: 3.9
  21.         
  22.     - name: Install dependencies
  23.       run: |
  24.         python -m pip install --upgrade pip
  25.         pip install -r requirements.txt
  26.         
  27.     - name: Run tests
  28.       run: |
  29.         python -m pytest tests/
  30.         
  31.     - name: Lint with flake8
  32.       run: |
  33.         pip install flake8
  34.         flake8 .
  35. EOF
复制代码
  1. # 创建Jenkinsfile
  2. cat > ~/projects/my-app/Jenkinsfile << 'EOF'
  3. pipeline {
  4.     agent any
  5.    
  6.     stages {
  7.         stage('Build') {
  8.             steps {
  9.                 sh 'echo Building...'
  10.                 sh 'make build'
  11.             }
  12.         }
  13.         
  14.         stage('Test') {
  15.             steps {
  16.                 sh 'echo Testing...'
  17.                 sh 'make test'
  18.             }
  19.         }
  20.         
  21.         stage('Deploy') {
  22.             when {
  23.                 branch 'main'
  24.             }
  25.             steps {
  26.                 sh 'echo Deploying...'
  27.                 sh 'make deploy'
  28.             }
  29.         }
  30.     }
  31.    
  32.     post {
  33.         always {
  34.             echo 'Pipeline completed'
  35.         }
  36.         success {
  37.             echo 'Pipeline succeeded'
  38.         }
  39.         failure {
  40.             echo 'Pipeline failed'
  41.         }
  42.     }
  43. }
  44. EOF
复制代码

10. 最佳实践和技巧
  1. # 创建自动更新脚本
  2. cat > ~/bin/update-system << 'EOF'
  3. #!/bin/bash
  4. echo "Updating package lists..."
  5. sudo apt update
  6. echo "Upgrading packages..."
  7. sudo apt upgrade -y
  8. echo "Removing unnecessary packages..."
  9. sudo apt autoremove -y
  10. echo "Cleaning up package cache..."
  11. sudo apt autoclean
  12. echo "System update completed."
  13. EOF
  14. # 添加执行权限
  15. chmod +x ~/bin/update-system
  16. # 创建cron任务进行每周自动更新
  17. echo "0 0 * * 0 $HOME/bin/update-system" | crontab -
复制代码
  1. # 安装timeshift用于系统快照
  2. sudo apt install -y timeshift
  3. # 安装deja-dup用于个人文件备份
  4. sudo apt install -y deja-dup
  5. # 创建备份脚本
  6. cat > ~/bin/backup-data << 'EOF'
  7. #!/bin/bash
  8. BACKUP_DIR="/backup/$(date +%Y%m%d)"
  9. PROJECTS_DIR="$HOME/projects"
  10. echo "Creating backup directory: $BACKUP_DIR"
  11. mkdir -p "$BACKUP_DIR"
  12. echo "Backing up projects..."
  13. rsync -av --progress "$PROJECTS_DIR" "$BACKUP_DIR/"
  14. echo "Backing up system configuration files..."
  15. sudo rsync -av --progress /etc "$BACKUP_DIR/"
  16. echo "Creating compressed archive..."
  17. tar -czf "$BACKUP_DIR.tar.gz" -C /backup "$(basename $BACKUP_DIR)"
  18. echo "Backup completed: $BACKUP_DIR.tar.gz"
  19. EOF
  20. # 添加执行权限
  21. chmod +x ~/bin/backup-data
复制代码
  1. # 创建Git钩子模板
  2. mkdir -p ~/.git/templates/hooks
  3. # 创建预提交钩子示例
  4. cat > ~/.git/templates/hooks/pre-commit << 'EOF'
  5. #!/bin/bash
  6. # 运行代码检查
  7. if command -v flake8 &> /dev/null; then
  8.     echo "Running flake8..."
  9.     flake8 .
  10.     if [ $? -ne 0 ]; then
  11.         echo "Code style issues found. Please fix before committing."
  12.         exit 1
  13.     fi
  14. fi
  15. # 运行测试
  16. if [ -f "Makefile" ] && grep -q "test" Makefile; then
  17.     echo "Running tests..."
  18.     make test
  19.     if [ $? -ne 0 ]; then
  20.         echo "Tests failed. Please fix before committing."
  21.         exit 1
  22.     fi
  23. fi
  24. exit 0
  25. EOF
  26. # 添加执行权限
  27. chmod +x ~/.git/templates/hooks/pre-commit
  28. # 配置Git使用模板目录
  29. git config --global init.templatedir '~/.git/templates'
复制代码
  1. # 创建标准项目目录结构
  2. mkdir -p ~/projects/{web,api,mobile,cli,tools}
  3. # 创建项目模板
  4. mkdir -p ~/templates/python-project/{src,tests,docs,scripts,data}
  5. # 创建Python项目模板文件
  6. cat > ~/templates/python-project/requirements.txt << 'EOF'
  7. # Development dependencies
  8. pytest>=6.0
  9. pytest-cov>=2.0
  10. flake8>=3.8
  11. black>=21.0
  12. mypy>=0.800
  13. # Production dependencies
  14. # Add your project dependencies here
  15. EOF
  16. cat > ~/templates/python-project/setup.py << 'EOF'
  17. from setuptools import setup, find_packages
  18. setup(
  19.     name="my-project",
  20.     version="0.1.0",
  21.     packages=find_packages(where="src"),
  22.     package_dir={"": "src"},
  23.     install_requires=[
  24.         # Add your dependencies here
  25.     ],
  26.     extras_require={
  27.         "dev": [
  28.             "pytest>=6.0",
  29.             "pytest-cov>=2.0",
  30.             "flake8>=3.8",
  31.             "black>=21.0",
  32.             "mypy>=0.800",
  33.         ],
  34.     },
  35. )
  36. EOF
  37. cat > ~/templates/python-project/README.md << 'EOF'
  38. # My Project
  39. A brief description of the project.
  40. ## Installation
  41. \`\`\`bash
  42. pip install -e .
  43. \`\`\`
  44. ## Development
  45. \`\`\`bash
  46. pip install -e ".[dev]"
  47. \`\`\`
  48. ## Running Tests
  49. \`\`\`bash
  50. pytest
  51. \`\`\`
  52. EOF
  53. # 创建项目初始化脚本
  54. cat > ~/bin/new-python-project << 'EOF'
  55. #!/bin/bash
  56. if [ -z "$1" ]; then
  57.     echo "Usage: $0 <project-name>"
  58.     exit 1
  59. fi
  60. PROJECT_NAME=$1
  61. PROJECT_PATH=~/projects/python/$PROJECT_NAME
  62. echo "Creating new Python project: $PROJECT_NAME"
  63. mkdir -p "$PROJECT_PATH"
  64. cp -r ~/templates/python-project/* "$PROJECT_PATH/"
  65. # 初始化Git仓库
  66. cd "$PROJECT_PATH"
  67. git init
  68. git add .
  69. git commit -m "Initial commit"
  70. echo "Project created at: $PROJECT_PATH"
  71. EOF
  72. # 添加执行权限
  73. chmod +x ~/bin/new-python-project
复制代码
  1. # 备份原始SSH配置
  2. sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
  3. # 安全化SSH配置
  4. sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
  5. sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
  6. sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
  7. sudo sed -i 's/#X11Forwarding yes/X11Forwarding no/' /etc/ssh/sshd_config
  8. # 重启SSH服务
  9. sudo systemctl restart sshd
复制代码
  1. # 安装UFW(Uncomplicated Firewall)
  2. sudo apt install -y ufw
  3. # 配置默认策略
  4. sudo ufw default deny incoming
  5. sudo ufw default allow outgoing
  6. # 允许必要的服务
  7. sudo ufw allow ssh
  8. sudo ufw allow 2222/tcp  # 自定义SSH端口
  9. sudo ufw allow http
  10. sudo ufw allow https
  11. # 启用防火墙
  12. sudo ufw enable
  13. # 查看防火墙状态
  14. sudo ufw status verbose
复制代码
  1. # 安装无人值守升级包
  2. sudo apt install -y unattended-upgrades
  3. # 配置自动安全更新
  4. sudo dpkg-reconfigure -plow unattended-upgrades
  5. # 或者手动编辑配置文件
  6. sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
复制代码

在配置文件中,确保以下行未被注释:
  1. Unattended-Upgrade::Allowed-Origins {
  2.     "${distro_id}:${distro_codename}";
  3.     "${distro_id}:${distro_codename}-security";
  4.     // "${distro_id}:${distro_codename}-updates";
  5.     // "${distro_id}:${distro_codename}-proposed";
  6.     // "${distro_id}:${distro_codename}-backports";
  7. };
复制代码

启用自动更新:
  1. Unattended-Upgrade::Automatic-Reboot "true";
  2. Unattended-Upgrade::Automatic-Reboot-Time "02:00";
复制代码

结论

通过本文的详细指南,您已经在Ubuntu MATE系统上成功配置了一套完整的开发者工具链,从基础环境搭建到高级开发工具的配置。这套工具链涵盖了多种编程语言、版本控制、容器化、数据库、CI/CD等各个方面,为您提供了一个强大而高效的开发环境。

记住,开发环境的配置是一个持续的过程,随着技术的发展和个人需求的变化,您可能需要不断调整和优化您的工具链。希望本文提供的指南能够帮助您在Ubuntu MATE系统上建立一个高效、稳定且安全的开发环境,从而提高您的开发效率和代码质量。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

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

本版积分规则