Ac-aux'de install-sh, install.sh veya shtool bulunamıyor

72

Bu ilk defa linux makinesinde bir şey derlemeye ve kurmaya çalışıyor. İşte 'nin en son sürümüne gitmiş ve şu bilgileri veren talimatları okumuştum:

  

2. Kurulum ve yükleme

     

Exmpp, Autotools'u kullanır. bu nedenle   süreç oldukça yaygındır:

$ ./configure
$ make
$ sudo make install

./configure yazdıktan sonra hata alıyorum

  

Ac-aux'de install-sh, install.sh veya shtool bulunamıyor

Google’ın yardımı olmayan çok az bir şey vardı. Yapmam gereken şeyden emin değilim. Herhangi bir yardım çok takdir edilecektir

    
sordu Micah 23.02.2011 07:14

8 cevap

92

Aşağıdaki komutları kullanarak configure komut dosyasını oluşturmak için aldım:

libtoolize --force
aclocal
autoheader
automake --force-missing --add-missing
autoconf
./configure

Tüm bağımlılıklara sahip değilim, bu yüzden şu anda test edemiyorum, ancak bu genellikle bir ac dosyasından bir yapılandırma komut dosyası oluşturabilir.

    
verilen cevap sebastian_k 23.02.2011 07:30
37

Peki, sebastian_k'ın cevabını denedim ve benim için çalışmadı ( ./configure çok garip bir hatayla ortada çöktü).

Ne yaptım, ancak benim için çalışmam, bu derlemesinde kullanılan talimatları kopyalamaktı günlük buldum

Kısa versiyon (bundan dolayı kendinizle uğraşmak zorunda değilsiniz):

$ autoreconf -vif
$ ./configure --prefix=/usr/lib/erlang/lib
$ make
$ sudo make install
    
verilen cevap entropy 10.11.2012 14:30
7

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.

    
verilen cevap Psychonaut 01.09.2017 12:53
4

Bu sorunu yaşadım ve configure.ac dosyasında aşağıdaki satırdan kaynaklandığını tespit ettim:

AC_CONFIG_AUX_DIR([build-aux])

Satır başı kötüydü, ancak configure.ac dosyasının en üstüne taşınması gerekiyordu.

    
verilen cevap Craig McQueen 02.05.2016 13:29
2

Lütfen bu sorunu düzeltmek için aşağıdakileri yapın,

sudo apt-get install autogen libtool shtool

Sonra yüklemeyi yapın

sh autogen.sh --prefix=prefered_install_path
make 
make install 
    
verilen cevap Ravi Hegde 02.09.2015 13:30
1

sudo apt-get install automake autoconf

çalışmaları başarılı bir şekilde

    
verilen cevap Shafiul Karim Bulan 12.06.2013 08:47
1

GNU Octave'yi Mercurial deposundan derlemeye çalışırken, bu problemle karşılaşabilirsiniz. Düzeltme, kaynak ağacın kökünde bulunurken ./bootstrap dosyasını çalıştırmaktır.

    
verilen cevap Ruslan 22.03.2017 14:45
0

./configure bir kaynak kodu denediğimde ve gönderildiği gibi aynı hatayı aldığımda benzer bir sorun yaşadım. Sonunda, kodu girerek sorunlarımı çözdüm:

sudo apt-get install autotools-dev
    
verilen cevap retnan 09.02.2013 17:35

Etiketlerdeki diğer soruları oku