自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Linux中移除從源代碼安裝的程序的一種簡單的方法

系統(tǒng) Linux
簡單來說,Stow 幫助你把這些程序文件以一種容易管理的方式組織在了一起。在這個方法中,文件將不會被復制到多個位置。所有的這些文件都會被保存在一個特定的文件夾中,通常是以程序名命名的,然后 Stow 會在一個合適的位置為所有的程序文件創(chuàng)建符號連接。

[[255398]]

不是所有的程序都可以在官方或者第三方庫中找到,因此你不能使用常規(guī)的包管理來安裝它們。有時你不得不從源代碼中手動構建這些程序。就如你已經(jīng)知道的一樣,當你從源代碼中安裝一個程序的時候,這個軟件包所包含的文件將會復制到本地的多個位置,例如 /usr/local/bin/usr/local/etc/。如果從源代碼中安裝的程序沒有內(nèi)置的卸載程序,當你不再需要這個程序的時候,卸載它就會很麻煩。你可能會花費雙倍(甚至更多)的時間找出這些文件然后手動刪除它們。我以前一直是這樣做的,直到我發(fā)現(xiàn)了 GNU Stow。謝天謝地,Stow 有一個很棒的方法可以輕松管理從源代碼安裝的程序。

引用官方網(wǎng)站里的一段介紹,

GNU Stow 是一個符號鏈接歸集管理器,它可以收集文件系統(tǒng)上不同目錄中的不同軟件和/或數(shù)據(jù)包,使它們看起來像是一個整體。

簡單來說,Stow 幫助你把這些程序文件以一種容易管理的方式組織在了一起。在這個方法中,文件將不會被復制到多個位置。所有的這些文件都會被保存在一個特定的文件夾中,通常是以程序名命名的,然后 Stow 會在一個合適的位置為所有的程序文件創(chuàng)建符號連接。比如 /usr/local/bin 中會包含 /usr/local/stow/vim/bin、/usr/local/stow/python/bin 中文件的符號鏈接。并且同樣遞歸地用于其他的任何的子目錄,例如 .../share、.../man,等等。在這篇教程中,我將會舉例教你如何輕松地使用 Stow 管理從源中安裝的程序。

安裝 GNU Stow

GNU Stow 在流行 Linux 操作系統(tǒng)的默認庫中都可用。

在 Arch Linux 及它的衍生版本中,運行下面的命令安裝 Stow。

  1. $ sudo pacman -S stow

在 Debian、Ubuntu、Linux Mint 上:

  1. $ sudo apt install stow

在 Fedora 上:

  1. $ sudo dnf install stow

在 RHEL/CentOS 上:

  1. $ sudo yum install epel-release
  2. $ sudo yum install stow

在 Linux 上輕松移除從源代碼安裝的程序

就像我之前提到的,所有包的程序文件都將被保存在位于 /usr/local/stow/ 的一個根文件夾。在這個根文件夾或者父目錄之下,每個包都將保存在對應的子目錄中。例如,如果我們從源代碼中安裝了 Vim 編輯器,所有關聯(lián)到 Vim 的程序文件和目錄都將保存在 /usr/local/stow/vim 文件夾之下。如果你從源代碼中安裝了 Python,所有關聯(lián)到 python 的文件都會保存在 /usr/local/stow/python 之下。

我現(xiàn)在從源代碼中來安裝一個叫做 hello 的程序。

首先下載 hello 程序的壓縮包。

  1. $ wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz

使用下面的命令解壓壓縮包:

  1. $ tar -zxvf hello-2.10.tar.gz

上面的命令將會在當前工作目錄下創(chuàng)建一個叫做 hello-2.10 的目錄,并且提取壓縮包中的所有內(nèi)容到其中去。

切換到這個目錄當中:

  1. $ cd hello-2.10/

運行下面的命令,并且添加 -prefix 選項。

  1. $ ./configure --prefix=/usr/local/stow/hello

上面的命令將會保存構建文件到一個指定位置,在這個例子中是 /usr/local/stow/hello。

最后,使用下面的命令構建并安裝 hello 這個程序:

  1. $ make
  2. $ sudo make install

就這樣。hello 這個程序就已經(jīng)安裝在 /usr/local/stow/hello/ 這個位置了。你可以使用下面的 ls 命令確認一下。

  1. $ ls /usr/local/stow/hello/
  2. bin share

最后,進入 /usr/local/stow/ 目錄,運行下面的命令來生成必要的符號鏈接。

  1. $ cd /usr/local/stow/
  2. $ sudo stow hello

大功告成!

剛才那一步是將包含在 hello 這個程序中的所有文件或者目錄創(chuàng)建了鏈接到 /usr/local/ 目錄中。換一種說法, /usr/local/stow/hello/bin 鏈接到 /usr/local/share,以及 /usr/local/stow/hello/share/man 鏈接到 /usr/local/share,還有 /usr/local/stow/hello/share/man 鏈接到 /usr/local/share/man。

你可以使用 ls 命令來確認一下:

  1. $ ls /usr/local/bin/
  2. hello

可以使用下面的命令來確認 hello 這個程序是否可以正常工作了:

  1. $ hello
  2. Hello, world!

很好,它已經(jīng)開始工作了??!

類似地,你可以像上面描述的那樣安裝程序到它對應的子目錄下。

下面是 Stow 根目錄包含的內(nèi)容:

  1. $ tree /usr/local/stow/

看,hello 這個程序已經(jīng)安裝在 /usr/local/stow/hello/ 下。同樣地,所有的包都將保存在它們對應的目錄之下。

下面進入主要環(huán)節(jié),移除 hello 這個程序。首先進入 /usr/local/stow/ 目錄:

  1. $ cd /usr/local/stow/

然后運行下面的命令:

  1. $ sudo stow --delete hello

hello 這個程序就會被移除了。你可以使用下面的命令確認它是否真的被移除了:

  1. $ hello
  2. -bash: /usr/local/bin/hello: No such file or directory

看, Hello 已經(jīng)被移除了!

請注意 Stow 僅僅只移除了符號鏈接。所有與 hello 這個程序相關的文件或者目錄還保存在 /usr/local/stow/hello 目錄下。所以你無需再次下載源文件就可以再次安裝 hello 這個程序。如果你不再需要它了,直接刪除這個文件夾即可。

  1. $ sudo rm -fr /usr/local/stow/hello/

想了解更多 Stow 的細節(jié),請參閱 man 手冊。

  1. $ man stow

Stow 可以像安裝程序一樣輕松地幫你移除它。如果你想知道如何高效的管理很多從源代碼中安裝的程序,GNU Stow 就是一個使得這個任務更加輕松的一個選擇,嘗試一下,你一定不會失望的。

這就是所有的內(nèi)容了,希望對你有所幫助。還有更多干活即將到來,可以期待一下的!

祝近祺! 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2022-09-22 08:18:28

JavaAssistJboss開源

2010-03-26 13:34:47

CentOS安裝

2011-04-06 10:09:56

MySQL數(shù)據(jù)庫安裝

2009-12-15 19:18:39

Ruby源代碼

2012-08-16 09:39:04

2010-02-22 13:07:21

2017-11-20 22:28:43

程序員源代碼編程

2010-07-21 16:23:09

運行telnet程序

2019-02-13 14:55:22

Windows 10視頻刪除聲音

2018-12-14 14:30:12

安全檢測布式系測試

2022-02-25 14:42:09

OpenHarmon環(huán)境搭建鴻蒙

2023-02-26 23:10:09

存儲Linux架構

2023-07-25 15:10:36

Linux存儲

2021-06-04 08:58:41

Linux運維Linux系統(tǒng)

2018-01-31 09:23:57

惡意軟件代碼方法

2018-02-08 08:11:41

2022-06-09 09:38:39

Cloudlets云存儲

2011-02-25 13:52:18

Proftpd管理

2011-02-25 13:52:18

Proftpd管理

2017-08-01 18:06:56

點贊
收藏

51CTO技術棧公眾號