|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1. 引言:Pop OS与开发环境概述
Pop!_OS 是由 System76 开发的一款基于 Ubuntu 的 Linux 发行版,专为开发人员和创作者设计。它提供了一个干净、直观的用户界面,同时保留了强大的功能,使其成为开发工作的理想选择。本教程将指导您从零开始在 Pop!_OS 上构建一个完整的开发环境,涵盖多种编程语言的安装、IDE 配置、版本控制系统以及容器技术,帮助您打造一个高效的编程工作流。
2. 系统准备与基础配置
2.1 系统更新
在开始安装任何开发工具之前,首先确保您的 Pop!_OS 系统是最新的。打开终端(快捷键:Ctrl + Alt + T),执行以下命令:
- sudo apt update
- sudo apt upgrade -y
复制代码
2.2 安装基础开发工具
安装一些基础的开发工具和库,这些工具在后续的安装过程中可能会用到:
- sudo apt install -y build-essential curl wget git software-properties-common apt-transport-https ca-certificates gnupg-agent
复制代码
2.3 配置系统源
为了获取最新的软件包,我们可以添加一些额外的源。例如,添加 Ubuntu 的 Universe 和 Multiverse 源:
- sudo add-apt-repository universe
- sudo add-apt-repository multiverse
- sudo apt update
复制代码
3. 编程语言安装与配置
3.1 Python 开发环境
Python 是一种广泛使用的高级编程语言,适用于各种应用场景。
Pop!_OS 通常预装了 Python 3,但我们可以安装最新版本并配置开发环境:
- # 安装 Python 3 和 pip
- sudo apt install -y python3 python3-pip python3-venv
- # 验证安装
- python3 --version
- pip3 --version
复制代码
使用 Python 虚拟环境可以隔离不同项目的依赖:
- # 创建项目目录
- mkdir ~/python-projects
- cd ~/python-projects
- # 创建虚拟环境
- python3 -m venv my-project-env
- # 激活虚拟环境
- source my-project-env/bin/activate
- # 在虚拟环境中安装包
- pip install numpy pandas matplotlib
- # 退出虚拟环境
- deactivate
复制代码
pyenv 是一个优秀的 Python 版本管理工具:
- # 安装依赖
- sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
- # 安装 pyenv
- curl https://pyenv.run | bash
- # 配置环境变量
- echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
- echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
- echo 'eval "$(pyenv init -)"' >> ~/.bashrc
- # 重启 shell
- exec "$SHELL"
- # 安装特定版本的 Python
- pyenv install 3.10.6
- pyenv global 3.10.6
- # 验证安装
- python --version
复制代码
3.2 Java 开发环境
Java 是一种广泛使用的面向对象编程语言,特别适合企业级应用开发。
我们可以安装不同版本的 OpenJDK:
- # 安装 OpenJDK 11
- sudo apt install -y openjdk-11-jdk
- # 或者安装 OpenJDK 17(最新 LTS 版本)
- sudo apt install -y openjdk-17-jdk
- # 验证安装
- java -version
- javac -version
复制代码
SDKMAN! 是一个用于管理多个软件开发工具包的命令行工具:
- # 安装 SDKMAN!
- curl -s "https://get.sdkman.io" | bash
- source "$HOME/.sdkman/bin/sdkman-init.sh"
- # 列出可用的 Java 版本
- sdk list java
- # 安装特定版本的 Java
- sdk install java 11.0.16-open
- sdk install java 17.0.4-open
- # 切换 Java 版本
- sdk use java 17.0.4-open
- # 验证安装
- java -version
复制代码
编辑~/.bashrc或~/.profile文件,添加以下内容:
- # 设置 JAVA_HOME
- export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
- export PATH=$JAVA_HOME/bin:$PATH
复制代码
然后执行source ~/.bashrc使配置生效。
3.3 JavaScript/Node.js 开发环境
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,使 JavaScript 可以在服务器端运行。
- # 添加 NodeSource 仓库
- curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
- # 安装 Node.js
- sudo apt install -y nodejs
- # 验证安装
- node --version
- npm --version
复制代码
NVM (Node Version Manager) 是一个用于管理多个 Node.js 版本的工具:
- # 安装 NVM
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
- # 配置环境变量
- export NVM_DIR="$HOME/.nvm"
- [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
- [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
- # 重启 shell
- exec "$SHELL"
- # 安装特定版本的 Node.js
- nvm install 18
- nvm use 18
- # 验证安装
- node --version
- npm --version
复制代码
设置 NPM 使用国内镜像以提高下载速度:
- npm config set registry https://registry.npmmirror.com
复制代码
3.4 C/C++ 开发环境
C 和 C++ 是系统编程和高性能应用开发的重要语言。
- # 安装 GCC 和 G++
- sudo apt install -y gcc g++
- # 验证安装
- gcc --version
- g++ --version
复制代码
Clang 是一个 C、C++ 和 Objective-C 编译器,提供更快的编译速度和更好的错误信息:
- # 安装 Clang
- sudo apt install -y clang
- # 验证安装
- clang --version
复制代码
CMake 是一个跨平台的构建系统生成器:
- # 安装 CMake
- sudo apt install -y cmake
- # 验证安装
- cmake --version
复制代码
创建一个简单的 C++ 程序:
- // hello.cpp
- #include <iostream>
- int main() {
- std::cout << "Hello, World!" << std::endl;
- return 0;
- }
复制代码
使用 G++ 编译并运行:
- g++ -o hello hello.cpp
- ./hello
复制代码
使用 CMake 构建:
创建CMakeLists.txt文件:
- cmake_minimum_required(VERSION 3.10)
- project(HelloWorld)
- add_executable(hello hello.cpp)
复制代码
然后执行:
- mkdir build
- cd build
- cmake ..
- make
- ./hello
复制代码
3.5 Go 开发环境
Go 是一种静态类型、编译型的编程语言,由 Google 设计,特别适合构建高性能的网络服务。
- # 下载 Go 安装包
- wget https://golang.org/dl/go1.19.linux-amd64.tar.gz
- # 解压到 /usr/local
- sudo tar -C /usr/local -xzf go1.19.linux-amd64.tar.gz
- # 配置环境变量
- echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
- echo 'export GOPATH=$HOME/go' >> ~/.bashrc
- echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bashrc
- # 使配置生效
- source ~/.bashrc
- # 验证安装
- go version
复制代码- # 创建 Go 工作区目录
- mkdir -p ~/go/{src,bin,pkg}
- # 创建一个简单的 Go 程序
- mkdir -p ~/go/src/hello
- cd ~/go/src/hello
- # 创建 hello.go 文件
- cat > hello.go << EOF
- package main
- import "fmt"
- func main() {
- fmt.Println("Hello, World!")
- }
- EOF
- # 运行程序
- go run hello.go
- # 构建并安装程序
- go install hello
- # 运行已安装的程序
- ~/go/bin/hello
复制代码
3.6 Rust 开发环境
Rust 是一种系统编程语言,注重安全、速度和并发性。
- # 安装 Rust
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- # 配置环境变量
- source ~/.cargo/env
- # 验证安装
- rustc --version
- cargo --version
复制代码- # 创建一个新的 Rust 项目
- cargo new hello_rust
- cd hello_rust
- # 构建并运行项目
- cargo run
复制代码
4. IDE 配置
4.1 Visual Studio Code
Visual Studio Code 是一款轻量级但功能强大的源代码编辑器,支持多种编程语言。
- # 下载并安装 VS Code
- wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
- sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
- sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
- sudo apt update
- sudo apt install -y code
- # 或者使用 Snap 安装
- sudo snap install --classic code
复制代码
启动 VS Code:
安装一些有用的扩展:
• Python (Microsoft)
• Java Extension Pack (Microsoft)
• JavaScript and TypeScript Nightly (Microsoft)
• C/C++ (Microsoft)
• Go Team at Google Google
• rust-lang.rust-analyzer
• Docker (Microsoft)
• GitLens (GitKraken)
打开 VS Code 设置 (Ctrl + ,),可以根据个人喜好进行配置。以下是一些推荐的设置:
- {
- "editor.fontFamily": "'Fira Code', 'Droid Sans Mono', 'monospace', monospace",
- "editor.fontLigatures": true,
- "editor.fontSize": 14,
- "editor.tabSize": 4,
- "editor.insertSpaces": true,
- "editor.renderWhitespace": "boundary",
- "files.autoSave": "afterDelay",
- "git.enableSmartCommit": true,
- "terminal.integrated.fontFamily": "'Fira Code', 'Droid Sans Mono', 'monospace', monospace",
- "workbench.colorTheme": "Solarized Dark",
- "workbench.iconTheme": "vs-seti"
- }
复制代码
4.2 IntelliJ IDEA
IntelliJ IDEA 是一款专业的 Java IDE,也支持多种其他编程语言。
- # 下载 IntelliJ IDEA Community Edition
- wget -O ideaIC.tar.gz https://download.jetbrains.com/idea/ideaIC-2022.2.2.tar.gz
- # 解压
- tar -xzf ideaIC.tar.gz
- # 移动到 /opt 目录
- sudo mv idea-IC-* /opt/idea
- # 创建桌面快捷方式
- cat > ~/.local/share/applications/intellij-idea.desktop << EOF
- [Desktop Entry]
- Version=1.0
- Type=Application
- Name=IntelliJ IDEA Community Edition
- Icon=/opt/idea/bin/idea.png
- Exec="/opt/idea/bin/idea.sh" %f
- Comment=Capable and Ergonomic IDE for JVM
- Categories=Development;IDE;
- Terminal=false
- StartupWMClass=jetbrains-idea-ce
- EOF
- # 使快捷方式可执行
- chmod +x ~/.local/share/applications/intellij-idea.desktop
复制代码
启动 IntelliJ IDEA:
在首次启动时,可以进行以下配置:
• 导入设置(如果有)
• 选择主题
• 配置插件(如 Python, Go, Rust 等)
4.3 PyCharm
PyCharm 是一款专业的 Python IDE,提供智能代码补全、代码检查等功能。
- # 使用 Snap 安装 PyCharm Community Edition
- sudo snap install pycharm-community --classic
- # 或者下载并手动安装
- wget -O pycharm.tar.gz https://download.jetbrains.com/python/pycharm-community-2022.2.2.tar.gz
- tar -xzf pycharm.tar.gz
- sudo mv pycharm-* /opt/pycharm
- # 创建桌面快捷方式
- cat > ~/.local/share/applications/pycharm.desktop << EOF
- [Desktop Entry]
- Version=1.0
- Type=Application
- Name=PyCharm Community Edition
- Icon=/opt/pycharm/bin/pycharm.png
- Exec="/opt/pycharm/bin/pycharm.sh" %f
- Comment=Python IDE for Professional Developers
- Categories=Development;IDE;
- Terminal=false
- StartupWMClass=jetbrains-pycharm-ce
- EOF
- chmod +x ~/.local/share/applications/pycharm.desktop
复制代码
启动 PyCharm:
- /opt/pycharm/bin/pycharm.sh
复制代码
在首次启动时,可以进行以下配置:
• 导入设置(如果有)
• 选择主题
• 配置 Python 解释器
• 安装有用的插件(如 Docker, Git 等)
5. 版本控制
5.1 Git 安装与配置
Git 是一个分布式版本控制系统,是现代软件开发不可或缺的工具。
- # 安装 Git
- sudo apt install -y git
- # 验证安装
- git --version
复制代码- # 设置用户名和邮箱
- git config --global user.name "Your Name"
- git config --global user.email "your.email@example.com"
- # 设置默认分支名称
- git config --global init.defaultBranch main
- # 设置默认编辑器
- git config --global core.editor "code --wait"
- # 设置凭证存储
- git config --global credential.helper store
- # 验证配置
- git config --list
复制代码- # 生成 SSH 密钥
- ssh-keygen -t ed25519 -C "your.email@example.com"
- # 启动 ssh-agent
- eval "$(ssh-agent -s)"
- # 添加 SSH 密钥到 ssh-agent
- ssh-add ~/.ssh/id_ed25519
- # 显示公钥,将其添加到 GitHub 等代码托管平台
- cat ~/.ssh/id_ed25519.pub
复制代码- # 创建新仓库
- mkdir my-project
- cd my-project
- git init
- # 添加远程仓库
- git remote add origin git@github.com:username/my-project.git
- # 创建并切换到新分支
- git checkout -b feature-branch
- # 添加文件到暂存区
- git add .
- # 提交更改
- git commit -m "Initial commit"
- # 推送到远程仓库
- git push -u origin feature-branch
- # 合并分支
- git checkout main
- git merge feature-branch
- # 删除分支
- git branch -d feature-branch
复制代码
5.2 GitHub CLI
GitHub CLI 是一个用于与 GitHub 交互的命令行工具。
- # 下载并安装 GitHub CLI
- curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
- sudo apt update
- sudo apt install -y gh
- # 验证安装
- gh --version
复制代码- # 登录 GitHub
- gh auth login
- # 验证登录状态
- gh auth status
复制代码- # 创建新仓库
- gh repo create my-new-repo --public --clone
- # 创建问题
- gh issue create --title "Bug report" --body "Description of the bug"
- # 创建拉取请求
- gh pr create --title "New feature" --body "Description of the new feature"
- # 查看拉取请求
- gh pr view
- # 查看问题
- gh issue view
复制代码
6. 容器技术
6.1 Docker 安装与配置
Docker 是一个开源的容器化平台,可以将应用程序及其依赖打包到一个可移植的容器中。
- # 卸载旧版本
- sudo apt remove docker docker-engine docker.io containerd runc
- # 安装依赖
- sudo apt install -y ca-certificates curl gnupg lsb-release
- # 添加 Docker 官方 GPG 密钥
- sudo mkdir -p /etc/apt/keyrings
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- # 设置 Docker 仓库
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- # 安装 Docker
- sudo apt update
- sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
- # 验证安装
- sudo docker run hello-world
复制代码- # 创建 docker 用户组
- sudo groupadd docker
- # 将当前用户添加到 docker 组
- sudo usermod -aG docker $USER
- # 重新登录以使更改生效
- newgrp docker
- # 验证配置(无需 sudo)
- docker run hello-world
复制代码- # 搜索镜像
- docker search ubuntu
- # 拉取镜像
- docker pull ubuntu:22.04
- # 运行容器
- docker run -it --name my-ubuntu ubuntu:22.04 /bin/bash
- # 列出正在运行的容器
- docker ps
- # 列出所有容器
- docker ps -a
- # 启动已停止的容器
- docker start my-ubuntu
- # 停止容器
- docker stop my-ubuntu
- # 删除容器
- docker rm my-ubuntu
- # 删除镜像
- docker rmi ubuntu:22.04
复制代码
创建一个简单的 Node.js 应用的 Dockerfile:
- # 使用官方 Node.js 18 镜像作为基础镜像
- FROM node:18
- # 设置工作目录
- WORKDIR /app
- # 复制 package.json 和 package-lock.json
- COPY package*.json ./
- # 安装依赖
- RUN npm install
- # 复制应用代码
- COPY . .
- # 暴露端口
- EXPOSE 3000
- # 定义启动命令
- CMD ["node", "app.js"]
复制代码
构建并运行容器:
- # 构建镜像
- docker build -t my-node-app .
- # 运行容器
- docker run -p 3000:3000 --name my-running-app my-node-app
复制代码
6.2 Docker Compose
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。
- # 下载 Docker Compose
- 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
- # 添加执行权限
- sudo chmod +x /usr/local/bin/docker-compose
- # 创建软链接
- sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- # 验证安装
- docker-compose --version
复制代码
创建一个docker-compose.yml文件:
- version: '3.8'
- services:
- web:
- build: .
- ports:
- - "3000:3000"
- depends_on:
- - db
- environment:
- - DATABASE_URL=postgres://user:password@db:5432/mydb
- volumes:
- - .:/app
- - /app/node_modules
- db:
- image: postgres:14
- environment:
- - POSTGRES_USER=user
- - POSTGRES_PASSWORD=password
- - POSTGRES_DB=mydb
- volumes:
- - postgres-data:/var/lib/postgresql/data
- volumes:
- postgres-data:
复制代码
使用 Docker Compose:
- # 启动服务
- docker-compose up -d
- # 查看服务状态
- docker-compose ps
- # 查看日志
- docker-compose logs -f web
- # 停止服务
- docker-compose down
- # 停止服务并删除卷
- docker-compose down -v
复制代码
7. 整合工具打造高效编程工作流
7.1 使用 VS Code 进行开发
VS Code 是一个轻量级但功能强大的编辑器,可以通过插件和配置适应各种开发需求。
创建一个.vscode目录,并在其中添加以下文件:
settings.json:
- {
- "editor.formatOnSave": true,
- "python.linting.enabled": true,
- "python.linting.pylintEnabled": true,
- "python.formatting.provider": "black",
- "editor.codeActionsOnSave": {
- "source.organizeImports": true
- },
- "files.associations": {
- "*.html": "html",
- "*.js": "javascript",
- "*.ts": "typescript"
- },
- "terminal.integrated.shell.linux": "/bin/bash"
- }
复制代码
tasks.json:
- {
- "version": "2.0.0",
- "tasks": [
- {
- "label": "build",
- "type": "shell",
- "command": "make",
- "group": {
- "kind": "build",
- "isDefault": true
- },
- "presentation": {
- "reveal": "always",
- "panel": "new"
- },
- "problemMatcher": []
- },
- {
- "label": "test",
- "type": "shell",
- "command": "make test",
- "group": {
- "kind": "test",
- "isDefault": true
- },
- "presentation": {
- "reveal": "always",
- "panel": "new"
- },
- "problemMatcher": []
- }
- ]
- }
复制代码
launch.json:
- {
- "version": "0.2.0",
- "configurations": [
- {
- "name": "Python: Current File",
- "type": "python",
- "request": "launch",
- "program": "${file}",
- "console": "integratedTerminal",
- "justMyCode": true
- },
- {
- "name": "Launch Chrome against localhost",
- "type": "chrome",
- "request": "launch",
- "url": "http://localhost:3000",
- "webRoot": "${workspaceFolder}"
- }
- ]
- }
复制代码
VS Code 内置了 Git 支持,可以通过以下方式使用:
• 查看更改:点击左侧活动栏的源代码管理图标
• 提交更改:在消息框中输入提交消息,然后点击勾选图标
• 推送更改:点击菜单栏的视图 > 命令面板,然后输入 “Git: Push”
• 拉取更改:点击菜单栏的视图 > 命令面板,然后输入 “Git: Pull”
安装 Docker 扩展后,可以在 VS Code 中直接管理 Docker 容器和镜像:
• 查看容器:点击左侧活动栏的 Docker 图标
• 构建镜像:右键点击 Dockerfile,选择 “Build Image”
• 运行容器:右键点击镜像,选择 “Run”
• 查看容器日志:右键点击运行的容器,选择 “View Logs”
7.2 使用 Makefile 自动化构建
Makefile 是一个用于自动化构建过程的工具,可以简化编译、测试和部署等任务。
创建一个名为Makefile的文件:
- # 变量定义
- CC = gcc
- CFLAGS = -Wall -Wextra -std=c99
- TARGET = myprogram
- SRC = $(wildcard *.c)
- OBJ = $(SRC:.c=.o)
- # 默认目标
- all: $(TARGET)
- # 链接目标文件
- $(TARGET): $(OBJ)
- $(CC) $(CFLAGS) -o $@ $^
- # 编译源文件
- %.o: %.c
- $(CC) $(CFLAGS) -c $< -o $@
- # 运行程序
- run: $(TARGET)
- ./$(TARGET)
- # 清理生成的文件
- clean:
- rm -f $(OBJ) $(TARGET)
- # 安装程序
- install: $(TARGET)
- cp $(TARGET) /usr/local/bin/
- # 卸载程序
- uninstall:
- rm -f /usr/local/bin/$(TARGET)
- # 测试程序
- test: $(TARGET)
- ./$(TARGET) --test
- # 生成文档
- doc:
- doxygen Doxyfile
- .PHONY: all run clean install uninstall test doc
复制代码- # 构建程序
- make
- # 运行程序
- make run
- # 清理生成的文件
- make clean
- # 安装程序
- sudo make install
- # 运行测试
- make test
- # 生成文档
- make doc
复制代码
7.3 使用 Shell 脚本自动化任务
Shell 脚本是自动化任务的强大工具,可以用于设置开发环境、部署应用等。
创建一个名为setup.sh的脚本:
- #!/bin/bash
- # 设置开发环境的脚本
- # 更新系统
- echo "Updating system..."
- sudo apt update && sudo apt upgrade -y
- # 安装基础工具
- echo "Installing basic tools..."
- sudo apt install -y build-essential curl wget git
- # 安装 Python
- echo "Installing Python..."
- sudo apt install -y python3 python3-pip python3-venv
- # 安装 Node.js
- echo "Installing Node.js..."
- curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
- sudo apt install -y nodejs
- # 安装 Docker
- echo "Installing Docker..."
- curl -fsSL https://get.docker.com -o get-docker.sh
- sudo sh get-docker.sh
- sudo usermod -aG docker $USER
- # 安装 VS Code
- echo "Installing VS Code..."
- wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
- sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
- sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
- sudo apt update
- sudo apt install -y code
- # 清理
- echo "Cleaning up..."
- rm get-docker.sh packages.microsoft.gpg
- echo "Setup complete! Please log out and log back in to apply all changes."
复制代码
创建一个名为deploy.sh的脚本:
- #!/bin/bash
- # 部署应用的脚本
- # 变量定义
- APP_NAME="my-app"
- IMAGE_NAME="$APP_NAME:latest"
- CONTAINER_NAME="$APP_NAME-container"
- # 构建镜像
- echo "Building Docker image..."
- docker build -t $IMAGE_NAME .
- # 停止并删除旧容器
- echo "Stopping and removing old container..."
- docker stop $CONTAINER_NAME 2>/dev/null || true
- docker rm $CONTAINER_NAME 2>/dev/null || true
- # 运行新容器
- echo "Starting new container..."
- docker run -d --name $CONTAINER_NAME -p 3000:3000 $IMAGE_NAME
- # 检查容器状态
- echo "Checking container status..."
- docker ps -f name=$CONTAINER_NAME
- echo "Deployment complete!"
复制代码- # 使脚本可执行
- chmod +x setup.sh deploy.sh
- # 运行设置脚本
- ./setup.sh
- # 运行部署脚本
- ./deploy.sh
复制代码
7.4 使用 Dev Containers 进行开发
Dev Containers (开发容器) 是一种使用容器作为完整开发环境的方法,可以确保所有团队成员使用相同的环境。
在项目根目录创建.devcontainer目录,并添加以下文件:
devcontainer.json:
- {
- "name": "My Project",
- "dockerFile": "Dockerfile",
- "settings": {
- "terminal.integrated.shell.linux": "/bin/bash",
- "python.pythonPath": "/usr/local/bin/python",
- "python.linting.pylintEnabled": true,
- "python.linting.enabled": true,
- "python.formatting.provider": "black",
- "editor.formatOnSave": true
- },
- "extensions": [
- "ms-python.python",
- "ms-azuretools.vscode-docker",
- "ms-vscode.vscode-typescript-next"
- ],
- "forwardPorts": [3000, 5432],
- "postCreateCommand": "pip install -r requirements.txt"
- }
复制代码
Dockerfile:
- # 使用基础镜像
- FROM mcr.microsoft.com/vscode/devcontainers/python:0-3.10
- # 安装 Node.js
- RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
- apt-get install -y nodejs
- # 安装其他依赖
- RUN apt-get update && apt-get install -y \
- postgresql-client \
- && rm -rf /var/lib/apt/lists/*
- # 设置工作目录
- WORKDIR /workspace
- # 复制 requirements.txt
- COPY requirements.txt .
- # 安装 Python 依赖
- RUN pip install --no-cache-dir -r requirements.txt
复制代码
1. 在 VS Code 中安装 “Remote - Containers” 扩展
2. 按F1打开命令面板
3. 选择 “Remote-Containers: Reopen in Container”
4. VS Code 将构建容器并在其中重新打开项目
7.5 使用 GitHub Actions 进行 CI/CD
GitHub Actions 是一个 CI/CD (持续集成/持续部署) 平台,可以自动构建、测试和部署代码。
在项目根目录创建.github/workflows目录,并添加以下文件:
ci.yml:
- name: CI
- on:
- push:
- branches: [ main ]
- pull_request:
- branches: [ main ]
- jobs:
- test:
- runs-on: ubuntu-latest
-
- strategy:
- matrix:
- node-version: [16.x, 18.x]
- python-version: [3.9, '3.10']
-
- steps:
- - uses: actions/checkout@v3
-
- - name: Set up Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v3
- with:
- node-version: ${{ matrix.node-version }}
- cache: 'npm'
-
- - name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v4
- with:
- python-version: ${{ matrix.python-version }}
-
- - name: Install dependencies
- run: |
- npm ci
- python -m pip install --upgrade pip
- pip install -r requirements.txt
- pip install pytest
-
- - name: Run tests
- run: |
- npm test
- pytest
复制代码
deploy.yml:
- name: Deploy
- on:
- push:
- branches: [ main ]
- jobs:
- build-and-deploy:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v3
-
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
-
- - name: Login to DockerHub
- uses: docker/login-action@v2
- with:
- username: ${{ secrets.DOCKERHUB_USERNAME }}
- password: ${{ secrets.DOCKERHUB_TOKEN }}
-
- - name: Build and push
- uses: docker/build-push-action@v4
- with:
- context: .
- push: true
- tags: user/my-app:latest
-
- - name: Deploy to production
- uses: appleboy/ssh-action@master
- with:
- host: ${{ secrets.PRODUCTION_HOST }}
- username: ${{ secrets.PRODUCTION_USER }}
- key: ${{ secrets.PRODUCTION_SSH_KEY }}
- script: |
- cd /opt/my-app
- docker-compose pull
- docker-compose up -d
复制代码
在 GitHub 仓库中,转到 Settings > Secrets and variables > Actions,添加以下 secrets:
• DOCKERHUB_USERNAME: Docker Hub 用户名
• DOCKERHUB_TOKEN: Docker Hub 访问令牌
• PRODUCTION_HOST: 生产服务器主机名
• PRODUCTION_USER: 生产服务器用户名
• PRODUCTION_SSH_KEY: 生产服务器 SSH 私钥
8. 总结与最佳实践
8.1 开发环境维护
维护一个健康、高效的开发环境需要遵循一些最佳实践:
1. 定期更新系统:定期运行sudo apt update && sudo apt upgrade保持系统最新。
2. 清理不需要的软件包:定期运行sudo apt autoremove清理不需要的依赖包。
3. 备份配置文件:将重要的配置文件(如.bashrc,.vimrc等)备份到版本控制系统。
4. 使用版本控制:使用 Git 管理所有项目,包括配置文件和脚本。
5. 文档化环境设置:记录环境设置过程,以便在新机器上快速重现。
8.2 安全最佳实践
在设置和使用开发环境时,请遵循以下安全最佳实践:
1. 使用强密码和 SSH 密钥:避免使用弱密码,使用 SSH 密钥进行身份验证。
2. 定期更新软件:保持所有软件(包括操作系统、开发工具和依赖项)最新。
3. 限制权限:使用最小权限原则,只在必要时使用 sudo。
4. 保护敏感信息:不要将密码、API 密钥等敏感信息硬编码到代码中,使用环境变量或 secrets 管理工具。
5. 使用防火墙:配置防火墙限制不必要的入站和出站连接。
8.3 性能优化
优化开发环境的性能可以提高工作效率:
1. 使用 SSD:如果可能,使用固态硬盘存储操作系统和项目文件。
2. 增加内存:确保系统有足够的内存运行开发工具和应用程序。
3. 优化 IDE 设置:根据系统资源调整 IDE 的内存设置和性能选项。
4. 使用轻量级工具:对于资源有限的系统,考虑使用轻量级的编辑器和工具。
5. 管理启动项:减少不必要的启动项,加快系统启动速度。
8.4 持续学习与改进
技术不断发展,保持学习是提高开发效率的关键:
1. 关注新技术:定期了解新的开发工具、框架和技术。
2. 参与社区:加入开发者社区,分享经验和学习他人的最佳实践。
3. 尝试新工具:定期尝试新的开发工具和流程,寻找更高效的工作方式。
4. 收集反馈:从团队成员和社区收集反馈,改进开发环境和工作流程。
5. 自动化重复任务:识别并自动化重复性任务,节省时间和精力。
9. 结语
本教程详细介绍了如何在 Pop!_OS 上构建一个完整的开发环境,涵盖了多种编程语言的安装、IDE 配置、版本控制系统以及容器技术。通过遵循本教程,您已经拥有了一个强大、灵活且高效的开发环境,可以满足各种开发需求。
记住,开发环境的设置是一个持续的过程,随着技术的发展和个人需求的变化,您可能需要不断调整和优化您的环境。希望本教程能为您提供一个坚实的基础,帮助您在 Pop!_OS 上实现高效的开发工作流。
祝您编码愉快!
版权声明
1、转载或引用本网站内容(从零开始构建Pop OS开发环境完整教程涵盖编程语言安装IDE配置版本控制及容器技术助您打造高效编程工作流)须注明原网址及作者(威震华夏关云长),并标明本网站网址(https://pixtech.cc/)。
2、对于不当转载或引用本网站内容而引起的民事纷争、行政处理或其他损失,本网站不承担责任。
3、对不遵守本声明或其他违法、恶意使用本网站内容者,本网站保留追究其法律责任的权利。
本文地址: https://pixtech.cc/thread-41568-1-1.html
|
|