【问题标题】:How can I uninstall protobuf 3.0.0?如何卸载 protobuf 3.0.0?
【发布时间】:2016-06-24 02:35:16
【问题描述】:

我使用此处的说明安装协议缓冲区:https://github.com/google/protobuf/blob/master/src/README.md 最终版本 3 ("protoc --version" "libprotoc 3.0.0")

但是,我需要一个 protoc 版本 2。

我尝试用apt-get remove protobuf-compiler卸载它

但这是我得到的,并且仍然安装了第 3 版:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'protobuf-compiler' is not installed, so not removed
0 to upgrade, 0 to newly install, 0 to remove and 396 not to upgrade.

我使用的是 Ubuntu 14.04,并且“which protoc”命令指向“/usr/bin/protoc”

我正在寻找比Protocol Buffer: Version Change 中给出的替代解决方案

我不确定我是否使用了正确的卸载命令。有什么建议吗?

【问题讨论】:

    标签: protocol-buffers uninstallation


    【解决方案1】:

    在 Fedora 29 sudo dnf remove protobuf 上删除了我之前安装的 sudo dnf -y install protoc 3.5.0 版本。

    [dzintars@fedora ~]$ protoc
    bash: protoc: command not found...
    

    【讨论】:

      【解决方案2】:

      我使用了命令sudo apt-get remove protobuf-compiler,参考是How to remove protobuf-compiler from Ubuntu 14.04。希望这会有所帮助!

      【讨论】:

        【解决方案3】:

        如果您在 Ubuntu 上安装了 Anaconda,则使用:

        conda uninstall protobuf
        

        执行上述命令后,尝试:

        protoc --version
        

        以下输出确认已成功删除protobuf

        当前未安装程序“protoc”。您可以通过以下方式安装它 输入:sudo apt install protobuf-compiler

        如果您想安装 Google Protocol Buffer,请观看此视频: https://www.youtube.com/watch?v=EAFK-tN_yaw

        【讨论】:

          【解决方案4】:

          我设法卸载了 protoc 3.0.0(我以初学者的方式发布答案,我需要它解释的方式来理解):

          1) remove 命令不起作用,因为我在协议缓冲区页面上遵循的说明使用 make 构建工具 - 使用 apt-get 安装时仅使用 remove

          2) 要删除使用 make 构建的所有库,请转到下载 protoc 文件的文件夹并运行 make uninstall。那行得通。然而,当我再次检查protoc --version 时,我仍然得到libprotoc 3.0.0。我认为原因是因为我按照他的指示更改安装路径(./configure --prefix=/usr),因此我需要使用rm `which protoc` 手动删除protoc 3 中的剩余部分,因为make uninstall 没有指向给它。之后,protoc 就彻底消失了。

          3) 我用apt-get install protobuf-compiler 安装了我需要的版本(任何协议2),现在我有了libprotoc 2.5.0

          请随时发表评论。

          【讨论】:

          • make uninstall 应该已经删除了protoc,但是如果你先用不同的--prefix 重新运行./configure,那么它就会从错误的地方删除。只要您使用与最初安装时相同的 --prefix(和其他标志)运行 ./configuremake uninstall 应该删除所有文件(除非有错误!)。
          • 感谢您的澄清。我还认为我的问题可能来自不同的--prefix。然而,指导说明中建议了另一个--prefix,我很惊讶 unistall 并不像我预期的那样简单。
          • 天啊。我使用了 rm which protoc,然后我无法重新安装我的 prototoc。
          • @user8264 为什么不呢?
          • 截至 2017 年 8 月,“conda uninstall protobuf”似乎并未真正从我的环境中删除库、包含等。我手动删除了 protoc 二进制文件、库和包含,并且我能够使我的构建过程终于看到系统 protobuf(提示:如果您忘记从 conda env 中删除包含目录,则结束加上有关 protobuf 错误不匹配的神秘错误)。
          【解决方案5】:

          我刚遇到同样的问题,问题出在usr/local/include/。它在您从源安装 protoc 时安装其头文件,当您卸载它时,它不会删除其包含头文件。因此,*.pb.cc 文件仍会尝试包含这些文件。我通过删除 usr/local/include/ 中的 protobuf 标头,然后从 apt-get 重新安装 libprotobuf 解决了这个问题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-06-08
            • 2021-09-23
            • 2013-01-30
            相关资源
            最近更新 更多