Bu soru ve diğer cevapların çoğu, GNU Yapı Sistemi ni kullanan projelerin yanlış anlaşılmasından kaynaklanmaktadır. (aka Autotools) dağıtılır. Aslında, OP tarafından belirtilen Erlang XMPP kütüphanesi söz konusu olduğunda, yanlış anlama geliştiricilerin bir parçası gibi görünmektedir.
Yazılımı doğru şekilde elde etme
Tek yapmanız gereken, GNU Autotools ile yayımlanan bir projeyi derlemek ve kurmaksa, bunu kaynak kontrol sisteminden kontrol etmemelisiniz . Bunun yerine geliştiricinin sağladığı paketlenmiş kaynak sürümünü indirmelisiniz. Bunlar normal olarak projenin web sitesinde dağıtılan tarballlar şeklini alır. Tamamen GitHub, Savannah veya benzer bir barındırma hizmetinde barındırılan projeler için, bu tarballlar genellikle "İndir" veya "Bültenler" etiketli bazı bağlantıların arkasında bulunur. Paketi açıp, standart ./configure && make && sudo make install
küfürün bir varyantını çıkarırsınız. Bu kadar; GNU Autotools'un herhangi birini çağırmanıza gerek yoktur ve GNU Autotools'un sisteminizde yüklü olmasına bile gerek yoktur.
Autotools ile paketlenmiş bir projeyi derlemek için GNU Autotools'a gerek duymamanızın nedeni, geliştiricinin "dağıtım tarperi" oluşturmak için çeşitli Autotools programlarını zaten kullanmasıdır. herhangi bir Unix benzeri sistemde yazılımı kurmak için kullanılabilir. Dağıtım tarperi, yapı ortamını tarayan, bağımlılıkları denetleyen ve sisteminize özel configure
yapılandıran, son derece taşınabilir Makefile
komut dosyası içerir.
Peki, ne zaman Autotools'a ihtiyacınız var?
GNU Autotools'u kendiniz yüklemek ve çağırmak için gerek duyacağınız tek neden, Autotools ile oluşturulmuş bir projede geliştirme çalışması yapmaktır. Ve o zaman bile, projenin bağımlılıklarını değiştirmediğiniz sürece muhtemelen Autotools'a ihtiyacınız olmaz. Bu durumda, orijinal kaynağı kontrol etmeniz, Autotools'a özgü giriş dosyalarında ( configure.ac
, Makefile.am
, vb.) Uygun değişiklikleri yapmanız ve yeni bir% co_de oluşturmak için Autotools'u çalıştırmanız gerekir. % dosya. Gözden geçirilmiş paketi bağımsız olarak yayınlamak isterseniz, yeni bir dağıtım tarlayı oluşturmak için Autotools tarafından oluşturulan Makefile'yi kullanırsınız ve daha sonra çevrimiçi bir yerde tarball'ı yayınlarsınız.
Sorun, bazı geliştiricilerin kaynak depolarını kamuya açık olarak kullanıma sunmaları, ancak dağıtım tarball'larını yayınlamayı ihmal etmeleri (ya da nerede yayınlandığını bulmayı zorlaştırmaları). Örneğin, dağıtım tarball'larını GitHub Sürümleri olarak yayınlama yerine, Erlang XMPP kütüphanesinin GitHub Sürümleri , ham kaynak deposunun tarball'larıdır. Bu, projeyi GNU Autotools olmadan derlemeyi imkansız hale getirerek, Autotools'u ilk kullanım amacını tamamen ortadan kaldırır.
TL; DR özeti
GNU Autotools, kullanıcılar için taşınabilir kaynak kodu paketleri yapmak için geliştiriciler 'in kullandığı bir şeydir. Kullanıcılar , kaynak kontrol sisteminden gelen orijinal kodu değil, bu kaynak paketlerden indirmeli ve derlemelidir. Geliştiriciler bu kaynak paketleri sağlamazlarsa, Autotools'u doğru bir şekilde kullanmıyorlar ve yavaşça ıslak bir şekilde tokatlanmalı. alabalıklarını gördükleri zaman hatalarını görene kadar.