Tôi đã cài đặt git bằng bài viết này . Bây giờ tôi muốn gỡ cài đặt git. Làm thế nào để làm nó?
Tôi đã cài đặt git bằng bài viết này . Bây giờ tôi muốn gỡ cài đặt git. Làm thế nào để làm nó?
Câu trả lời:
Tôi tìm thấy giải pháp ở đây .
CẬP NHẬT 2.11.2012
Nếu bạn đủ thông minh và sử dụng một số tiền tố không chuẩn khi được định cấu hình Git để nó được cài đặt theo một cấu trúc phân cấp cụ thể, như dưới / opt / git, thì chỉ cần xóa phân cấp đó, theo cách đệ quy.
Nếu không, sau đó bạn có thể đi như thế này:
1) Lấy tarball nguồn chính xác của phiên bản bạn đã xây dựng và cài đặt, giải nén.
2) Định cấu hình chính xác như bạn đã làm với cài đặt gốc liên quan đến vị trí cài đặt (tiền tố, tiền tố exec, v.v.); được cho là bạn không nên ghi đè lên bất cứ điều gì.
3) Tạo một thư mục tạm thời để thực hiện cài đặt, như thế này: $ mkdir / var / tmp / git
4) Cài đặt Git chuyển một biến DESTDIR thích hợp để thực hiện: $ make DESTDIR = / var / tmp / git install Cấu trúc phân cấp Git sẽ được tạo trong thư mục tạm thời đó.
5) Sử dụng cấu trúc phân cấp đã tạo để quyết định xóa các tệp nào theo cấu trúc phân cấp thực ("/" chính nó).
Bước cuối cùng là nơi "phép thuật" xảy ra để nó có thêm lời giải thích. Chẳng hạn, bạn có thể chạy
$ find /var/tmp/git -type f -printf '/%P\n' | xargs -n 10 rm -f
(với quyền root) xóa các tệp được cài đặt bởi cài đặt sai đầu tiên vào hệ thống tệp gốc. Mã hóa ở trên sử dụng phân cấp / var / tmp / git để in danh sách các tệp được tìm thấy, nhưng nó thay thế tiền tố "/ var / tmp / git" trong chúng bằng "/", sao cho "/ var / tmp / git / usr / bin / git "trong đầu ra sẽ được liệt kê là" / usr / bin / git ". Sau đó danh sách này được đường ống để xargs
chạy rm
trên tên file nó đọc trong gói mười (chỉ để giảm số lượng các lời gọi của rm
người một theo độ).
Sau khi xử lý tập tin, hãy chạy
$ find /var/tmp/git -type d -printf '/%P\n'
để kiểm tra danh sách các thư mục được cài đặt. Chúng yêu cầu cách tiếp cận thủ công, vì vậy chỉ cần nhìn vào danh sách được tạo và nghĩ xem chúng có thể an toàn rmdir
trong hệ thống của bạn (đây sẽ là các thư mục như "/ usr / libexec / git" hoặc đại loại như thế này; bạn có thể không muốn xóa "/ usr / share / man / mann" hoặc thứ gì đó ngay cả khi nó trống).
PS Trong tương lai không bao giờ cài đặt bất cứ thứ gì vào hệ thống bằng cách chạy
make install
! Hầu hết các makefiles ngày nay không hỗ trợ mục tiêu "gỡ cài đặt" vì chúng được sử dụng để cài đặt vào một vị trí cào riêng để thử nghiệm hoặc để tạo một gói (.rpm, .deb, v.v.) và sau đó trình quản lý gói sẽ chăm sóc dọn dẹp. Nếu bạn cần cài đặt một cái gì đó, hãy thử tìm một gói chính thức hoặc cố gắng nhập một gói chính thức khác từ phiên bản mới hơn của HĐH của bạn, nếu có. Như là phương sách cuối cùng, hãy thử sử dụng checkinstall
công cụ cố gắng tạo gói nhị phân ra khỏi hoạt động của bạn make install
. Điều này hút, nhưng vẫn tốt hơn so với trần 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
Tôi vừa mới đi qua 2691 dòng Makefile. Quả thực không gỡ cài đặt. Drat.
Trong trường hợp đó, một cách giải quyết có thể là sử dụng make rpm
tùy chọn. Cài đặt vòng / phút (ghi đè tất cả các tệp đã cài đặt, trùng với các tệp đã được cài đặt). Sau đó khử cài đặt vòng / phút.
Trong tất cả các trường hợp trong tương lai, hãy xây dựng một gói (RPM, yum, bất cứ điều gì). Nó làm cho bảo trì dễ dàng hơn nhiều.
make install
đặt công cụ vào tiền tố /usr/local
trong khi vòng / phút / gói của bạn ở đây chạy ./configure
với các tham số khác nhau để các tệp mà chúng cài đặt kết thúc bằng tiền tố /usr
.
make rpm
lệnh. Tôi nên làm gì tiếp theo?
man rpm
hoặc 'rpm --help
. Nó có thể sẽ cho bạn sử dụng rpm -i packagename.rpm
. Tuy nhiên, tốt nhất là yêu cầu sysadmin tại ô web giúp bạn. Chỉ có rất nhiều chúng ta có thể làm từ xa.
make install
với?