Çünkü her adım farklı şeyler yapıyor
Bina için ortam hazırlayın (kurulum)
./configure
Bu komut dosyası, değiştirmeniz gereken birçok seçeneğe sahiptir. Gibi --prefix
veya --with-dir=/foo
. Bu, her sistemin farklı bir konfigürasyona sahip olduğu anlamına gelir. Ayrıca ./configure
yüklenmesi gereken eksik kitaplıkları da denetler. Burada yanlış olan herhangi bir şey , uygulamanızı oluşturmamanıza neden olur . Bu nedenle dağıtımların farklı yerlere yüklenmiş paketleri vardır, çünkü her dağıtım belirli kitaplıkları ve dosyaları belirli dizinlere yüklemenin daha iyi olduğunu düşünür. Koşması söyleniyor ./configure
, ama aslında onu her zaman değiştirmelisiniz.
Örneğin , Arch Linux paketleri sitesine bir göz atın . Burada herhangi bir paketin farklı bir configure parametresi kullandığını göreceksiniz (derleme sistemi için autotools kullandıklarını varsayın).
Sistemi kurmak
make
Bu aslında make all
varsayılan olarak. Ve her markanın yapacak farklı eylemleri vardır. Bazıları derleme yapar, bazıları oluşturduktan sonra testler yapar, bazıları ise harici SCM havuzlarından kullanıma alır. Genellikle herhangi bir parametre vermeniz gerekmez, ancak yine bazı paketler onları farklı şekilde çalıştırır.
Sisteme yükleyin
make install
Bu, paketi configure ile belirtilen yere yükler. İsterseniz ./configure
, ana dizininize işaret etmeyi belirtebilirsiniz . Ancak, birçok yapılandırma seçeneği /usr
veya işaretini gösteriyor /usr/local
. Bu, o zaman gerçekten kullanmanız gerektiği anlamına gelir sudo make install
çünkü yalnızca root dosyaları / usr ve / usr / local dizinlerine kopyalayabilir.
Artık her adımın bir sonraki adım için bir ön gereklilik olduğunu görüyorsunuz. Her adım, işlerin sorunsuz bir akış içinde yürümesi için bir hazırlıktır. Dağıtımcılar bu metaforu paketler (RPM, deb vb. Gibi) oluşturmak için kullanır.
Burada her adımın aslında farklı bir durum olduğunu göreceksiniz. Bu nedenle paket yöneticilerinin farklı sarmalayıcıları vardır. Aşağıda, tüm paketi tek adımda oluşturmanıza izin veren bir sarmalayıcı örneği bulunmaktadır. Ancak her uygulamanın farklı bir sarmalayıcıya sahip olduğunu unutmayın (aslında bu sarmalayıcıların spec, PKGBUILD, vb. Gibi bir adı vardır):
def setup:
... #use ./configure if autotools is used
def build:
... #use make if autotools is used
def install:
... #use make all if autotools is used
Burada bir tane, aracı autotools kullanabilir ./configure
, make
ve make install
. Ancak bir diğeri SCons, Python ile ilgili kurulum veya farklı bir şey kullanabilir.
Gördüğünüz gibi her durumu bölmek, özellikle paket bakımcıları ve dağıtımlar için bakım ve dağıtım için işleri çok daha kolaylaştırır.