Bu soru ve buradaki diğer cevapların çoğu, GNU Yapı Sistemini (aka Autotools) kullanan projelerin nasıl dağıtıldığının yanlış anlaşılmasından kaynaklanmaktadır . Aslında, OP tarafından belirtilen Erlang XMPP kütüphanesi durumunda , yanlış anlama geliştiricilerin bir parçası gibi görünmektedir.
Yazılımın doğru şekilde elde edilmesi
Tek yapmanız gereken GNU Autotools ile piyasaya sürülen bir projeyi derleyip kurmaksa, kaynak kontrol sisteminden kontrol etmemelisiniz . Bunun yerine geliştirici tarafından sağlanan paketlenmiş kaynak sürümünü indirmelisiniz . Bunlar normalde projenin web sitesinde dağıtılan tarball şeklini alır. Tamamen GitHub, Savannah veya benzeri bir barındırma hizmeti üzerinde barındırılan projeler için, bu tarball'lar genellikle "İndir" veya "Bültenler" etiketli bir bağlantının arkasında bulunur. Paketi aç ve standart ./configure && make && sudo make install
kuluçka makinesinin bir türevini çıkar . Bu kadar; GNU Autotools’un herhangi birini çağırmanıza gerek yoktur ve GNU Autotools’un sisteminizde kurulu olması gerekmez.
Eğer kullanıcı, bir Autotools paketlenmiş projeyi derlemek için GNU Autotools gerekmez nedeni geliştirici olmasıdır zaten herhangi yazılımı oluşturmak için kullanılabilecek bir "dağıtım tarball" üretmek için çeşitli Autotools programları kullanılan Unix benzeri sistem. Dağıtım tarball'u configure
, derleme ortamını tarayan, bağımlılıkları denetleyen ve Makefile
sisteminize göre özelleştirilmiş bir yapı oluşturan oldukça taşınabilir bir komut dosyası içerir .
Peki, ne zaman Autotools'a ihtiyacınız var?
GNU Autotools'u kendiniz kurmak ve çağırmak için ihtiyacınız olan tek şey, Autotools ile inşa edilmiş bir projede geliştirme çalışması yapmak istiyorsanız . Ve o zaman bile, projenin bağımlılıklarını değiştirmediğiniz sürece muhtemelen Otomatik Araçlara ihtiyacınız olmayacak. Bu durumda, gerçekten, orijinal kaynak kontrol etmeliyiz Autotools özgü girdi dosyaları (gerekli değişiklikleri yapar configure.ac
, Makefile.am
vs.) ve yeni oluşturmak için üzerlerinde Autotools çalıştırmak configure
dosyayı. Gözden geçirilmiş paketi bağımsız olarak yayınlamak istiyorsanız, Autotools tarafından oluşturulan Makefile'ı yeni bir dağıtım tarball'ı oluşturmak için kullanır ve ardından bu tarball'ı çevrimiçi bir yerde yayınlarsınız.
Buradaki sorun, bazı geliştiricilerin kaynak depolarını kamuya açık hale getirmelerine karşın, dağıtım tarball'larını yayınlamayı ihmal etmeleri (veya yayınlandıkları yeri bulmayı zorlaştırmaları). Örneğin, dağıtım tarball'larını GitHub Bültenleri olarak yayınlamak yerine , Erlang XMPP kütüphanesinin GitHub Bültenleri ham kaynak havuzunun tarball'larıdır. Bu, projeyi GNU Autotools olmadan derlemeyi imkansız kılar ve Autotools'u ilk etapta kullanma amacını ortadan kaldırır.
TL; DR özeti
GNU Autotools, geliştiricilerin kullanıcılar için taşınabilir kaynak kod paketleri yapmak için kullandıkları bir şeydir . Kullanıcılar , kaynak kontrol sistemindeki orijinal kodu değil, bu kaynak paketleri indirmeli ve derlemelidir. Geliştiriciler bu kaynak paketleri sağlamazlarsa, Autotools'u doğru şekilde kullanmıyorlar ve yollarının hatasını görene kadar hafifçe alabalıkla tokatlanmaları gerekir .