Installation

在linux下編譯到指定目錄,然後打包軟體

  • May 28, 2015

我需要從原始碼編譯軟體。

./config && make && make install

在那,它確實在各處安裝了一堆東西(圖書館等)

但問題是,我還需要將該軟體複製到另一組我不想安裝 gcc 的機器上。

我怎樣才能使該軟體安裝在一個“目錄”中,然後復製到其他機器?

如果你打算將軟體分發到其他機器上,你肯定需要打包它。

您沒有指定您正在使用哪個發行版,因此遵循一般指導。

GNU/Linux 和 *BSD 世界中的軟體通常在其許可證允許的情況下以打包形式和原始碼分發。

不同的發行版使用不同的前端或包管理器來更新、安裝和刪除此軟體。

從原始碼編譯的軟體通常(但不總是)使用已​​知的工作流程 ( configure && make && make install) 建構,您提到的選項 ( --prefix) 是使用一組通用工具從稱為autotools. 簡要說明,可以傳遞一個選項來修改將用於在本地系統中複製已編譯軟體的預設位置 ( /usr/local) 。make install

打包軟體包括這個編譯步驟,但更加複雜,因為它利用元數據來管理基本autotools架構中不存在的依賴關係、事務性和其他功能。

看一下輸出:

$ rpm -qi coreutils

Name        : coreutils
Version     : 8.23
Release     : 10.fc22
Architecture: x86_64
Install Date: Fri 15 May 2015 11:55:00 PM BST
Group       : System Environment/Base
Size        : 16324354
License     : GPLv3+
Signature   : RSA/SHA256, Thu 14 May 2015 03:22:57 PM BST, Key ID 11adc0948e1431d5
Source RPM  : coreutils-8.23-10.fc22.src.rpm
Build Date  : Thu 14 May 2015 10:00:06 AM BST
Build Host  : buildhw-05.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.gnu.org/software/coreutils/
Summary     : A set of basic GNU tools commonly used in shell scripts
Description :
These are the GNU core utilities.  This package is the combination of
the old GNU fileutils, sh-utils, and textutils packages.

在這種情況下,包格式為RPM,其他發行版使用 DEB,並且包管理器也不同(yum/ dnfzypper、或/ pkgsrc、…)。dpkg``apt``aptitude

根據您需要將此軟體分發到的機器數量,以及您用於建構、QA 和儲存它的過程,應用不同的方法(或其中的一部分):

  • 了解標準包裝系統如何在您選擇的平台中工作。例如,在 Red Hat 及其衍生產品中,您需要編寫一個SPEC文件並使用rpmbuild. 還有像fpm這樣的輕量級替代品可以節省您的時間。
  • 了解如何配置和管理私有儲存庫以託管您的自定義包。該領域的一些工具包括createrepoand apt-utils,但也包括更高級別的應用程序cobbler,如pulpor nexus
  • 如果您的工作流程更加複雜,例如,如果它包含包的 QA,則您可能需要工具來自動執行此操作。有很多
  • 記錄過程。

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