<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>开发环境 on Breaking Dawn</title><link>https://breaking-dawn.cn/tags/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/</link><description>Recent content in 开发环境 on Breaking Dawn</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Tue, 21 Jul 2026 10:20:00 +0800</lastBuildDate><atom:link href="https://breaking-dawn.cn/tags/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/index.xml" rel="self" type="application/rss+xml"/><item><title>Linux 上使用数据库客户端：正版 Navicat 与开源替代方案</title><link>https://breaking-dawn.cn/p/linux-database-client-legal/</link><pubDate>Tue, 21 Jul 2026 10:20:00 +0800</pubDate><guid>https://breaking-dawn.cn/p/linux-database-client-legal/</guid><description>
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;合规说明&lt;/strong&gt;：本文不提供破解、补丁、许可证绕过或受限软件下载的内容。商业软件请使用有效许可证、试用版或教育授权。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;在 Ubuntu 上管理 MySQL、PostgreSQL、SQLite 等数据库时，先按团队规范决定客户端；数据库连接配置、SSH 密钥和生产凭据比“装什么软件”更需要谨慎保管。&lt;/p&gt;
&lt;h2 id="商业软件从官方渠道获取"&gt;商业软件：从官方渠道获取
&lt;/h2&gt;&lt;p&gt;若团队使用 Navicat，请从 &lt;a class="link" href="https://www.navicat.com/en/download/navicat-premium" target="_blank" rel="noopener"
 &gt;Navicat 官方下载页&lt;/a&gt; 获取适用于 Linux 的安装包，并使用组织或个人的有效授权。安装前确认发行版支持范围、CPU 架构与更新渠道；不要从第三方网盘或来历不明的二次打包版本安装。&lt;/p&gt;
&lt;h2 id="开源替代dbeaver-community"&gt;开源替代：DBeaver Community
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://dbeaver.io/download/" target="_blank" rel="noopener"
 &gt;DBeaver Community&lt;/a&gt; 是常见的开源跨平台数据库客户端。它适合同时连接多种数据库；驱动和插件会随版本变化，建议从项目官方页面选择适合 Ubuntu 的安装包或仓库方式。&lt;/p&gt;
&lt;h2 id="连接生产库前的最小检查"&gt;连接生产库前的最小检查
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;使用只读或最小权限账号，避免日常使用超级管理员账号。&lt;/li&gt;
&lt;li&gt;通过密码管理器或 SSH Agent 管理凭据，不把密码写入连接截图、脚本或 Git 仓库。&lt;/li&gt;
&lt;li&gt;首次连接先确认主机名、端口、环境标签与证书；生产库与测试库应使用明显不同的连接颜色或名称。&lt;/li&gt;
&lt;li&gt;导出 / 导入数据前确认文件包含范围和目标库，特别是 Windows 11 与 Ubuntu 共享目录中的备份文件。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="出处"&gt;出处
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;官方来源：&lt;a class="link" href="https://www.navicat.com/en/download/navicat-premium" target="_blank" rel="noopener"
 &gt;Navicat Premium for Linux 下载&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;替代方案来源：&lt;a class="link" href="https://dbeaver.io/download/" target="_blank" rel="noopener"
 &gt;DBeaver Community 下载&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;原始收藏中有一条涉及非授权破解的教程；整理时已删除该类内容并改为合法安装与替代方案说明。&lt;/p&gt;</description></item><item><title>Ubuntu 22.04 使用 nvm 管理多个 Node.js 版本</title><link>https://breaking-dawn.cn/p/ubuntu-nvm-node/</link><pubDate>Tue, 21 Jul 2026 10:10:00 +0800</pubDate><guid>https://breaking-dawn.cn/p/ubuntu-nvm-node/</guid><description>
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;适用环境&lt;/strong&gt;：Ubuntu 22.04 LTS 的 Bash / Zsh 用户。nvm 是“按用户、按 shell”工作的工具，不会成为系统范围的 &lt;code&gt;apt&lt;/code&gt; 软件包。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;nvm 适合同时维护多个 Node.js 项目：一个老项目使用旧 LTS，另一个项目使用新版本，而不需要反复卸载系统 Node。&lt;/p&gt;
&lt;h2 id="从官方发布页安装"&gt;从官方发布页安装
&lt;/h2&gt;&lt;p&gt;从 &lt;a class="link" href="https://github.com/nvm-sh/nvm#installing-and-updating" target="_blank" rel="noopener"
 &gt;nvm 官方仓库的安装说明&lt;/a&gt; 复制&lt;strong&gt;当前发布版本&lt;/strong&gt;的安装命令。执行 &lt;code&gt;curl | bash&lt;/code&gt; 类命令前，建议先打开脚本链接审阅，或采用官方 README 提供的 Git 安装方式。&lt;/p&gt;
&lt;p&gt;安装器通常会把下面这一类加载代码写入 &lt;code&gt;~/.bashrc&lt;/code&gt; 或其他 shell 配置文件：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;NVM_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/.nvm&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt; -s &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$NVM_DIR&lt;/span&gt;&lt;span class="s2"&gt;/nvm.sh&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; . &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$NVM_DIR&lt;/span&gt;&lt;span class="s2"&gt;/nvm.sh&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;重新打开终端，或执行：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;command&lt;/span&gt; -v nvm
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;注意要用 &lt;code&gt;command -v nvm&lt;/code&gt;，而不是 &lt;code&gt;which nvm&lt;/code&gt;：nvm 是 shell 函数，不是普通可执行文件。&lt;/p&gt;
&lt;h2 id="常用工作流"&gt;常用工作流
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nvm install --lts
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nvm use --lts
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nvm &lt;span class="nb"&gt;alias&lt;/span&gt; default &lt;span class="s1"&gt;&amp;#39;lts/*&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;node --version
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm --version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;项目根目录可以放置 &lt;code&gt;.nvmrc&lt;/code&gt;，例如写入 &lt;code&gt;22&lt;/code&gt; 或具体版本号；进入项目后执行 &lt;code&gt;nvm use&lt;/code&gt;，使每个项目都用其要求的运行时。不要对 nvm 管理的全局 npm 包使用 &lt;code&gt;sudo&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id="双系统边界"&gt;双系统边界
&lt;/h2&gt;&lt;p&gt;Ubuntu 上的 nvm 与 Windows 11 中安装的 Node.js / nvm-windows 相互独立。不要试图让两边共享 &lt;code&gt;~/.nvm&lt;/code&gt;、&lt;code&gt;node_modules&lt;/code&gt; 或全局 npm 目录；文件权限、原生模块和路径格式都不同。&lt;/p&gt;
&lt;h2 id="出处"&gt;出处
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;原始参考：&lt;a class="link" href="https://github.com/nvm-sh/nvm" target="_blank" rel="noopener"
 &gt;nvm-sh/nvm 官方仓库&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;文档参考：&lt;a class="link" href="https://github.com/nvm-sh/nvm#usage" target="_blank" rel="noopener"
 &gt;nvm README：安装、验证与使用&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本文基于项目官方文档整理，避免固化会过期的安装脚本版本号。&lt;/p&gt;</description></item><item><title>Ubuntu 22.04 安装 CMake：稳定版、项目版与版本核对</title><link>https://breaking-dawn.cn/p/ubuntu-install-cmake/</link><pubDate>Tue, 21 Jul 2026 09:55:00 +0800</pubDate><guid>https://breaking-dawn.cn/p/ubuntu-install-cmake/</guid><description>
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;适用环境&lt;/strong&gt;：Ubuntu 22.04 LTS。先阅读项目的 &lt;code&gt;CMakeLists.txt&lt;/code&gt;、README 或 CI 配置，确认最低版本；“越新越好”并不总是正确。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="优先选择ubuntu-系统仓库"&gt;优先选择：Ubuntu 系统仓库
&lt;/h2&gt;&lt;p&gt;对于没有明确版本要求的项目，系统仓库的 CMake 最易维护：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install cmake
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cmake --version
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;command&lt;/span&gt; -v cmake
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;它会随着 Ubuntu 的安全更新维护，卸载、升级和依赖关系也由 APT 管理。&lt;/p&gt;
&lt;h2 id="项目要求更高版本时"&gt;项目要求更高版本时
&lt;/h2&gt;&lt;p&gt;若项目明确要求比仓库更新的 CMake，优先使用 &lt;a class="link" href="https://cmake.org/download/" target="_blank" rel="noopener"
 &gt;CMake 官方下载页&lt;/a&gt; 提供的发行包，或采用项目自己的容器 / 工具链配置。安装后务必核对实际生效版本：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cmake --version
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;type&lt;/span&gt; -a cmake
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果同时存在 &lt;code&gt;/usr/bin/cmake&lt;/code&gt; 与 &lt;code&gt;/usr/local/bin/cmake&lt;/code&gt;，后者通常会优先执行。记录该差异，避免同一台机器上不同终端、CI 或 IDE 使用了不同版本。&lt;/p&gt;
&lt;h2 id="不建议直接沿用旧教程的做法"&gt;不建议直接沿用旧教程的做法
&lt;/h2&gt;&lt;p&gt;许多旧教程使用 &lt;code&gt;apt-key&lt;/code&gt;、针对旧版 Ubuntu 代号的第三方源，或在 &lt;code&gt;/usr/local&lt;/code&gt; 源码编译安装。这些方式会造成密钥管理过时、软件源不匹配或覆盖系统版本。只有在必须补丁 CMake 本身时，才考虑从源码编译，并把版本、安装位置和卸载方法写入项目文档。&lt;/p&gt;
&lt;h2 id="出处"&gt;出处
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;原始参考：&lt;a class="link" href="https://blog.csdn.net/Man_1man/article/details/126467371" target="_blank" rel="noopener"
 &gt;Ubuntu 安装 CMake 的三种方法&lt;/a&gt;（Man_1man，CSDN）&lt;/li&gt;
&lt;li&gt;官方参考：&lt;a class="link" href="https://cmake.org/download/" target="_blank" rel="noopener"
 &gt;CMake Download&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本文保留“按需求选择安装方式”的思路，并移除了过时发行版软件源示例。&lt;/p&gt;</description></item></channel></rss>