ubuntu 系统维护
一 切换到国内源1.1 ubuntu 24.04 切换到国内源1.1.1 确认系统版本请先在终端执行 lsb_release -c 确认版本代号为 noble以下配置才能生效。ubuntuubuntu2404:/etc/apt/sources.list.d$ lsb_release -c No LSB modules are available. Codename: noble ubuntuubuntu2404:/etc/apt/sources.list.d$1.1.2 实施步骤 1备份原有源列表Ubuntu 24.04 的源配置文件位于 /etc/apt/sources.list.d/ubuntu.sources。执行以下命令进行备份sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak步骤 2替换为清华源sudo tee /etc/apt/sources.list.d/ubuntu.sources /dev/null EOF Types: deb URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ Suites: noble noble-updates noble-backports Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg Types: deb URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ Suites: noble-security Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg EOF步骤 3保存并更新sudo apt update二 配置远程桌面以下是在ubuntu 24.04 版本配置2.1 方式一 使用gnome-remote-desktopUbuntu 24.04 自带了 gnome-remote-desktop它基于 xrdp 实现但提供了更好的 GNOME 集成。2.1.1 安装组件 (通常已预装若未安装执行此命令)sudo apt install gnome-remote-desktop2.1.2 配置 RDP 服务配置 RDP 服务进入 Settings (设置) - System (系统) - Remote Desktop (远程桌面)。在右侧选择 “Remote Login” (远程登录) 或 “Desktop Sharing” (桌面共享)。Remote Login类似于 Windows 远程桌面会创建一个新的会话推荐用于服务器。Desktop Sharing共享当前正在使用的桌面。打开开关。点击 “Authentication” (认证) 旁边的齿轮图标设置一个 用户名 和 密码这通常与你的系统密码一致但如果提示密钥环问题需单独设置。2.1.3 然后使用mstsc 测试验证2.2 方式二 安装与配置 VNC (使用 TigerVNC)由于 Ubuntu 24.04 的兼容性变化推荐使用 TigerVNC 而不是 TightVNC。已验证TigerVNC GNOME/GNOME Flashback 黑屏暂无解决方案2.2.1 安装tigerVNC 并验证2.2.1.1 安装 TigerVNCsudo apt update sudo apt install tigervnc-standalone-server tigervnc-common -y sudo apt install xterm -y2.2.1.2 设置 VNC 密码vncpasswd输入 8 位以内的密码。询问是否设置“仅查看”密码时输入 n。2.2.1.3 验证VNC 可能正常使用vncserver -localhost no -geometry 1024x768 -depth 24 :99这里为什么是99而不是常见的1因为ubuntu24 默认使用1-10请不要使用这几个数字最好从50开始测试验证命令 vncserver -localhost no -geometry 1024x768 -depth 24 :99 检查 vncserver -list可以使用vncview 连接验证2.2.1.4 vnc 常用调试命令# 启动 ubuntuubuntu2404:~$ vncserver -localhost no -geometry 1920x1080 -depth 24 :98 #看已启动vnc ubuntuubuntu2404:~$ vncserver -list # 看日志 ubuntuubuntu2404:~$ tail -n 50 ~/.vnc/$(hostname):98.log #kill ubuntuubuntu2404:~$ vncserver -kill :98 Killing Xtigervnc process ID 11503... success! ubuntuubuntu2404:~$ rm -f ~/.vnc/*:98.*2.2.2 XFCE4 与xstarup 集成2.2.2.1 安装xfce4sudo apt install xfce4 xfce4-goodies dbus-x11 x11-xserver-utils -y安装过程中会有个弹窗请选择gdm3xfce4 和 xfce4-goodies 是轻量级桌面环境及其插件。dbus-x11 和 x11-xserver-utils 是保证图形界面正常通信和运行的依赖。2.2.2.2 配置 xstartup 文件 (xfce4 版本)这个文件告诉 VNC 启动什么桌面环境。使用 nano 编辑配置文件nano ~/.vnc/xstartup将以下内容粘贴进去这是适配 Ubuntu 24.04 GNOME 的关键配置ubuntuubuntu2404:~$ cat .vnc/xstartup #!/bin/bash # Debug log exec /tmp/vnc-debug.log 21 echo [$(date)] xstartup started with DISPLAY # 启动 XFCE echo [$(date)] Starting XFCE... # 清除可能干扰的会话管理器变量 unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS # 明确指定使用 X11 后端 export XDG_SESSION_TYPEx11 # 启动 Xfce 桌面 exec startxfce4 ubuntuubuntu2404保存并退出 (CtrlO, Enter, CtrlX)。赋予执行权限chmod x ~/.vnc/xstartup2.2.2.3 验证2.2.3.1 初步验证结论能用但是浏览器无法正常使用暂未解决浏览器问题重启系统然后执行ubuntuubuntu2404:~$ vncserver -localhost no -geometry 1920x1080 -depth 24 :98vncserver -list然后使用vncview 客户端连接能显示窗口但是浏览器不能使用2.2.3.2 修复浏览器不能使用卸载 Snap 版 Firefox改用 APT 安装的原生版本第一步彻底移除 Snap 版 Firefox# 卸载 Snap 应用 sudo snap remove firefox # 移除过渡包关键 sudo apt purge firefox -y第二步验证是否已清除# 检查 snap 是否还有 firefox snap list | grep firefox # 应无输出 # 检查 apt 是否还有 firefox 包 dpkg -l firefox # 应显示 rc 或无结果第三步安装真正的 APT 版 Firefox来自 Mozilla PPA# 1. 添加 Mozilla 官方 PPA sudo add-apt-repository ppa:mozillateam/ppa -y # 2. 设置优先级防止被 Ubuntu 默认源覆盖 echo Package: * Pin: release oLP-PPA-mozillateam Pin-Priority: 1001 | sudo tee /etc/apt/preferences.d/mozilla-firefox #3验证 PPA 是否生效 apt policy firefox 若没生效安装了还是snap 版本 # 4. 更新并安装 sudo apt update sudo apt install firefox -y第四步验证安装成功dpkg -l firefox | grep ^iiubuntuubuntu2404:~$ dpkg -l firefox | grep ^ii ii firefox 1:1snap1-0ubuntu5 amd64 Transitional package - firefox - firefox snap ubuntuubuntu2404:~$ which firefox /usr/bin/firefox2.2.3 gnome 集成xstartup2.2.3.1 安装gnomesudo apt install gnome-session-flashback metacity gnome-panel -y2.2.3.2 配置xstartup#!/bin/bash # 强制使用 X11 显示防止继承 Wayland export DISPLAY:98 # Debug log exec /tmp/vnc-debug.log 21 echo [$(date)] xstartup started for GNOME Flashback # 清理冲突环境变量 unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS # 设置 GNOME Flashback 兼容环境 export XDG_CURRENT_DESKTOPGNOME-Flashback:GNOME export XDG_MENU_PREFIXgnome- export XDG_SESSION_DESKTOPgnome-flashback-metacity export XDG_SESSION_TYPEx11 export XDG_SESSION_CLASSuser # 启动 D-Bus 会话解决面板/应用通信问题 eval $(dbus-launch --sh-syntax) echo [$(date)] D-Bus session started: DBUS_SESSION_BUS_ADDRESS$DBUS_SESSION_BUS_ADDRESS # 启动 GNOME Flashback 会话使用 metacity echo [$(date)] Starting GNOME Flashback (metacity)... exec /usr/bin/gnome-session --sessiongnome-flashback-metacity能用但是浏览器 也不行2.3 创建 Systemd 服务 (开机自启)有问题暂未解决2.3.1 新增开机启动配置文件创建服务文件sudo tee /etc/systemd/system/vncserver.service EOF [Unit] DescriptionTigerVNC Server for %i Aftersyslog.target network.target [Service] Typeforking Userubuntu Groupubuntu WorkingDirectory/home/ubuntu # 环境变量确保干净启动 EnvironmentHOME/home/ubuntu EnvironmentUSERubuntu EnvironmentXAUTHORITY/home/ubuntu/.Xauthority # PID 文件路径%i 显示号如 98 PIDFile/home/ubuntu/.vnc/%H:%i.pid # 启动前清理旧进程 ExecStartPre-/usr/bin/vncserver -kill :%i /dev/null 21 # 启动 VNC传入显示号给 xstartup ExecStart/usr/bin/vncserver -localhost no -geometry 1920x1080 -depth 24 :%i -xstartup /home/ubuntu/.vnc/xstartup %i # 停止命令 ExecStop/usr/bin/vncserver -kill :%i Restarton-failure RestartSec5 [Install] WantedBymulti-user.target EOF 关键点使用 %i 占位符代表显示号-xstartup … %i 将显示号传给脚本$1ExecStartPre 防止端口冲突2.2.5 启用并启动服务# 重载 systemd 配置 sudo systemctl daemon-reload # 启用开机自启:99 sudo systemctl enable vncserver99.service # 立即启动服务 sudo systemctl start vncserver99.service三安装docker和docker-compose3.1 安装docker一把顺序是先 卸载然后配置docker 源再安装3.1.1 准备工作3.1.1.1 卸载旧版本如有sudo apt remove docker docker-engine docker.io containerd runc docker-compose docker-compose-v2 podman-docker3.1.1.2 安装依赖sudo apt update sudo apt install ca-certificates curl gnupg lsb-release -y3.2 配置国内docker 源配置清华源# 下载并安装清华源Docker GPG密钥 curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 添加清华源 echo deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null3.3 安装docker和docker-compose3.3.1 更新软件索引包sudo apt update3.3.2 安装Docker CE及相关组件sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin说明docker-compose-plugin 是Docker官方维护的Compose V2插件安装后使用 docker compose 命令注意中间有空格而非旧版的 docker-compose3.4 验证安装docker --version docker compose version docker info sudo systemctl is-active docker3.5 免 sudo 使用 docker推荐sudo usermod -aG docker $USER注销重新登录后生效。四 修改ip4.1、查看当前网络配置1. 查看网卡名称ipaddr# 或者ipa2. 查看当前Netplan配置文件ls/etc/netplan/常见的配置文件名00-installer-config.yaml50-cloud-init.yaml01-network-manager-all.yaml4.2、备份配置文件重要sudocp/etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak4.3、编辑网络配置文件1. 使用nano编辑sudonano/etc/netplan/00-installer-config.yaml2. 配置静态IP示例有线网络ethernet配置network:version:2renderer:networkdethernets:ens33:# 替换为你的网卡名称dhcp4:noaddresses:[192.168.1.100/24]# IP地址和子网掩码gateway4:192.168.1.1# 网关地址nameservers:addresses:[8.8.8.8,114.114.114.114]# DNS服务器如果使用NetworkManager桌面版常用network:version:2renderer:NetworkManagerethernets:ens33:dhcp4:noaddresses:[192.168.1.100/24]gateway4:192.168.1.1nameservers:addresses:[8.8.8.8,114.114.114.114]3. 配置动态IPDHCPnetwork:version:2renderer:networkdethernets:ens33:dhcp4:yes4.4、应用配置1. 测试配置语法sudonetplan try这会应用配置并等待你确认如果120秒内没有确认会自动回滚。2. 应用配置sudonetplan apply3. 验证配置ipaddr show ens33ping-c4www.baidu.com4.5、常见配置示例示例1多IP地址配置network:version:2renderer:networkdethernets:ens33:addresses:-192.168.1.100/24-192.168.1.101/24gateway4:192.168.1.1nameservers:addresses:[8.8.8.8,114.114.114.114]示例2配置多个DNS服务器network:version:2renderer:networkdethernets:ens33:dhcp4:noaddresses:[192.168.1.100/24]gateway4:192.168.1.1nameservers:addresses:[8.8.8.8,8.8.4.4,114.114.114.114,223.5.5.5]4.6、故障排查1. 如果配置失败恢复备份sudocp/etc/netplan/00-installer-config.yaml.bak /etc/netplan/00-installer-config.yamlsudonetplan apply2. 查看Netplan日志sudonetplan--debugapply3. 检查网络服务状态systemctl status systemd-networkd4.7、注意事项YAML格式要求严格使用空格缩进不要用Tab冒号后要有空格缩进层级要正确网卡名称可能不同常见的有ens33,eth0,enp0s3,enp3s0等子网掩码表示法/24 255.255.255.0/16 255.255.0.0/8 255.0.0.0修改后网络可能中断建议在本地操作或有备用连接使用netplan try可以安全测试配置4.8、快速参考命令# 查看网卡ipaddr# 编辑配置sudonano/etc/netplan/00-installer-config.yaml# 测试配置sudonetplan try# 应用配置sudonetplan apply# 验证ipaddr show ens33pingwww.baidu.com五 安装node这是Ubuntu 24.04 NVM Node.js npm最标准、最灵活、无权限问题的安装方式全程国内源复制粘贴就能用5.1、安装 NVM国内镜像超快直接执行这一条命令curl-o- https://gitee.com/mirrors/nvm/raw/master/install.sh|bash5.2、立即生效 NVM 命令source~/.bashrcsource~/.profile验证是否安装成功nvm--version出现版本号 成功 ✅5.3、配置 NVM 国内下载源必须否则下载超慢echoexport NVM_NODEJS_ORG_MIRRORhttps://npmmirror.com/mirrors/node~/.bashrcsource~/.bashrc5.4、安装 Node.jsLTS 长期稳定版nvminstall--lts等待自动安装完成即可。5.5、验证 Node npmnode-vnpm-v都出现版本号 完全成功 ✅5.6、把 npm 换成国内镜像必做npmconfigsetregistry https://registry.npmmirror.com验证npmconfig get registry常用 NVM 命令nvmls# 查看已安装版本nvminstall20# 安装 v20 版本nvm use20# 切换到 v20nvmaliasdefault20# 设置默认版本总结NVM 管理多版本 Node无权限错误全程国内源下载飞快不报错自动带npm无需单独安装适合开发环境、服务器环境六 安装claude6.1 前提条件确保已安装 Node.js版本 20.0.0具备 npm 包管理工具通常随 Node.js 一同安装Git环境6.2 安装全局安装我使用淘宝的源安装的npm install -g anthropic-ai/claude-code6.3 配置apikey你找不到~/.claude是因为它不是默认创建的需要手动建而 Claude 环境变量优先用系统 Shell 配置~/.bashrc / ~/.zshrc这是最标准、最推荐的方式。一、先搞懂两种配置方式任选其一方式1Shell 环境变量推荐最通用Ubuntu 默认用bash所以改~/.bashrc用 zsh 就改~/.zshrc。打开配置文件nano~/.bashrc末尾添加替换成你的真实信息# Claude Code 环境变量exportANTHROPIC_API_KEYsk-ant-你的真实API密钥# 如需中转/代理才加下面这行官方直连不用加# export ANTHROPIC_BASE_URLhttps://你的代理地址# 可选指定默认模型# export ANTHROPIC_MODELclaude-3-opus-20240229保存并生效# CtrlO 保存CtrlX 退出 nanosource~/.bashrc验证echo$ANTHROPIC_API_KEY# 应输出你的密钥claude--version方式2创建 ~/.claude 配置目录官方本地配置如果你想用本地配置文件而非环境变量# 创建目录mkdir-p~/.claude# 编辑配置nano~/.claude/settings.json写入{env:{ANTHROPIC_API_KEY:sk-ant-你的真实API密钥,ANTHROPIC_BASE_URL:https://api.anthropic.com}}保存退出即可。二、常见问题排查找不到 ~/.bashrc它是隐藏文件ls -a才能看到不存在就直接touch ~/.bashrc新建。环境变量不生效新开一个终端或执行source ~/.bashrc确认你用的是 bash 还是 zshecho $SHELLclaude 命令找不到先确认安装成功npminstall-ganthropic-ai/claude-code claude--version三、一键配置脚本复制即用# 一键添加到 bashrcechoexport ANTHROPIC_API_KEYsk-ant-你的密钥~/.bashrcechoexport ANTHROPIC_BASE_URLhttps://api.anthropic.com~/.bashrcsource~/.bashrc# 验证echo$ANTHROPIC_API_KEYclaude test-connection四 问题4.1 配置了中转站 但使用报错4.1.1 报错图4.1.2 修复方法这张截图提供的方案非常有价值它揭示了通过修改本地配置文件来绕过某些检查的方法。这通常是解决“中转站”配置无法生效的关键步骤。简单来说程序可能因为某些原因比如之前的连接失败卡在了“新手引导”或“初始化”状态导致它忽略了你的代理或中转站配置。通过手动创建这个文件我们可以“欺骗”程序让它认为已经完成了所有设置从而直接加载你的配置。操作步骤请按照以下步骤在你的 Ubuntu 终端中操作打开终端确保你已经在 Ubuntu 的终端界面。编辑配置文件你可以使用nano编辑器简单易用来创建并编辑这个文件。在终端中输入以下命令并回车nano~/.claude.json输入内容在打开的编辑器中输入或粘贴截图中的 JSON 代码{hasCompletedOnboarding:true}保存并退出按下Ctrl O键代表 Output即写入/保存。按下Enter键确认文件名。按下Ctrl X键退出编辑器。再次尝试运行现在再次输入claude命令并回车claude重要提示这个操作主要是为了让程序**“跳过检查”并“启用配置”**。如果你的“中转站”配置如环境变量API_BASE_URL或代理本身是正确的这个操作通常能直接解决问题让程序跑起来。如果你的网络依然无法连接到目标服务器例如代理没开或者中转站地址失效即使做了这个步骤可能依然会报错。建议配合使用在做完这个步骤后如果还是报错请务必确认你的网络代理VPN已经开启并且系统环境变量中正确设置了中转站地址如果有的话。