it-swarm-tr.com

Programları kaynaktan derleme ve yükleme

Bu, Linux'tan gerçekten zevk almamı sınırlayan bir konudur. Uygulama bir depoda değilse veya bir yükleyici komut dosyası yoksa, o zaman bir uygulamayı kaynaktan nereden ve nasıl yükleyeceğimi gerçekten zorlarım.

Windows ile karşılaştırıldığında, kolaydır. (Hemen hemen) bir sihirbazda tüm işi yapan bir yükleyici uygulaması kullanmak zorundasınız. Linux ile ... çok fazla değil.

Peki, bununla ilgili ipuçlarınız veya talimatlarınız var mı veya Linux programlarını kaynaktan nasıl, neden ve nereye yükleyeceğinizi açık bir şekilde açıklayan herhangi bir web sitesi var mı?

42
Nitrodist

Normalde, projenin nasıl oluşturulacağı ve kurulacağı ile ilgili talimatları içeren bir web sitesi olacaktır. Önce Google.

Çoğunlukla şunları yapabilirsiniz:

  1. Kaynak kodun belirli bir sürümünün bir sürümü olan bir tarball (tar.gz veya tar.bz2 dosyası) indirin
  2. Tarball'ı tar zxvf myapp.tar.gz sıkıştırılmış tarball için veya tar jxvf myapp.tar.bz2 sıkıştırılmış bir tarball için
  3. cd, yukarıda oluşturulan dizine
  4. çalıştırmak ./configure && make && Sudo make install

Veya:

  1. Git veya svn'yi veya en son kaynak kodunu resmi kaynak havuzundan almak için herhangi bir şeyi kullanın
  2. cd, yukarıda oluşturulan dizine
  3. çalıştırmak ./autogen.sh && make && Sudo make install

Configure ve autogen.sh, yazılımın nereye kurulduğunu belirtmek için bir --prefix bağımsız değişkenini kabul eder. Kontrol etmenizi öneririm Kendim derlediğim yazılımı nereye koymalıyım? Özel yapım yazılımı yüklemek için en iyi yer hakkında tavsiye.

24
Sandy

Sadece paketleri kaynaktan derleyen ve tüm paket bağımlılıklarını, bayrakları vb. İşleyen paket yöneticileri olduğunu eklemek istiyorum.

BSD sistemlerinde ports: Bağlantı Noktaları Koleksiyonunu Kullanma

Debian'da apt-get paket yöneticisi de kaynaktan yükleyebilir: APT NASIL: Kaynak paketlerle çalışma (Ubuntu, Linux-nane ve Debian'a dayalı her şey için de geçerlidir)

Gentoo dağıtımı, tüm sistemi yalnızca kaynaktan derleyen portage paket yöneticisini kullanır: Portage Giriş .

Slackware paketleri derleyebilir, ancak bunun için herhangi bir paket yöneticisi olup olmadığını bilmiyorum .. =)

Her neyse, yukarıda belirtilen Sandy gibi paketleri manuel olarak derleyebilirsiniz =) Ayrıca apt-get veya portage diğer dağıtımlardaki paket yöneticileri ...

4
holms

Yüklemek istediğiniz belirli bir program veya uygulama ile birlikte gelen belgeleri okumak en iyisidir. Genellikle tarballs (genellikle indirebileceğiniz uygulama kaynak arşivi) içinde readmes/README'ler veya hatta söz konusu uygulamayı kurmanın tercih edilen yolunun ne olduğunu okumak ve öğrenmek için INSTALL dosyaları bile vardır. Kısacası: RTFM;)

2
reiche

FreeBSD'de Bağlantı Noktaları Koleksiyonunu kullanma özeti:

Bağlantı Noktası Bul

Bağlantı noktaları kategoriye göre düzenlenmiştir, bu nedenle bağlantı noktasının hangi kategoride olduğunu bilmiyorsanız önce bulmanız gerekir:

cd /usr/ports
make search name=myport

Bazen bu şekilde çok fazla giriş olabilir. Şahsen tercih ederim:

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

Kullan * arama yaparken genellikle bir portun birden fazla sürümü mevcut olduğundan. Derinlik argümanı, dönüş sonuçlarınızın istemediğiniz eşleşmelerle gereksiz yere dağınık olmamasını sağlar.

Konfigürasyon

Genellikle, bazı yapılandırmalar yapmak istersiniz; Apache ve Postgres gibi yazılımlar bunu gerektirir. Üç ana seçenek vardır: komut satırı, ortam ve yapılandırma dosyaları oluşturma. Komut satırını kullanmaya başlamak için:

make showconfig

bu, varsayılan yapılandırma seçeneklerini listeler. Varsayılanları beğendiyseniz, derlemeye ve yüklemeye hazırsınız demektir. Değilse,

make config

istediğiniz seçenekleri seçebileceğiniz bir iletişim kutusu görüntüler. (Bununla karıştırmayın ve make configure bağlantı noktanızı seçtiğiniz seçeneklerle yapılandırır!) Bu genellikle yeterlidir, ancak Apache gibi bazı yazılımlar için basit bir iletişim kutusunun işlemeyeceği karmaşık yapılandırmalar vardır. Bunun için, bazen size daha fazla bilgi verecek bazı ek hedefler verecek olan Makefile (ler) e de bakmalısınız. Apache örneğine devam etmek için

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

seçtiğiniz modülleri, iplik seçeneklerini ve benzerlerini ayarlama hakkında size bilgi verecektir. Bağlantı noktanızın varsayılanları çoğunlukla iyi ise ve yalnızca birkaç şeyi değiştirmek istiyorsanız, çevre değişkenleri gibi key = değer çiftlerini de iletebilirsiniz:

make MYVBL1=MYVAL1 ... install clean

Ayrıca, -D seçenek:

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

Ancak karmaşık yapılandırma için komut satırı iyi çalışmaz ve ilk iki yöntemden hiçbirinin etkili olmayacağı konusunda daha iyisiniz. Bu durumda bir yapılandırma dosyası oluşturabilir ve __MAKE_CONF değişkeni ile make öğesine aktarabilirsiniz. FreeBSD'nin varsayılan bir yapılandırma dosyası vardır: /etc/make.conf genellikle daha önce kurulmuş bağlantı noktaları ve diğer sistem ayarları hakkında bilgi içerir. Başlamak için bağlantı noktası seçeneklerinizle bir dosya oluşturun, ~/myport.mk ve ardından bu dosyayı /etc/make.conf ile birleştirin:

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

daha sonra yapılandırmanızı tekrar kontrol edebilirsiniz:

make showconfig __MAKE_CONF=~/make.port.conf

ve her şey iyi görünüyorsa:

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

DİKKAT! Yapılandırma ayarlarınızı make configure veya bir bölümün tamamını veya bir kısmını önce yapılandırmanızı kesinlikle temizlemeniz gerekir :

make rmconfig

Bunu yapmazsanız, bağlantı noktaları alt sistemi, bağlantı noktanızın make varsayılanları ve istediğiniz yapılandırma arasında beklenmeyen etkileşimler oluşur.

Bu bir özet için çok fazla, ancak yapılandırmanın karmaşıklığı bağlantı noktasıyla değil, çoğunlukla uygulama ile ilgilidir. Örneğin Bash, gerçekten hiçbir seçeneğe sahip değil.

Kurulum

Bu kolay kısmı:

make install clean

ya da yapabilirsin

make build
make install
make clean

bu sadece daha fazla yazım.

Hepsi bukadar. Açıkçası, bağımlılıkları ve yapılandırma seçeneklerini tekrar tekrar listeleme, yamalar ile güncelleme ve benzeri gibi yapabileceğiniz daha çok şey var. Burada sizi El Kitabı , bağlantı noktası alt sisteminin kılavuz sayfasının (ek hedefler hakkında iyi bilgi) ve make man sayfasının Bağlantı Noktaları bölümüne yönlendireceğim .

1
gvkv

Son zamanlarda paket yöneticimin dışında bir kaynaktan yükleme yaparken "Checkinstall" u kullanmaya başladım. 3. taraf tarball'dan daha sonra paket yöneticisi araçlarınız aracılığıyla kurulabilen ve yönetilebilen (ve kaldırılabilen) bir "paket" oluşturur.

Bu makaleye göz atın - http://www.linuxjournal.com/content/using-checkinstall-build-packages-source

0
aryeh