Bagaimana cara uninstall git yang terinstal dari sumbernya? [Tutup]

21

Saya menginstal git menggunakan artikel ini . Sekarang saya ingin menghapus git. Bagaimana cara melakukannya?

Mikhail
sumber
1
Apakah Anda masih memiliki kode sumber yang telah Anda unduh dan lakukan make install?
Hennes
Ya, saya memiliki kode sumber
Mikhail
Apa output dari 'make uninstall'? Tidak semua Makefile memiliki opsi ini, tetapi banyak yang melakukannya.
Hennes
1
make: *** Tidak ada aturan untuk membuat target `uninstall '. Berhenti.
Mikhail
1
mengapa -1? jelaskan
Mikhail

Jawaban:

15

Saya menemukan solusinya di sini .

DIPERBARUI 2.11.2012

Jika Anda cukup pintar dan menggunakan beberapa awalan non-standar saat mengkonfigurasi Git sehingga telah diinstal di bawah hierarki tertentu, seperti di bawah / opt / git, maka hapus saja hierarki itu, secara rekursif.

Jika tidak, maka Anda bisa seperti ini:

1) Ambil tarball sumber persis versi yang Anda buat dan instal, bongkar.

2) Konfigurasikan persis seperti yang Anda lakukan dengan instalasi asli sehubungan dengan lokasi instalasi (awalan, exec-awalan dll); seharusnya Anda seharusnya tidak mengabaikan apa pun.

3) Buat direktori sementara untuk melakukan instalasi, seperti ini: $ mkdir / var / tmp / git

4) Instal Git melalui variabel DESTDIR yang tepat untuk menghasilkan: $ make DESTDIR = / var / tmp / git install Hirarki Git akan dibuat di bawah direktori sementara itu.

5) Gunakan hierarki yang dibuat untuk memutuskan file mana yang akan dihapus di bawah hirarki nyata ("/" itu sendiri).

Langkah terakhir adalah di mana "keajaiban" terjadi sehingga memberikan lebih banyak penjelasan. Misalnya, Anda bisa lari

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

(sebagai root) hapus file yang diinstal oleh mis-instalasi pertama ke sistem file root. Encantation di atas menggunakan hierarki / var / tmp / git untuk mencetak daftar file yang ditemukan, tetapi menggantikan awalan "/ var / tmp / git" dengan "/", sehingga "/ var / tmp / git" menggantikannya. / usr / bin / git "pada output akan berakhir dengan daftar" / usr / bin / git ". Daftar ini kemudian disalurkan ke xargsyang menjalankan rm nama file yang dibacanya dalam paket sepuluh (hanya untuk mengurangi jumlah doa rmdengan satu urutan besarnya).

Setelah berurusan dengan file, jalankan

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

untuk memeriksa daftar direktori yang diinstal. Ini memerlukan pendekatan manual jadi lihat saja daftar yang dihasilkan dan pikirkan yang mana dari Anda yang dapat Anda amankan rmdirdari sistem Anda (ini akan menjadi direktori seperti "/ usr / libexec / git" atau sesuatu seperti ini; Anda mungkin tidak ingin menghapus "/ usr / share / man / mann" atau sesuatu bahkan jika itu kosong).

PS Di masa depan jangan pernah menginstal apa pun ke dalam sistem dengan menjalankan make install! Sebagian besar makefile hari ini tidak mendukung target "uninstall" karena mereka digunakan untuk menginstal ke lokasi awal pribadi untuk pengujian atau untuk membuat paket (.rpm, .deb dll) dan kemudian manajer paket menangani pembersihan. Jika Anda perlu menginstal sesuatu, coba cari paket resmi atau coba backport paket resmi lain dari versi OS Anda yang lebih baru, jika tersedia. Sebagai upaya terakhir, coba gunakan checkinstallalat yang mencoba membuat paket biner dari proses Anda make install. Ini menyebalkan, tapi masih lebih baik daripada telanjang make install.

Mikhail
sumber
Harap perluas beberapa detail yang ada di sana. Bit-busuk terjadi, dan ketika itu jawaban ini menjadi tidak berguna.
sysadmin1138
ok, saya memperbarui jawaban saya
Mikhail
Menghormati. ini bekerja
dotslash
Ringkasan: ./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

Saya baru saja menggunakan 2.691 baris Makefile. Memang tidak ada make uninstall. Drat.

Dalam hal ini solusinya mungkin menggunakan make rpmopsi. Instal rpm (timpa semua file yang diinstal, yang harus identik dengan file yang sudah diinstal). Kemudian de-instal rpm.

Dalam semua kasus di masa depan membangun sebuah paket (RPM, yum, apa pun). Itu membuat pemeliharaan jadi lebih mudah.

Hennes
sumber
1
Kecuali biasanya make installmenempatkan hal-hal di awalan /usr/localsedangkan rpm / deb / paket-Anda-di sini berjalan ./configuredengan parameter yang berbeda sehingga file yang mereka instal berakhir dengan awalan /usr.
ptman
Saya pemula di CentOS. Perintah apa yang harus saya jalankan? Bisakah Anda jelaskan lebih lanjut
Mikhail
Saya menjalankan make rpmperintah. Apa yang harus saya lakukan selanjutnya?
Mikhail
Mulai dengan man rpmatau 'rpm --help. Mungkin akan memberitahu Anda untuk menggunakannya rpm -i packagename.rpm. Namun mungkin lebih baik meminta sysadmin di web payung untuk membantu Anda. Hanya ada begitu banyak yang bisa kita lakukan dari kejauhan.
Hennes