[{"data":1,"prerenderedAt":60},["ShallowReactive",2],{"article-111":3},{"code":4,"msg":5,"data":6,"count":14},200,"查询成功",{"id":7,"title":8,"keywords":9,"description":10,"category_id":11,"content":12,"body_html":13,"thumb_up":14,"clicks":15,"sort":14,"remark":13,"status":11,"is_open":11,"is_deleted":14,"is_top":11,"is_recommend":11,"create_time":16,"update_time":16,"image_id":17,"url":13,"member_id":14,"cate_name":18,"prev":19,"next":22,"tags":25,"words":32,"read_time":33,"comments":14,"cover":34,"relevant":35},111,"Ubuntu系统安装Protocol Buffers (protobuf) 编译器完全指南","Ubuntu,protobuf","rotocol Buffers（简称protobuf）是Google开发的一种高效的数据序列化工具，广泛应用于RPC系统和数据存储等场景。本文将详细介绍在Ubuntu系统上安装protobuf编译器（ protoc ）的三种方法，并帮助您选择最适合的安装方式。",1,"Protocol Buffers（简称protobuf）是Google开发的一种高效的数据序列化工具，广泛应用于RPC系统和数据存储等场景。本文将详细介绍在Ubuntu系统上安装protobuf编译器（`protoc`）的三种方法，并帮助您选择最适合的安装方式。\n\n## 方法一：使用预编译的二进制文件（**推荐**）\n\n这是最直接、最不容易出现依赖问题的安装方法，适合绝大多数用户。通过此方法，您可以轻松安装特定版本或最新版本的protoc编译器。\n\n### 安装步骤\n\n1.  **访问GitHub发布页面**\n    打开Protocol Buffers的GitHub发布页面，查看最新稳定版本：\n    [https:\u002F\u002Fgithub.com\u002Fprotocolbuffers\u002Fprotobuf\u002Freleases](https:\u002F\u002Fgithub.com\u002Fprotocolbuffers\u002Fprotobuf\u002Freleases)\n    \n    找到最新版本（例如`v26.1`），在\"Assets\"部分中，选择适用于Linux系统的`protoc-*-linux-x86_64.zip`文件（如`protoc-26.1-linux-x86_64.zip`）。\n\n2.  **下载压缩包**\n    使用`curl`或`wget`命令下载到您的服务器（请将链接中的版本号替换为您看到的最新版本）：\n    \n    ```bash\n    PB_REL=\"https:\u002F\u002Fgithub.com\u002Fprotocolbuffers\u002Fprotobuf\u002Freleases\u002Fdownload\u002Fv26.1\u002Fprotoc-26.1-linux-x86_64.zip\"\n    curl -LO $PB_REL\n    ```\n\n3.  **解压到系统目录**\n    将下载的压缩包解压到系统的`\u002Fusr\u002Flocal`目录（这是推荐的安装位置）：\n    \n    ```bash\n    sudo unzip protoc-26.1-linux-x86_64.zip -d \u002Fusr\u002Flocal\n    ```\n    \n    解压后，`bin\u002Fprotoc`可执行文件和`include\u002Fgoogle`头文件目录会分别被放置到`\u002Fusr\u002Flocal\u002Fbin`和`\u002Fusr\u002Flocal\u002Finclude`目录中。\n\n4.  **设置执行权限**\n    确保`protoc`可执行文件拥有正确的执行权限：\n    \n    ```bash\n    sudo chmod +x \u002Fusr\u002Flocal\u002Fbin\u002Fprotoc\n    ```\n    \n    通常`\u002Fusr\u002Flocal\u002Fbin`已经包含在系统的`PATH`环境变量中，因此您无需额外配置路径。\n\n5.  **验证安装**\n    运行以下命令检查安装是否成功：\n    \n    ```bash\n    protoc --version\n    ```\n    \n    如果安装成功，命令会输出类似`libprotoc 26.1`的版本信息。\n\n## 方法二：使用Apt包管理器（简单，但版本可能较旧）\n\nUbuntu的官方软件仓库提供了`protobuf-compiler`包，安装过程非常简单，但需要注意的是，仓库中的版本可能不是最新的。\n\n### 安装步骤\n\n1.  **更新软件包列表**\n    ```bash\n    sudo apt update\n    ```\n\n2.  **安装protobuf编译器**\n    ```bash\n    sudo apt install protobuf-compiler\n    ```\n\n3.  **验证安装**\n    ```bash\n    protoc --version\n    ```\n    \n    注意：通过此方法安装的版本通常较低（例如Ubuntu 22.04 LTS默认提供的是3.12.4版本）。如果您对protobuf版本有特定要求，建议使用方法一。\n\n## 方法三：从源码编译安装（最灵活，但最复杂）\n\n如果您需要自定义构建选项、获取绝对最新的代码，或者计划参与Protocol Buffers的开发，可以选择从源码编译安装。\n\n### 安装步骤\n\n1.  **安装构建依赖**\n    ```bash\n    sudo apt update\n    sudo apt install autoconf automake libtool curl make g++ unzip\n    ```\n\n2.  **克隆源码仓库**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fprotocolbuffers\u002Fprotobuf.git\n    cd protobuf\n    git submodule update --init --recursive\n    ```\n\n3.  **生成配置脚本并编译**\n    ```bash\n    .\u002Fautogen.sh\n    .\u002Fconfigure\n    make\n    # 如需加速编译，可使用多线程：make -j$(nproc)\n    ```\n\n4.  **运行测试（可选）**\n    为确保编译结果正确，可运行测试套件：\n    ```bash\n    make check\n    ```\n\n5.  **安装到系统**\n    ```bash\n    sudo make install\n    ```\n\n6.  **刷新共享库缓存**\n    ```bash\n    sudo ldconfig\n    ```\n\n7.  **验证安装**\n    ```bash\n    protoc --version\n    ```\n\n## 安装方法对比与推荐\n\n下表总结了三种安装方法的优缺点和适用场景，帮助您选择最适合的方案：\n\n| 安装方法 | 优点 | 缺点 | 适用场景 |\n|---------|------|------|---------|\n| **方法一：预编译二进制文件** | **安装速度快，环境干净，版本可自由选择** | 需要手动下载和解压 | **绝大多数用户的首选方案** |\n| **方法二：Apt包管理器** | 操作极其简单，仅需一条命令 | 软件仓库中的版本通常较旧 | 对protobuf版本无特殊要求，追求极致简便性 |\n| **方法三：源码编译** | 可获取最新代码，支持完全自定义构建 | 过程复杂耗时，容易出现依赖问题 | 需要特定功能或计划参与protobuf开发 |\n\n## 总结\n\n对于绝大多数用户，**强烈推荐使用方法一（预编译的二进制文件）**进行安装，因为它兼顾了安装简便性、版本可控性和系统环境的整洁性。这种方法可以让您快速获得最新且稳定的Protocol Buffers编译器，避免潜在的依赖冲突问题，为您的开发工作提供良好的支持。",null,0,66,"2025-09-13 10:24:39",62,"技术杂谈",{"id":20,"title":21},110,"FAdminAi开源系统",{"id":23,"title":24},112,"Ubuntu 24.04 安装 Protocol Buffers 3.13 之前版本的完整指南",[26,29],{"id":27,"name":28},91,"Ubuntu",{"id":30,"name":31},92,"protobuf",1886,4,"https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fwechat\u002F505bf7fd163ad29e8ce69c9281fa05056fe3328c.jpeg",[36,41,46,51,55],{"id":37,"title":38,"create_time":39,"description":40},89,"获取腾讯“邮我”的链接","2020-06-16 10:47:34","腾讯QQ邮箱提供了“邮我”组件，可以放在自己的网站上，让别人点击提供的图片或者链接就可以发Email过来，该文章分享的是如何获取到其中的链接。",{"id":42,"title":43,"create_time":44,"description":45},98,"本站点JavaScript相关特效使用方法整理","2021-04-22 18:38:53","本站的页面用的特效有，粒子线canvas-nest，动态彩带canvas-ribbon，鼠标点击特效以及音乐播放器，本文整理了特效的使用方法",{"id":47,"title":48,"create_time":49,"description":50},106,"阿里开源数据同步组件Canal","2023-10-26 22:43:32","最开始听说canal是从mysql与redis双写一致性解决方案，当时并没有太在意，最近由于需要实时同步数据，如果在代码对insert\u002Fupdate\u002Fdelete做拦截也可以实现，但对代码侵入性太大了，并且后期更改时容易有遗漏，风险太高，这时就又想到了canal，canal的好处在于对业务代码没有侵入，因为是基于监听binlog日志去进行同步数据，这个真的是太爽爽爽了。并且实时性也能做到准实时，这也是canal为什么这么流行，因为确实很多企业会用来做数据同步的方案。",{"id":17,"title":52,"create_time":53,"description":54},"内网使用Composer","2019-10-08 23:29:23","最近本地部署Laravel开发环境时，遇到公司的内网无法正常使用Composer下载Laravel，后来发现是要设置公司内网代理",{"id":56,"title":57,"create_time":58,"description":59},75,"Hexo-SEO优化开启静态文件压缩功能","2019-12-30 21:34:32","个人对HEXO搭建博客的SEO优化方案进行总结，从本地的文章结构到定期推送，再到SEO关键词优化做一个全面体系的汇总，如果有更好的方法可以私聊我。\n\n",1783431653803]