Если вы были достаточно умны и использовали какой-то нестандартный префикс при настройке Git, чтобы он был установлен под определенной иерархией, например в / opt / git, то просто рекурсивно удалите эту иерархию.
Если нет, то вы можете пойти так:
1) Получите архив с исходными текстами именно той версии, которую вы создали и установили, распакуйте.
2) Настройте его точно так же, как вы делали это при первоначальной установке, с учетом мест установки (префикс, exec-prefix и т. Д.); предположительно, вы не должны ничего переопределять.
3) Создайте временный каталог для выполнения установки, например: $ mkdir / var / tmp / git
4) Установите Git, передав правильную переменную DESTDIR, чтобы сделать: $ make DESTDIR = / var / tmp / git install Иерархия Git будет создана в этом временном каталоге.
5) Используйте созданную иерархию, чтобы решить, какие файлы удалять в реальной иерархии («/»).
Последний шаг - это то, где происходит «волшебство», поэтому оно требует большего объяснения. Например, вы можете запустить
(как пользователь 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! Большинство make-файлов в наши дни не поддерживают цель «удалить», поскольку они используются либо для установки в закрытое хранилище для тестирования, либо для создания пакета (.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, что угодно). Это делает обслуживание намного проще.
За исключением, как правило, make installпомещает вещи в префикс, /usr/localтогда как rpm / deb / your-package-here запускается ./configureс другими параметрами, поэтому устанавливаемые ими файлы заканчиваются префиксом /usr.
Птман
Я новичок в CentOS. Какую команду я должен выполнить? Можете ли вы объяснить больше, пожалуйста
Михаил
Я управлял make rpmкомандой. Что мне делать дальше?
Михаил
Начните с man rpmили 'rpm --help. Это, вероятно, скажет вам использовать rpm -i packagename.rpm. Однако, возможно, лучше попросить системного администратора в зонтичной сети помочь вам. Мы можем сделать так много на расстоянии.
make install
с ним?Ответы:
Я нашел решение здесь .
ОБНОВЛЕНО 2.11.2012
Если вы были достаточно умны и использовали какой-то нестандартный префикс при настройке Git, чтобы он был установлен под определенной иерархией, например в / opt / git, то просто рекурсивно удалите эту иерархию.
Если нет, то вы можете пойти так:
1) Получите архив с исходными текстами именно той версии, которую вы создали и установили, распакуйте.
2) Настройте его точно так же, как вы делали это при первоначальной установке, с учетом мест установки (префикс, exec-prefix и т. Д.); предположительно, вы не должны ничего переопределять.
3) Создайте временный каталог для выполнения установки, например: $ mkdir / var / tmp / git
4) Установите Git, передав правильную переменную DESTDIR, чтобы сделать: $ make DESTDIR = / var / tmp / git install Иерархия Git будет создана в этом временном каталоге.
5) Используйте созданную иерархию, чтобы решить, какие файлы удалять в реальной иерархии («/»).
Последний шаг - это то, где происходит «волшебство», поэтому оно требует большего объяснения. Например, вы можете запустить
(как пользователь root) удалите файлы, установленные при первой неправильной установке, в корневую файловую систему. Приведенное выше кодирование использует иерархию / var / tmp / git для печати списка найденных файлов, но заменяет в них префикс "/ var / tmp / git" на "/", так что "/ var / tmp / git / usr / bin / git "в выводе в итоге будет указан как" / usr / bin / git ". Затем этот список конвейер ,
xargs
который проходитrm
по именам файлов он читает в пакетах по десяти ( как раз , чтобы уменьшить количество вызовов наrm
один порядок величины).После работы с файлами, запустите
проверить список установленных каталогов. Это требует ручного подхода, поэтому просто посмотрите на сгенерированный список и подумайте, какие из них вы могли бы безопасно использовать в
rmdir
своей системе (это будут каталоги вроде "/ usr / libexec / git" или что-то вроде этого; вы, вероятно, не захотите удалять "/ usr / share / man / mann" или что-то еще, даже если оно пустое).PS В будущем никогда не устанавливайте ничего в систему, запустив ее
make install
! Большинство make-файлов в наши дни не поддерживают цель «удалить», поскольку они используются либо для установки в закрытое хранилище для тестирования, либо для создания пакета (.rpm, .deb и т. Д.), А затем менеджер пакетов заботится об очистке. Если вам нужно что-то установить, попробуйте найти официальный пакет или попробуйте скопировать другой официальный пакет из более поздней версии вашей ОС, если она доступна. В качестве последнего средства, попробуйте использоватьcheckinstall
инструмент, который пытается создать двоичный пакет из вашегоmake install
запуска. Это отстой, но все же лучше, чем голыеmake install
.источник
./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
Я только что прошел 2691 строку Makefile. На самом деле не делать деинсталляцию. Убирайся.
В этом случае можно обойти эту
make rpm
опцию. Установите rpm (перезаписывая все установленные файлы, которые должны совпадать с уже установленными файлами). Затем удалите обороты.Во всех будущих случаях создайте пакет (RPM, yum, что угодно). Это делает обслуживание намного проще.
источник
make install
помещает вещи в префикс,/usr/local
тогда как rpm / deb / your-package-here запускается./configure
с другими параметрами, поэтому устанавливаемые ими файлы заканчиваются префиксом/usr
.make rpm
командой. Что мне делать дальше?man rpm
или'rpm --help
. Это, вероятно, скажет вам использоватьrpm -i packagename.rpm
. Однако, возможно, лучше попросить системного администратора в зонтичной сети помочь вам. Мы можем сделать так много на расстоянии.