Jak odinstalować git zainstalowany ze źródła? [Zamknięte]

21

Zainstalowałem git za pomocą tego artykułu . Teraz chcę odinstalować git. Jak to zrobić?

Michaił
źródło
1
Czy nadal masz kod źródłowy, który pobrałeś i make installz którym zrobiłeś ?
Hennes
Tak, mam kod źródłowy
Michaił
Jakie są wyniki działania polecenia „make uninstall”? Nie wszystkie pliki Makefile mają tę opcję, ale wiele ma.
Hennes
1
make: *** Brak reguły umożliwiającej docelowe odinstalowanie. Zatrzymać.
Michaił
1
dlaczego -1? wyjaśnić
Michaił

Odpowiedzi:

15

Tutaj znalazłem rozwiązanie .

ZAKTUALIZOWANO 2.11.2012

Jeśli byłeś wystarczająco inteligentny i używałeś niestandardowego prefiksu po skonfigurowaniu Git, aby został on zainstalowany w określonej hierarchii, na przykład w / opt / git, po prostu usuń rekurencyjnie tę hierarchię.

Jeśli nie, możesz to zrobić tak:

1) Pobierz archiwum źródłowe dokładnie tej wersji, którą zbudowałeś i zainstalowałeś, rozpakuj.

2) Skonfiguruj dokładnie tak, jak robiłeś to z oryginalną instalacją w odniesieniu do lokalizacji instalacji (prefiks, exec-prefiks itp.); podobno nie powinieneś niczego zastępować.

3) Utwórz katalog tymczasowy, aby przeprowadzić instalację: $ mkdir / var / tmp / git

4) Zainstaluj Git, przekazując odpowiednią zmienną DESTDIR, aby: $ make DESTDIR = / var / tmp / git install Hierarchia Gita zostanie utworzona w tym katalogu tymczasowym.

5) Użyj utworzonej hierarchii, aby zdecydować, które pliki należy usunąć w ramach rzeczywistej hierarchii (sama „/”).

Ostatnim krokiem jest miejsce, w którym dzieje się „magia”, która zawiera więcej wyjaśnień. Na przykład możesz uruchomić

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

(jako root) usuń pliki zainstalowane przez pierwszą błędną instalację w głównym systemie plików. Powyższa enantacja używa hierarchii / var / tmp / git do wydrukowania listy znalezionych plików, ale zastępuje w nich przedrostek „/ var / tmp / git” na „/”, tak że „/ var / tmp / git / usr / bin / git ”na wyjściu pojawi się na liście jako„ / usr / bin / git ”. Ta lista jest następnie przesyłana potokowo, do xargsktórej są uruchamiane rm nazwy plików, które odczytuje w paczkach po dziesięć (aby zmniejszyć liczbę wywołań o rmjeden rząd wielkości).

Po postępowaniu z plikami uruchom

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

aby sprawdzić listę zainstalowanych katalogów. Wymagają ręcznego podejścia, więc po prostu spójrz na wygenerowaną listę i zastanów się, który z nich możesz bezpiecznie bezpiecznie rmdirze swojego systemu (będą to katalogi takie jak „/ usr / libexec / git” lub coś w tym rodzaju; prawdopodobnie nie chcesz usunąć „/ usr / share / man / mann” lub coś, nawet jeśli jest puste).

PS W przyszłości nigdy nie instaluj niczego w systemie, uruchamiając make install! Większość plików makefile w dzisiejszych czasach nie obsługuje celu „odinstaluj”, ponieważ są one używane do instalowania w prywatnej lokalizacji scratchowania w celu przetestowania lub do utworzenia pakietu (.rpm, .deb itp.), A następnie menedżer pakietów zajmuje się czyszczeniem. Jeśli musisz coś zainstalować, spróbuj znaleźć oficjalny pakiet lub spróbuj zaimportować inny oficjalny pakiet z nowszej wersji systemu operacyjnego, jeśli jest dostępny. W ostateczności spróbuj użyć checkinstallnarzędzia, które próbuje utworzyć pakiet binarny poza twoim make installbiegiem. To do bani, ale i tak lepsze niż nagie make install.

Michaił
źródło
Rozwiń niektóre ze znalezionych tam szczegółów. Zgnilizna bitów ma miejsce, a kiedy to zrobi, ta odpowiedź stanie się bezużyteczna.
sysadmin1138
ok, zaktualizowałem swoją odpowiedź
Michaił
Poszanowanie. to działa
dotslash,
Podsumowanie: ./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
Vahid
3

Właśnie przeszedłem przez 2691 linii Makefile. Rzeczywiście nie dokonaj deinstalacji. Drat.

W takim przypadku obejściem może być użycie tej make rpmopcji. Zainstaluj rpm (nadpisując wszystkie zainstalowane pliki, które powinny być identyczne z już zainstalowanymi plikami). Następnie odinstaluj rpm.

We wszystkich przyszłych przypadkach buduj pakiet (RPM, mniam, cokolwiek). Ułatwia to konserwację.

Hennes
źródło
1
Z wyjątkiem tego, że zwykle make installumieszcza różne rzeczy w prefiksie, /usr/localpodczas gdy rpm / deb / your-package-here działają ./configurez różnymi parametrami, tak że instalowane przez nich pliki kończą się prefiksem /usr.
ptman
Jestem nowicjuszem w CentOS. Jakie polecenie powinienem uruchomić? Czy możesz wyjaśnić więcej, proszę
Michaił
Uruchomiłem make rpmpolecenie. Co mam teraz zrobić?
Michaił
Zacznij od man rpmlub 'rpm --help. Prawdopodobnie powie Ci, aby użyć rpm -i packagename.rpm. Najlepiej jednak poprosić sysadmin w parasolce o pomoc. Możemy tylko tyle zrobić na odległość.
Hennes