Ini adalah pertama kalinya saya mencoba mengkompilasi dan menginstal apa pun di mesin linux. Saya mendapatkan versi terbaru https://github.com/processone/exmpp via git dan membaca instruksi yang menyatakan:
2. Bangun dan pasang
Exmpp menggunakan Autotools. Karena itu prosesnya sangat umum:
$ ./configure $ make $ sudo make install
setelah tipe ./configure
saya mendapatkan error
Tidak dapat menemukan install-sh, install.sh, atau shtool di ac-aux
Google tidak banyak membantu. Tidak yakin sama sekali apa yang harus saya lakukan. Bantuan apa pun akan sangat dihargai
Yah, saya mencoba jawaban sebastian_k dan itu tidak berhasil untuk saya (
./configure
jatuh di tengah jalan dengan kesalahan yang sangat aneh).Apa yang berhasil, namun berhasil bagi saya adalah menyalin instruksi yang digunakan dalam log pembangunan ini yang saya temukan
Versi singkat (jadi Anda tidak harus mengarungi sendiri) adalah:
sumber
autoreconf -i
adalah jawaban yang benar (v
danf
biasanya opsional)Pertanyaan ini, dan sebagian besar jawaban lain di sini, muncul dari kesalahpahaman tentang bagaimana proyek yang menggunakan Sistem Bangun GNU (alias Autotools) didistribusikan. Bahkan, dalam kasus perpustakaan Erlang XMPP yang disebutkan oleh OP, kesalahpahaman tampaknya berada di pihak pengembang.
Memperoleh perangkat lunak dengan cara yang benar
Jika semua yang ingin Anda lakukan adalah mengkompilasi dan menginstal proyek yang dirilis dengan GNU Autotools, maka Anda tidak boleh memeriksanya dari sistem kontrol sumber . Anda sebaiknya mengunduh rilis sumber paket yang disediakan oleh pengembang. Ini biasanya berbentuk tarball yang didistribusikan di situs web proyek. Untuk proyek yang dihosting sepenuhnya di GitHub, Savannah, atau layanan hosting serupa, tarbal ini biasanya akan ditemukan di balik beberapa tautan yang berlabel "Unduh" atau "Rilis". Anda menghapus paket dan mengucapkan beberapa varian dari
./configure && make && sudo make install
mantra standar . Itu saja; Anda tidak perlu memanggil Autotools GNU, dan bahkan tidak perlu menginstal Autotools GNU di sistem Anda.Alasan bahwa Anda, pengguna, tidak perlu GNU autotools untuk mengkompilasi sebuah proyek autotools-dikemas adalah bahwa pengembang telah sudah menggunakan berbagai program Autotools untuk menghasilkan "tarball distribusi" yang dapat digunakan untuk membangun perangkat lunak pada setiap Sistem seperti-unix. Tarbal distribusi berisi
configure
skrip yang sangat portabel yang memindai lingkungan build, memeriksa dependensi, dan membuatMakefile
kustomisasi untuk sistem Anda.Jadi kapan Anda membutuhkan Autotools?
Satu-satunya alasan Anda harus menginstal dan memohon GNU Autotools sendiri adalah jika Anda ingin melakukan pekerjaan pengembangan pada proyek yang dibangun dengan Autotools. Dan bahkan kemudian, Anda mungkin tidak akan membutuhkan Autotools kecuali Anda mengubah dependensi proyek. Dalam hal ini, Anda memang akan perlu memeriksa sumber aslinya, membuat perubahan yang sesuai dengan Autotools spesifik file input (
configure.ac
,Makefile.am
, dll), dan menjalankan Autotools pada mereka untuk menghasilkan baruconfigure
berkas. Jika Anda ingin mempublikasikan paket revisi secara mandiri, maka Anda akan menggunakan Makefile yang dihasilkan oleh Autotools untuk menghasilkan tarball distribusi baru, dan kemudian menerbitkan tarball itu di suatu tempat online.Masalahnya adalah bahwa beberapa pengembang membuat repositori sumbernya tersedia untuk umum tetapi lalai untuk menerbitkan tarbal distribusi mereka (atau membuatnya sulit untuk menemukan di mana mereka diterbitkan). Misalnya, alih-alih menerbitkan tarbal distribusi mereka sebagai GitHub Rilis , rilis GitHub perpustakaan Erlang XMPP adalah tarbal dari repositori sumber mentah. Hal ini membuat mustahil untuk mengkompilasi proyek tanpa Autotools GNU, mengalahkan seluruh tujuan menggunakan Autotools di tempat pertama.
TL; ringkasan DR
GNU Autotools adalah sesuatu yang digunakan pengembang untuk membuat paket kode sumber portabel untuk pengguna. Pengguna harus mengunduh dan mengkompilasi dari paket sumber ini, bukan kode asli dari sistem kontrol sumber. Jika pengembang tidak menyediakan paket sumber ini, maka mereka tidak menggunakan Autotools dengan benar, dan harus ditampar dengan lembut dengan trout basah sampai mereka melihat kesalahan cara mereka.
sumber
./configure && make && sudo make install
seperti yang Anda sarankan pada paragraf kedua.Saya punya masalah ini, dan menemukan itu karena baris berikut di
configure.ac
:Baris itu tidak buruk, tetapi perlu dipindahkan lebih dekat ke bagian atas
configure.ac
file.sumber
Silakan lakukan hal berikut untuk memperbaiki masalah ini,
Kemudian lakukan instalasi
sumber
Saat mencoba mengkompilasi GNU Octave dari repositori Mercurial, Anda mungkin menemukan masalah ini. Cara mengatasinya adalah menjalankan
./bootstrap
sementara berada di root dari pohon sumber.sumber
sudo apt-get install automake autoconf
itu berhasil
sumber
Saya memiliki masalah yang sama ketika saya mencoba
./configure
kode sumber dan mendapatkan kesalahan yang sama seperti yang diposting. Akhirnya diselesaikan masalah saya dengan memasukkan kode:sumber
Setelah menginstal
autogen
paket, kesalahan ini diselesaikan dalamwolfSSL
build.sumber
Saya memiliki kesalahan yang sedikit berbeda:
configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."
Ternyata konfigurasi tidak dapat ditemukan
build-aux/install-sh
. Saya menautkannya seperti ituln -s build-aux/install-sh .
lalu dibangun.
Semoga itu bisa membantu seseorang di luar sana!
sumber