Centos

如何解除安裝從源安裝的git?

  • November 2, 2012

我使用這篇文章安裝了 git 。現在我想解除安裝 git。怎麼做?

我在這裡找到了解決方案。

2012 年 11 月 2 日更新

如果您足夠聰明,並且在配置 Git 時使用了一些非標準前綴,以便它已安裝在特定層次結構下,例如 /opt/git 下,那麼只需遞歸地刪除該層次結構。

如果沒有,那麼你可以這樣:

  1. 獲取您建構和安裝的版本的源 tarball,解壓縮。

  2. 在安裝位置(前綴、exec-prefix 等)方面完全按照您在原始安裝中所做的配置;據說你不應該覆蓋任何東西。

  3. 創建一個臨時目錄來執行安裝,如下所示: $ mkdir /var/tmp/git

  4. 通過適當的 DESTDIR 變數來安裝 Git: $ make DESTDIR=/var/tmp/git install Git 層次結構最終將在該臨時目錄下創建。

5)使用創建的層次結構來決定在真實層次結構下刪除哪些文件(“/”本身)。

最後一步是“魔法”發生的地方,因此需要更多解釋。例如,您可以執行

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

(以 root 身份)刪除第一次錯誤安裝到根文件系統中的文件。上面的 encantation 使用 /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!如今,大多數 makefile 不支持“解除安裝”目標,因為它們習慣於安裝到私有暫存位置進行測試或製作包(.rpm、.deb 等),然後包管理器負責清理。如果您需要安裝某些東西,請嘗試查找官方軟體包或嘗試從您的作業系統的更新版本(如果可用)反向移植另一個官方軟體包。作為最後的手段,請嘗試使用該checkinstall工具嘗試在make install執行中創建二進制包。這很糟糕,但仍然比 bare 好make install

引用自:https://serverfault.com/questions/444289