it-swarm-id.com

Cara mengkompilasi dan menginstal program dari sumber

Ini adalah masalah yang benar-benar membatasi kesenangan saya pada Linux. Jika aplikasi tidak pada repositori atau jika tidak memiliki skrip installer, maka saya benar-benar kesulitan di mana dan bagaimana menginstal aplikasi dari sumber.

Dibandingkan dengan Windows, itu mudah. Anda (cukup banyak) diharuskan untuk menggunakan aplikasi pemasang yang melakukan semua pekerjaan dalam Wizard. Dengan Linux ... tidak banyak.

Jadi, apakah Anda memiliki tips atau instruksi tentang ini atau apakah ada situs web yang secara eksplisit menjelaskan bagaimana, mengapa dan di mana menginstal program Linux dari sumber?

42
Nitrodist

Biasanya, proyek akan memiliki situs web dengan instruksi bagaimana membangun dan menginstalnya. Google untuk itu dulu.

Sebagian besar yang akan Anda lakukan adalah:

  1. Unduh tarball (file tar.gz atau tar.bz2), yang merupakan rilis versi spesifik dari kode sumber
  2. Ekstrak tarball dengan perintah seperti tar zxvf myapp.tar.gz untuk tarball gzip atau tar jxvf myapp.tar.bz2 untuk tarball bzipped
  3. cd ke direktori yang dibuat di atas
  4. lari ./configure && make && Sudo make install

Atau:

  1. Gunakan git atau svn atau apa pun untuk menarik kode sumber terbaru dari repositori sumber resmi mereka
  2. cd ke direktori yang dibuat di atas
  3. lari ./autogen.sh && make && Sudo make install

Konfigurasi dan autogen.sh akan menerima argumen --prefix untuk menentukan di mana perangkat lunak diinstal. Saya sarankan memeriksa Di mana saya harus meletakkan perangkat lunak yang saya kompilasi sendiri? untuk saran tentang tempat terbaik untuk menginstal perangkat lunak yang dibuat khusus.

24
Sandy

Saya hanya ingin menambahkan bahwa ada manajer paket yang mengkompilasi paket dari sumber, dan menangani semua dependensi paket, flag, dll.

Dalam sistem BSD itu ports: Menggunakan Ports Collection

Di Debian, apt-get manajer paket dapat menginstal dari sumber juga: APT HOWTO: Bekerja dengan paket sumber (Hal yang sama berlaku untuk Ubuntu, Linux-mint dan yang lainnya berdasarkan Debian)

Distribusi Gentoo menggunakan manajer paket portage, yang mengkompilasi seluruh sistem hanya dari sumber: Pengenalan Portage .

Slackware dapat mengkompilasi paket tetapi saya tidak tahu apakah ada manajer paket untuk ini di sana .. =)

Pokoknya Anda selalu dapat mengkompilasi paket secara manual seperti Sandy yang disebutkan di atas =) Juga harus dimungkinkan untuk menggunakan apt-get atau portage pengelola paket di distro lain ...

4
holms

Saya pikir yang terbaik adalah membaca dokumentasi yang datang dengan program atau aplikasi spesifik yang ingin Anda instal. Biasanya ada readmes/READMEs di dalam tarbal (arsip sumber aplikasi yang biasanya dapat Anda unduh) atau bahkan INSTALL file untuk membaca dan mempelajari tentang apa cara yang disukai untuk menginstal aplikasi tersebut. Singkatnya: RTFM;)

2
reiche

Ringkasan untuk menggunakan Ports Collection di FreeBSD:

Temukan Port

Port diatur berdasarkan kategori, jadi jika Anda tidak tahu kategori apa port itu, Anda harus menemukannya terlebih dahulu:

cd /usr/ports
make search name=myport

Terkadang ada terlalu banyak entri seperti itu. Saya pribadi lebih suka:

find /usr/ports -name myport* -print -depth 2

Gunakan * saat mencari karena sering ada beberapa versi port yang tersedia. Argumen mendalam memastikan hasil pengembalian Anda tidak perlu berantakan dengan pertandingan yang tidak Anda inginkan.

Konfigurasi

Seringkali, Anda ingin melakukan beberapa konfigurasi; perangkat lunak seperti Apache dan Postgres praktis memerlukannya. Ada tiga pilihan utama: baris perintah, lingkungan dan membuat file konfigurasi. Untuk memulai dengan baris perintah:

make showconfig

ini akan mencantumkan opsi konfigurasi default. Jika Anda menyukai default, Anda siap untuk dikompilasi dan diinstal. Jika tidak,

make config

akan memunculkan kotak dialog di mana Anda dapat memilih opsi mana yang Anda inginkan. (Jangan bingung dengan ini dan make configure yang mengonfigurasi port Anda dengan opsi yang Anda pilih!) Ini seringkali cukup tetapi untuk beberapa perangkat lunak, seperti Apache, seringkali terdapat konfigurasi yang kompleks bahwa dialog sederhana tidak akan menangani. Untuk ini, Anda juga harus melihat Makefile yang terkadang memberi Anda beberapa target tambahan untuk make yang akan memberi Anda lebih banyak informasi. Untuk melanjutkan contoh Apache

make show-modules
make show-options
make show-categories

akan memberi Anda informasi tentang pengaturan modul yang Anda pilih, opsi utas dan sejenisnya. Jika default port Anda sebagian besar baik-baik saja dan Anda hanya ingin mengubah beberapa hal, Anda juga bisa meneruskan kunci = pasangan nilai seperti variabel lingkungan:

make MYVBL1=MYVAL1 ... install clean

Anda juga dapat mengatur opsi sakelar melalui opsi -D:

make -D MYVAR -D MYOTHERVAR ... install clean

Namun untuk konfigurasi yang kompleks, baris perintah tidak akan berfungsi dengan baik dan Anda lebih baik tidak satu pun dari dua metode pertama yang efektif. Dalam hal ini Anda dapat membuat file konfigurasi dan meneruskannya ke make dengan variabel __MAKE_CONF. FreeBSD memiliki file konfigurasi default: /etc/make.conf yang biasanya berisi informasi tentang port yang diinstal sebelumnya dan pengaturan sistem lainnya. Untuk memulai, buat file dengan opsi port Anda, sebut saja ~/myport.mk dan kemudian gabungkan file itu dengan /etc/make.conf:

cat /etc/make.conf ~/myport.mk >> ~/make.myport.conf

anda kemudian dapat memeriksa konfigurasi Anda:

make showconfig __MAKE_CONF=~/make.port.conf

dan jika semuanya terlihat baik:

make install clean __MAKE_CONF=~/make.myport.conf

WASPADALAH! Jika Anda perlu menyesuaikan pengaturan konfigurasi Anda setelah make configure atau instalasi secara keseluruhan atau bagian Anda benar-benar harus menghapus konfigurasi Anda terlebih dahulu:

make rmconfig

Kegagalan untuk melakukannya akan mengakibatkan interaksi tak terduga antara subsistem port, default make port Anda dan konfigurasi yang Anda inginkan.

Itu agak banyak untuk ringkasan, tetapi kompleksitas konfigurasi sebagian besar tentang aplikasi, bukan port. Bash misalnya, tidak benar-benar memiliki opsi apa pun.

Instalasi

Ini adalah bagian yang mudah:

make install clean

atau kamu bisa

make build
make install
make clean

yang hanya mengetik.

Cukup banyak. Jelas ada lebih banyak yang dapat Anda lakukan seperti dependensi daftar dan opsi konfigurasi rekursif, pembaruan dengan tambalan dan sebagainya. Di sini saya akan mengarahkan Anda ke Ports bagian Handbook , halaman manual subsistem pelabuhan (info bagus tentang target make tambahan) dan halaman manual make .

1
gvkv

Baru-baru ini saya mulai menggunakan "Checkinstall" ketika menginstal dari sumber di luar manajer paket saya. Itu membangun "paket" dari tarball pihak ke-3 yang kemudian dapat diinstal dan dikelola (dan dihapus) melalui alat manajer paket Anda.

Lihat artikel ini - http://www.linuxjournal.com/content/using-checkinstall-build-packages-source

0
aryeh