2018-07-24 20:50:48 qq_25147897 阅读数 483

由于之前使用脚本安装protobuf,不知为什么不能使用protoc编译proto文件,因此自己重装了一下,与原来的装到了不同的路径下,测试新装的可以用,没有看是否影响到了原来的环境,今天发现不能用,于是各种查原因,结果使因为protoc的问题。准备卸载protoc,使用apt-get remove libprotobuf-dev始终不行,最后对原先的脚本安装的环境也各种卸载安装都不行。后来查到remove卸载使不干净的,必须删除其各种配置才可以。尤其是被手动删过导致环境破坏的软件需要彻底删除才行,方法如下:

引用:https://zhidao.baidu.com/question/344235425.html

找到此软件名称,然后sudo apt-get purge ......(点点为为程序名称),purge参数为彻底删除文件,然后sudo apt-get autoremove,sudo apt-get clean和dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P 两条命令来清除残余的配置文件

再来一次sudo apt-get remove --purge 软件名,然后用sudo apt-get update来更新一新软件信息,就可以重装了

 

 

再附关于apt-get的小知识

引用:https://blog.csdn.net/get_set/article/details/51276609

如果你关注搜索到这篇文章,那么我可以合理怀疑你被apt-get的几个卸载命令有点搞晕了。

apt-get的卸载相关的命令有remove/purge/autoremove/clean/autoclean等。具体来说:

apt-get purge / apt-get --purge remove 
删除已安装包(不保留配置文件)。 
如软件包a,依赖软件包b,则执行该命令会删除a,而且不保留配置文件

apt-get autoremove 
删除为了满足依赖而安装的,但现在不再需要的软件包(包括已安装包),保留配置文件。

apt-get remove 
删除已安装的软件包(保留配置文件),不会删除依赖软件包,且保留配置文件。

apt-get autoclean 
APT的底层包是dpkg, 而dpkg 安装Package时, 会将 *.deb 放在 /var/cache/apt/archives/中,apt-get autoclean 只会删除 /var/cache/apt/archives/ 已经过期的deb。

apt-get clean 
使用 apt-get clean 会将 /var/cache/apt/archives/ 的 所有 deb 删掉,可以理解为 rm /var/cache/apt/archives/*.deb。


那么如何彻底卸载软件呢? 
具体来说可以运行如下命令:

# 删除软件及其配置文件
apt-get --purge remove <package>
# 删除没用的依赖包
apt-get autoremove <package>
# 此时dpkg的列表中有“rc”状态的软件包,可以执行如下命令做最后清理:
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

当然如果要删除暂存的软件安装包,也可以再使用clean命令

2018-10-25 10:20:30 FK2016 阅读数 6463

1.卸载Ubuntu自带的protobuf;

# sudo apt-get remove libprotobuf-dev
# which protoc
// 运行完“which protoc”会显示一个protoc的路径,如果没有显示则下面这条命令不必执行
# rm /usr/local/bin/protoc
// 具体路径以“which protoc”显示的为准

到此,低版本的protobuf卸载完成。

2.安装特定版本的protobuf,在此以安装protobuf3.6.0为例;

前提:确保以下几个库都有安装

# sudo apt-get install autoconf automake libtool curl make g++ unzip

(1).从github克隆特定版本的protobuf源码;

# git clone -b v3.6.0 https://github.com/protocolbuffers/protobuf.git
// 上述命令表示克隆版本为3.6.0的protobuf源码
# cd protobuf
# git submodule update --init --recursive
// 该命令表示克隆protobuf的子模块,主要是gtest

(2).编译protobuf源码并安装;

// 进入到克隆的protobuf目录
# cd protobuf
# ./autogen.sh
# ./configure
# make
// 如果没有克隆子模块,make check会失败但是可以继续make install,但是使用某些功能时可能会出错
# make check
# sudo make install
# sudo ldconfig
// 输出protobuf版本信息则表示安装成功
# protoc --version

 

2019-05-08 10:07:32 sszzyzzy 阅读数 2586

下载protoc

再GitHub上下载对应版本:
https://github.com/google/protobuf/releases

tar -zxvf protobuf

cd protobuf

./configure --prefix=/usr/local/protobuf

make

make check

make install

配置环境变量

vim /etc/profile
#添加:
export PATH=$PATH:/usr/local/protobuf/bin/
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
#保存并执行
source /etc/profile

#也添加到下面文件中
~/.profile

配置动态连接库

vim /etc/ld.so.conf
#新起一行 添加
/usr/local/protobuf/lib
#保存退出后执行
ldconfig

#检查是否安装成功
protoc --version

安装python使用的包(可以pip)

protoc版本问题

阅读数 1276

没有更多推荐了,返回首页