SORU
9 HAZİRAN 2012, CUMARTESİ


Neden her zaman ./configure; make; make install; 3 ayrı adımları gibi?

Sana bir şey kaynaktan derleme her seferinde aynı 3 adım adım gidin:

$ ./configure
$ make
$ make install

Anlıyorum, bu çok mantıklı için bölme yükleme işlemine farklı adımları, ama anlamıyorum, neden her kodlayıcı üzerinde olan bu gezegen için yazmak aynı üç komutları tekrar tekrar sadece tek bir iş çıkarmış. Benim açımdan tamamen aşağıdaki metni içerir: ./install.sh Bir komut dosyası otomatik olarak kaynak kodu ile teslim olması mantıklı olur

#!/bin/sh
./configure
make
make install

neden insanlar 3 adımları ayrı ayrı mı?

CEVAP
9 HAZİRAN 2012, CUMARTESİ


Çünkü her adımda farklı şeyler yapar

(Kur) bina için ortamı hazırlamak

./configure

Bu komut dosyasını değiştirmeniz gereken birçok seçenek vardır. --prefix --with-dir=/foo gibi. Her sistem farklı bir yapılandırma var demektir. Ayrıca ./configure yüklenmesi gereken eksik kütüphaneler için denetler. Yanlış bir şey buradabaşvurunuzu oluşturmak için neden olur. Bu dağıtımlar her dağıtım, daha iyi belirli bir dizin için bazı kütüphaneleri ve dosyaları yüklemek için olduğunu düşünüyor, çünkü farklı yerlerde yüklü olan paketler var. ./configure, çalıştırmak için söylenir ama aslında her zaman değiştirmeniz gerekir.

Örneğin the Arch Linux packages site bir göz. Burada herhangi bir paket farklı bir configure parametresi (yapı sistemi için autotools kullanarak olduklarını varsayıyorum) kullanan göreceksiniz.

Sistem bina

make

Bu aslında make all varsayılan olarak. Ve her yapmak için farklı eylem vardır. Bazı bina, bir bina sonra test yapıp, bazı dış SCM depoları çıkış yapın. Genellikle herhangi bir parametre vermek zorunda değilsin, ama yine bazı paketleri farklı onları yürütmek.

Sistemi yükleyin

make install

Burası yapılandırma ile belirtilen paketi yükler. Eğer istersen ./configure ev dizini işaret belirtebilirsiniz. Ancak, yapılandırma seçenekleri bir sürü /usr /usr/local işaret ediyor. Aslında sadece root /usr dosya ve /usr/local kopyalayabilirsiniz çünkü sudo make install kullanmak zorundasın demek oluyor.


Şimdi her adım bir sonraki adım için ön şartlardan biri olduğunu görürsünüz. Her adımda bir şeyler problemless bir akış içinde çalışması için bir hazırlık. Dağıtımlar bu metafor paketleri (RPM, deb, vb.) oluşturmak için kullanın.

Burada her adım aslında farklı bir durum olduğunu görürsünüz. Bu paket yöneticileri farklı ambalajı var. Aşağıda tek adımda bütün paketi kurmanıza izin veren bir sarıcı bir örnek. Ama her uygulama farklı bir sarıcı (aslında bu kitap kapları, arada tutmanızı sağlar, vb spec gibi bir adı var.) sahip olduğunu unutmayın:

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 ./configure, make make install anlamına gelen autotools, kullanabilirsiniz. Ama başka bir SCons Python ile ilgili kur ya da farklı bir şey kullanabilirsiniz.

Bölme gördüğünüz gibi her devlet işleri korumak ve dağıtım için çok daha kolay, özellikle paket bakıcılarına ve dağıtımlar için yapar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • infiniTuts

    infiniTuts

    18 Ocak 2012
  • julioissk84life

    julioissk84l

    18 ŞUBAT 2008
  • Tech4Geeks

    Tech4Geeks

    8 Ocak 2012

İLGİLİ SORU / CEVAPLAR