Як видалити git, встановлений з джерела? [зачинено]


21

Я встановив git за допомогою цієї статті . Тепер я хочу видалити git. Як це зробити?


1
У вас все ще є вихідний код, який ви завантажили та зробили make install?
Геннес

Так, у мене є вихідний код
Михайло

Який результат 'make uninstall'? Не всі Makefiles мають такий варіант, але багато хто з них.
Геннес

1
make: *** Немає правила робити ціль `uninstall '. Стій.
Михайло

1
чому -1? поясніть
Михайло

Відповіді:


15

Я знайшов рішення тут .

ОНОВЛЕНО 2.11.2012

Якщо ви були досить розумні і використовували якийсь нестандартний префікс під час налаштування Git, щоб він був встановлений у певній ієрархії, як-от under / opt / git, тоді просто видаляйте цю ієрархію, рекурсивно.

Якщо ні, то ви можете піти так:

1) Вийміть розпакувати вихідний тарбол саме тієї версії, яку ви створили та встановили.

2) Налаштуйте його точно так, як ви робили з оригінальною установкою щодо розташування установки (префікс, exec-префікс тощо); нібито ви просто не повинні нічого перекривати.

3) Створіть тимчасовий каталог для встановлення, наприклад: $ mkdir / var / tmp / git

4) Встановіть Git, передаючи правильну змінну DESTDIR, щоб зробити: $ make DESTDIR = / var / tmp / git install Встановити ієрархію Git в цьому тимчасовому каталозі.

5) Використовуйте створену ієрархію, щоб визначити, які файли слід видалити під реальною ієрархією (сам "/").

Останній крок - це те, де відбувається "магія", тому воно несе більше пояснень. Наприклад, ви можете запустити

$ find /var/tmp/git -type f -printf '/%P\n' | xargs -n 10 rm -f

(як root) видаляйте файли, встановлені першим неправильним встановленням у кореневу файлову систему. Наведене вище заздалегідь використовує ієрархію / var / tmp / git для друку списку знайдених файлів, але замінює в них префікс "/ var / tmp / git" на "/", так що "/ var / tmp / git / usr / bin / git "у висновку в кінцевому підсумку буде вказано як" / usr / bin / git ". Потім цей список додається до xargsцього rm імені файлів, які він читає, в пачках по десять (просто щоб зменшити кількість викликів rmна порядок).

Після роботи з файлами запустіть

$ find /var/tmp/git -type d -printf '/%P\n'

перевірити список встановлених каталогів. Для цього потрібен підхід вручну, тому просто подивіться на створений список і подумайте, який з них ви могли б безпечно rmdirзі своєї системи (це будуть каталоги типу "/ usr / libexec / git" або щось подібне; ви, ймовірно, не хочете видалити "/ usr / share / man / mann" або щось таке, навіть якщо воно порожнє).

PS В майбутньому ніколи нічого не встановлюйте в систему, запустивши make install! Більшість файлів сьогодні не підтримують "видалити" ціль, оскільки вони звикли або встановлювати в приватне місце нуля для тестування, або робити пакет (.rpm, .deb тощо), і тоді менеджер пакунків піклується про прибирання. Якщо вам потрібно щось встановити, спробуйте знайти офіційний пакет або спробуйте підкріпити інший офіційний пакет з більш нової версії вашої ОС, якщо вона є. В крайньому випадку спробуйте скористатися checkinstallінструментом, який намагається створити бінарний пакет поза вашим make installходом. Це смокче, але все ж краще, ніж оголене make install.


Розгорніть деякі деталі, знайдені там. Біт-гниль трапляється, і коли це робить, ця відповідь стає марною.
sysadmin1138

ок, я оновив свою відповідь
Михайло

Повага. працює
dotslash

Резюме: ./configure. sudo make && sudo make DESTDIR=/var/tmp/git install. sudo find /var/tmp/git -type f -printf '/%P\n' | sudo xargs -n 10 rm -f
Вахід

3

Я щойно пройшов хоча 2691 рядок Makefile. Насправді жодного не видаляйте. Драт.

У цьому випадку можливо вирішити використання цього make rpmваріанту. Встановіть rpm (перезаписуючи всі встановлені файли, які повинні бути ідентичними вже встановленим файлам). Потім видаліть обороти в хвилину.

У всіх майбутніх випадках складіть пакет (RPM, yum, що завгодно). Це значно спрощує технічне обслуговування.


1
За винятком випадків, коли make installвкладається матеріал у префікс, /usr/localтоді як rpm / deb / your-package тут працює ./configureз різними параметрами, так що встановлені ними файли закінчуються префіксом /usr.
птман

Я новачок у CentOS. Яку команду потрібно виконати? Чи можете ви пояснити більше, будь ласка
Михайло

Я запустив make rpmкоманду. Що мені робити далі?
Михайло

Почніть з man rpmабо 'rpm --help. Напевно, вам скажуть користуватися rpm -i packagename.rpm. Однак, можливо, найкраще попросити системного адміністратора в парасольковій мережі допомогти вам. Є лише стільки, що ми можемо зробити здалеку.
Геннес
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.