Подтвердить что ты не робот

Как удалить gcc из источника

Как удалить gcc-сборку, которую я установил из source.I использую gcc 4.9, и я на ubuntu 12.04.

Или существует способ обновления до последних версий gcc через репозиторий ubuntu?

4b9b3361

Ответ 1

Когда вы создаете пакет из исходного кода, к сожалению, нет волшебной деинсталляции, однако вы можете приблизиться к этому, заручитесь этой линией списка рассылки.

В принципе, вы должны снова установить во временный каталог и перечислить все файлы, созданные в указанном каталоге, а затем удалить их из основной системы через script.

Вот пример script для удаления GCC таким образом:

make install DESTDIR=/tmp/gccinst
find /tmp/gccinst | sed -e s,/tmp/gccinst,, | \
(while read F; do rm "$F"; done)

Запустите его из исходного каталога gcc с правами root.

Чтобы ответить на второй вопрос, вы можете установить последний gcc, доступный в репозитории ubuntu, с помощью:

apt-get install gcc

Наложенные репозитории могут иметь более новые версии, я видел предложение о более новой версии в ubuntu-toolchain-r/test (install via):

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

Но я не уверен, добавили ли они 4.9. Если нет, вам действительно нужно будет установить из источника.

EDIT:

Похоже, что @roelofs нашел лучшее руководство для установки репо в своем ответе, поэтому идите туда и не забудьте дать ему преимущество, если это поможет:)

Ответ 2

Vality имеет отличный старт

make install DESTDIR=/tmp/gccinst

Но его команда очистки имеет несколько проблем. Во-первых, он передает каталоги в rm, включая обычные каталоги (например, /usr). Мы можем исправить это через -type f:

find /tmp/gccinst -type f | sed -e s,/tmp/gccinst,, | \
    (while read F; do rm "$F"; done)

Избавьтесь от каталогов, в которых это пустое... подсказки в этом ответе:

find /tmp/gccinst -depth -type d -not -empty | sed -e s,/tmp/gccinst,, | \
    (while read F; do rmdir -p --ignore-fail-on-non-empty "$F"; done)

Ответ 3

В GCC 5.1.0, хотя нет целевого уровня uninstall верхнего уровня, некоторые каталоги имеют его, в частности gcc, поэтому вы можете сделать:

cd build/gcc
sudo make uninstall

Это не удаляет все, что было установлено, но удаляет основные исполняемые файлы, такие как gcc, g++, cpp..., содержащиеся в этом каталоге, поэтому этого может быть достаточно.

Ответ 4

добавьте к Валисе и Бэну. Если вы сделаете это из своей собственной оболочки входа:

find $HOME/tmp/gccinst/ -type f | sed -e s,$HOME/tmp/gccinst,, | (while read F; do rm **-f** "$F" ; done)

Необходим флаг -f или script может не работать, если есть какие-либо проблемы с разрешением.

Ответ 5

Самая высокая доступная версия GCC в репозиториях 12.04 - это 4.6. Вы можете использовать диспетчер пакетов для установки более новой версии, но вам придется добавить PPA. Эта ссылка должна помочь, хотя это для немного более старой версии GCC (но может использоваться для самой новой версии).

Как отметил комментатор, если ваша собственная версия GCC была скомпилирована с параметром --prefix, вся установка должна находиться в этом каталоге под /usr/local или там, где вы его установили, и ее можно удалить.