2016-03-09 2 views
4

Я использовал инструкции от сюда, чтобы установить Protocol Buffer: https://github.com/google/protobuf/blob/master/src/README.md и в конечном итоге с 3-й версии ("protoc --version" "libprotoc 3.0.0")Как удалить protobuf 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 и «Который protoc» командные пункты в «/ USR/BIN/protoc»

Я ищу альтернативное решение, чем дано в Protocol Buffer: Version Change

Я не уверен, если я использую правильную команду для удаления. Какие-либо предложения?

ответ

9

мне удалось удалить protoc 3.0.0 (я отправляю ответ в начинающей манере, как мне нужно было это объяснило понять):

1) Команда remove не работает, потому что инструкции я а затем на странице буфера протокола использует сделать, чтобы построить инструмент - использовать только remove при установке с помощью APT-получить

2) для того, чтобы удалить все библиотеки, созданные с помощью make, перейдите в папку, куда были загружены файлы protoc и запустить make uninstall. Это сработало. Однако, когда я снова проверил protoc --version, я все еще получил libprotoc 3.0.0. Я думаю, причина в том, что я выполнил одну из инструкций по изменению пути установки (./configure --prefix=/usr), и поэтому мне нужно было использовать rm `which protoc`, чтобы вручную удалить остатки от protoc 3, потому что make uninstall не указывал на это. После этого protoc полностью исчез.

3) Я установил версию мне нужно (любой protoc 2) с apt-get install protobuf-compiler и теперь у меня есть libprotoc 2.5.0

Пожалуйста, не стесняйтесь комментировать дальше.

+0

'make uninstall' должен был удалить' protoc', но если вы сначала запустили './Configure' с другим' --prefix', то он удалился бы из-за неправильного места. Пока вы запускаете './Configure' с тем же' --prefix' (и другими флагами), как и при первоначальной установке, 'make uninstall' должен удалить все файлы (если только нет ошибки!). –

+0

Спасибо за это разъяснение. Я также думал, что моя проблема может возникнуть из-за другого '--prefix'. Однако это другое '-prefix' было предложено в примечаниях к руководству, и я был удивлен, что unistall был не таким простым, как я ожидал. – Voltronika

+0

OMG. Я использовал rm 'which protoc', а затем я не могу переустановить прототип. – user8264

1

У меня была такая же проблема, и проблема была в usr/local/include/. Он устанавливает свои файлы заголовков, когда вы устанавливали protoc из источника, и когда вы его удаляете, он не удаляет заголовки include. Поэтому файлы * .pb.cc по-прежнему пытаются включить эти файлы. Я исправил проблему, удалив заголовок protobuf в usr/local/include/, а затем переустановил libprotobuf из apt-get.

1

Если у вас есть Anaconda установлен на Ubuntu, а затем использовать:

conda uninstall protobuf 

После выполнения указанной выше команды, попробуйте:

protoc --version 

Следующий вывод подтверждает успешное удаление protobuf :

В настоящее время программа protec не установлена.Вы можете установить его набрав: Суд склонен устанавливать Protobuf-компилятор

В случае, если вы хотите установить Protocol Buffer Google, посмотрите это видео: https://www.youtube.com/watch?v=EAFK-tN_yaw

Смежные вопросы