Saya ingin mendapatkan detail tentang paket biner dan menjalankannya di linux. Saya menjalankan sistem operasi Linux Debian base (Ubuntu / Linux mint).
- Bagaimana cara membangun paket biner dari sumber? Dan bisakah saya langsung mengunduh paket biner untuk aplikasi (seperti firefox, dll.) Dan game (seperti boswars, dll.)?
- Saya menjalankan beberapa paket langsung yang dalam format "xyz.linux.run" Apa paket ini? Apakah mereka independen dari ketergantungan? atau apakah ini paket biner pra-bangun?
- Cara membangunnya yang dapat dijalankan di sistem operasi linux dengan langsung "xyz.linux.run" di linux.
- Apa perbedaan antara paket biner dan paket deb?
Jawaban:
Dalam arti sempit, file biner adalah file yang tidak dikodekan karakter sebagai teks yang dapat dibaca manusia. Lebih tepatnya, "biner" mengacu pada file yang dikompilasi, kode yang dapat dieksekusi, meskipun file itu sendiri mungkin tidak dapat dieksekusi (merujuk tidak banyak pada izin untuk kapasitas untuk dijalankan sendiri; beberapa file kode biner seperti perpustakaan adalah dikompilasi, tetapi terlepas dari izin, mereka tidak dapat dieksekusi sendiri). Sebuah biner yang berjalan sebagai executable mandiri adalah "executable", meskipun tidak semua file yang dapat dieksekusi adalah binari (dan ini adalah tentang izin: file teks yang dapat dieksekusi yang memanggil seorang juru bahasa melalui sebuah shebang seperti
#!/bin/sh
juga executable).Paket biner dalam konteks linux adalah paket aplikasi yang berisi executable (pre-built), bukan kode sumber.
Perhatikan bahwa ini tidak berarti file paket itu sendiri yang dapat dieksekusi. File paket adalah arsip (semacam a
.zip
) yang berisi file lain, dan file paket "biner" adalah file yang secara khusus berisi file executable (walaupun sekali lagi, file executable tidak selalu benar-benar binari, dan pada kenyataannya paket biner dapat digunakan untuk kompilasi perpustakaan yang merupakan kode biner, tetapi tidak dapat dieksekusi). Namun, paket tersebut harus dibongkar agar Anda dapat mengakses file-file ini.Biasanya itu diurus untuk Anda oleh sistem manajemen paket (mis. Apt / dpkg) yang mengunduh paket dan membongkar dan menginstal binari di dalamnya untuk Anda.
Tidak ada -
.deb
paket adalah paket biner, meskipun ada.deb
yang mengandung sumber, ini biasanya-src
ditambahkan ke namanya.Itu umumnya paket biner yang mengekstraksi sendiri; mereka bekerja dengan menanamkan muatan biner ke dalam skrip shell. "Self-extracting" berarti Anda tidak perlu menjalankan aplikasi lain (seperti manajer paket) untuk membongkar dan menggunakannya. Namun, karena mereka tidak bekerja dengan manajer paket, menyelesaikan dependensi mereka mungkin lebih merupakan omong kosong dan karenanya beberapa paket seperti menggunakan executable yang terhubung secara statis (mereka memiliki semua perpustakaan yang diperlukan dibangun ke dalamnya) yang membuang-buang sedikit memori ketika mereka digunakan .
sumber
karena sisa pertanyaan Anda dijawab oleh goldilocks, saya akan menimbang pada bagian pertama, bagaimana membangun sesuatu dari sumber.
Versi yang benar-benar singkat adalah bahwa ketika Anda mengunduh file sumber dari internet, file tersebut biasanya memiliki readme yang terkait dengannya, yang akan memberi tahu Anda dengan tepat bagaimana cara menjalankan dan menjalankan program.
Tetapi memberitahu Anda untuk membaca readme tidak benar-benar menjawab pertanyaan, jadi dalam arti dasar, Anda dapat menulis program yang sangat mendasar yaitu
dan ketik
gcc helloWorld.c
dangcc
akan membangun biner itu dan mengeluarkan program yang menulis "Hello World!" ke konsol saat dijalankan.Ok, jadi sekarang Anda telah membangun sebuah program, tetapi bukankah itu harus mengetikkan setiap file sumber tunggal yang ingin Anda kompilasi setiap kali Anda perlu mengkompilasi sesuatu? Itu untuk apa
makefiles
. Jika Anda menjalankan seluruh program yang memiliki banyak file sumber biasanya akan datang dengan makefile atau beberapa file yang membangun otomasi (ant
,Cmake
, atauautoconf
atau sesuatu).Untuk membangun jenis program ini, cukup jalankan
make <build target>
di dalam direktori. Makefile untuk program hello world saya mungkin menyertakan target yang disebuthelloworld
yang hanya mengkompilasi helloWorld.c. Saya akan menjalankan inimake helloworld
dan akan menghasilkan biner.Perhatikan bahwa membangun sesuatu dari sumber dapat memakan waktu yang sangat lama dan sejumlah besar memori ( tim Chromium bahkan merekomendasikan hard drive kedua untuk membangun sumbernya! ). Juga perhatikan bahwa ketika Anda membangun sesuatu dari sumber Anda harus berurusan dengan dependensi, daripada manajer paket yang melakukannya untuk Anda
sumber