İkili paket nedir? Onları nasıl inşa edebilirim?


12

İkili paket hakkında ayrıntılı bilgi almak ve bunları linux üzerinde çalıştırmak istiyorum. Debian base (Ubuntu / Linux nane) Linux işletim sistemi kullanıyorum.

  1. Kaynaktan ikili paket nasıl oluşturulur? Ve doğrudan uygulamalar (firefox, vb.) Ve oyunlar (boswars, vb.) İçin ikili paketi indirebilir miyim?
  2. Ben "xyz.linux.run" formatında bazı doğrudan paket çalıştırmak Bu paket nedir? Bağımlılıklardan bağımsız mı? veya Önceden oluşturulmuş ikili paketler mi?
  3. Doğrudan Linux üzerinde "xyz.linux.run" ile linux işletim sisteminde çalıştırılabilecek nasıl oluşturulur.
  4. İkili paket ve deb paketi arasındaki fark nedir?

İkili paketin nasıl oluşturulacağını kaynaktan buldunuz mu ?!
Dr.jacky

Yanıtlar:


17

Tam anlamıyla ikili dosya, insan tarafından okunabilir metin olarak kodlanmamış karakterdir. Daha genel olarak, bir "ikili" derlenmiş bir dosyaya, yürütülebilir koda karşılık gelir, ancak dosyanın kendisi çalıştırılamayabilir (tek başına çalıştırılacak kapasiteye ilişkin izinlere o kadar çok değinmez); kütüphaneler gibi bazı ikili kod dosyaları derlenir, ancak izinlere bakılmaksızın, tek başlarına yürütülemezler). Tek başına yürütülebilir bir dosya olarak çalışan bir ikili dosya "yürütülebilir" olsa da, tüm yürütülebilir dosyalar ikili değildir (ve bu izinler ile ilgilidir: çalıştırılabilir dosyalar gibi bir shebang aracılığıyla bir yorumlayıcı çağıran yürütülebilir metin dosyaları #!/bin/sh).

İkili paket nedir?

Linux bağlamındaki ikili paket, kaynak kodun aksine (önceden oluşturulmuş) yürütülebilir dosyaları içeren bir uygulama paketidir.

Bunun, bir paket dosyasının kendisinin çalıştırılabilir olduğu anlamına gelmediğini unutmayın. Bir paket dosyası .zipdiğer dosyaları içeren bir arşivdir (a türü gibi ) ve "ikili" paket dosyası özellikle yürütülebilir dosyaları içeren bir dosyadır (yine de yürütülebilir dosyalar mutlaka ikili dosyalar değildir ve aslında ikili paketler için kullanılabilir) ikili kod olan, ancak yürütülebilir olmayan derlenmiş kitaplıklar). Ancak, bu dosyalara erişebilmeniz için paketin ambalajından çıkarılması gerekir.

Genellikle bu, paketi indiren ve içindeki ikili dosyaları açıp yükleyen bir paket yönetim sistemi (örneğin apt / dpkg) tarafından halledilir.

İkili paket ve deb paketi arasındaki fark nedir?

Orada değil - .debpaketler ikili paketler, olmasına rağmen .debgenellikle bu adres yerine kaynağı içerebilir ler -srckendi adına eklenmiş.

Ben "xyz.linux.run" formatında bazı doğrudan paket çalıştırmak Bu paket nedir?

Bunlar genellikle kendiliğinden açılan ikili paketlerdir; ikili bir yükü bir kabuk betiğine gömerek çalışırlar. "Kendiliğinden açılan", paketi açmak ve kullanmak için başka bir uygulamayı (paket yöneticisi gibi) çağırmanız gerekmediği anlamına gelir. Ancak, bir paket yöneticisi ile çalışmadığından, bağımlılıklarını çözmek bir crapshoot olabilir ve bu nedenle bu tür bazı paketler, kullanıldıklarında biraz bellek harcayan statik olarak bağlı yürütülebilir dosyalar (bunlara yerleşik tüm gerekli kütüphanelere sahiptir) kullanır. .


Mükemmel Cevap !, Bu Sorulardan ayrılmalıyım: Kaynaktan önceden oluşturulmuş yürütülebilir (ikili paket) nasıl oluşturulur?
Pandya

Evet, burada zaten bir şekilde cevaplanmadıysa, bu tek başına iyi bir soru olurdu.
goldilocks

6

Sorunuzun geri kalanı goldilocks tarafından yanıtlandığından, ilk bölümde, şeyleri kaynaktan nasıl inşa edeceğimi tartışacağım.

Gerçekten kısa versiyonu, kaynak dosyaları internetten indirdiğinizde, genellikle onlarla ilişkilendirilmiş bir benioku olacaktır, bu da programı tam olarak nasıl çalıştıracağınızı ve çalıştıracağınızı söylemelidir.

Ama benioku okumayı söylemeniz soruyu gerçekten cevaplamıyor, bu yüzden temel anlamda, çok basit bir program yazabilirsiniz.

    #include <stdio.h>

    int main( ) {
        printf("Hello World!");
    }

yazın gcc helloWorld.cve gccbu ikili dosyayı oluşturun ve "Merhaba Dünya!" çalıştırdığınızda konsola bağlayın.

Tamam, şimdi bir program oluşturdunuz, ancak her şeyi derlemek istediğinizde derlemek istediğiniz her bir kaynak dosyayı yazmak zorunda kalmaz mıydınız? Bunun makefilesiçin. Eğer genellikle bir makefile veya başka yapı otomasyon dosyası (birlikte gelecek kaynak dosyaları bir demet sahip bir program üzerinde çalıştırırsanız ant, Cmakeya autoconffalan).

Bu tür programları oluşturmak make <build target>için dizinin içinde çalıştırın . Merhaba dünya programım için bir makefile, helloworldsadece helloWorld.c'yi derleyen bir hedef içerebilir. Ben tarafından çalıştırmak make helloworldve bir ikili çıktı.

Bir şeyleri kaynaktan inşa etmenin çok uzun zaman ve büyük miktarda bellek alabileceğini unutmayın ( Chromium ekibi, kaynaklarını oluşturmak için ikinci bir sabit disk bile önerir! ). Ayrıca, bir şeyi kaynaktan oluştururken, bunu sizin için yapan paket yöneticisi yerine bağımlılıklarla uğraşmanız gerekeceğini unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.