Setara dengan file '.msi' dan 'setup.exe' di Debian atau Ubuntu?

15

Jawaban ini menjelaskan .msidan setup.exefile untuk menginstal aplikasi pada Windows.

Apakah ada padanan dengan .msidan ke setup.exefile dalam Debian atau Ubuntu? Do .debfile paket sesuai dengan .msiatau setup.exeatau sesuatu yang lain?

StackExchange untuk Semua
sumber
8
Saya tidak tahu mengapa Anda menanyakan hal ini, jadi saya akan mengatakan ini sebagai komentar umum untuk siapa saja yang menemukan pertanyaan ini. Meskipun ada cara untuk menginstal perangkat lunak "secara manual", cara yang disukai oleh sebagian besar distribusi Linux (dan sangat disarankan) adalah menginstal perangkat lunak melalui manajer paket. Dengan cara ini Anda secara otomatis mendapatkan pembaruan keamanan dan ada beberapa tingkat pengujian yang dilakukan untuk memastikan kompatibilitas dengan distribusi. Jika Anda memerlukan perangkat lunak versi terbaru dan terhebat yang tidak tersedia di repo utama, gunakan repo komunitas (mis. PPA di Ubuntu), tetapi selalu gunakan manajer paket.
Muzer
Tidak ada .setupfile di Windows, maksud Anda setup.exeyang merupakan nama khas untuk penginstal?
gronostaj
Lihat yang apt-gethalaman manual dan dokumentasi terkait dari sana. Tidak ada padanan pada Windows bahkan untuk apt-get install, apalagi pada dasarnya hal-hal lain yang dapat dilakukan.
jthill
5
@jthill, itu tidak benar. Ini tidak sepenuhnya berdaging atau sepopuler apt-get, tetapi versi terbaru (Win7 dan lebih tinggi) dari Powershell memiliki OneGetmelalui mana Anda dapat menginstal Chocolatey(setara dengan Homebrewpada Mac). Mereka mungkin kurang populer daripada 'nix equivalents mereka, tetapi untuk mengatakan bahwa tidak ada yang setara pada Windows secara terang-terangan salah.
mulai
1
@ Tim: pertanyaan ini tidak dapat dijawab bijaksana tanpa Anda menentukan apa tepatnya yang Anda maksud dengan "setara". Apa yang spesifik properti dari .msifile dan installer yang Anda tertarik? Apa kriteria yang tepat untuk menentukan apakah sesuatu itu "setara" atau tidak? Sebagai contoh: installer hanyalah program seperti program lainnya. Sama sekali tidak ada yang istimewa tentang sebuah program bernama setup.exe. Karena setup.exehanya sebuah program seperti program lain, dan Debian pasti tidak memiliki konsep "Program", apakah Anda menganggap bahwa setara? Jika tidak, mengapa tidak?
Jörg W Mittag

Jawaban:

28

Mungkin lebih dekat dengan installer MSI dari setup.exe, satu .debpaket termasuk pohon file untuk menyalin ke filesystem, serta koleksi pra dan pasca-instalasi kait untuk menjalankan (antara lain). Pengait dapat secara efektif melakukan apa saja pada sistem, termasuk sesuatu yang saya pikir tidak pernah saya lihat di Windows: menambahkan pengguna untuk layanan sistem. Satu hal yang tidak dapat mereka lakukan adalah menginstal .debpaket lain - basis data dikunci selama instalasi, jadi ini hanya dapat dicapai melalui dependensi. Menginstal .debpaket kemudian menghasilkan entri dalam database pusat dari paket yang diinstal untuk kemudahan perawatan.

The ttf-mscorefontspaket menarik dalam bahwa paket itu sendiri hanya berisi script untuk download dan instal font. Script ini dieksekusi di salah satu kait ini.

Lebih dekat ke setup.exemungkin mengunduh kode sumber progam dari beranda proyek, kemudian menjalankan ./configure && make && sudo make install, atau apa pun metode lain yang penulis memutuskan untuk menggunakan. Karena metode ini tidak menambahkan paket ke database program yang diinstal, menghapusnya nanti bisa jauh lebih sulit.

Perbedaan lain adalah bahwa .debmenentukan ketergantungannya, sehingga instalasi yang tepat dapat dijamin. Sejauh yang saya tahu, di dunia Windows MSI tidak dapat menyebabkan instalasi MSI lain, jadi setup.exebiasanya digunakan untuk jenis pelacakan ketergantungan ini. Beberapa komentar mencatat bahwa MSI dapat menyebutkan dependensi, tetapi karena tidak ada database pusat MSI seperti ada untuk .debpaket, kehilangan dependensi hanya akan menyebabkan kegagalan untuk menginstal.

Jadi, .debada semacam di antara installer MSI dan a setup.exe. Paket ini dapat melakukan apa pun yang diinginkan selama kait sebelum dan sesudah pemasangan, dapat memberi nama dan biasanya menemukan dependensinya sendiri, dan meninggalkan catatan instalasi di lokasi pusat untuk kemudahan perawatan.

Rubah
sumber
2
Di Windows, setup.exeinstaller gaya juga terintegrasi ke dalam sistem pemasang yang dilacak (dengan uninstaller dll.). Dengan MSI dan .exeinstaller, dependensi ditangani dengan menyematkan dependensi pada installer ( mis. Installer VC yang dapat didistribusikan kembali atau installer DirectX) dan dengan menginstal dependensi DLL di samping executable (atau sebagai rakitan sistem). Begitu setup.exejuga mirip dengan .deb. Setara dengan membangun dari sumber juga membangun dari sumber pada Windows juga ;-).
Stephen Kitt
Saya lakukan tidak satu hal yang membuat MSIs lebih dekat dengan paket Debian dari executable setup: MSI tidak dapat menginstal MSI lain, seperti paket Debian tidak dapat menginstal paket lain (kecuali melalui dependensinya).
Stephen Kitt
@StephenKitt: setup.exeinstaller gaya sama sekali tidak "dilacak" oleh OS kecuali jika mereka menjalankan MSI di bawahnya (dan kemudian MSI yang dilacak). Fakta bahwa mereka memiliki kunci registri uninstall tidak ada hubungannya dengan ini. Itu seperti mengatakan setiap file dilacak karena terdaftar dalam sistem file.
user541686
2
MSI dapat dan sering (dalam produk yang lebih besar) memiliki dependensi, meskipun, mengingat bahwa tidak ada repositori pusat .MSI, biasanya yang terjadi ketika Anda melewatkan dependensi adalah bahwa mereka menolak untuk menginstal.
Matteo Italia
1
"sesuatu yang saya pikir belum pernah saya lihat di Windows: menambahkan pengguna untuk layanan sistem". Saya cukup yakin bahwa pemasang SQL Server, IIS dan Visual Studio melakukan ini. Tetapi mungkin kurang jelas karena model pengguna Windows sedikit lebih disempurnakan bahwa model Unix / Linux default (baik Anda root atau tidak) ..
MSalters
15

Installer biner file tunggal yang saya lihat di Linux adalah .shfile yang berisi skrip shell yang disatukan dengan gumpalan biner, seperti ini:

#!/bin/bash
tmpdir=$(mktemp -d /tmp/installer.XXX)
tail -n +6 "$0" | tar -xJf - -C "$tmpdir" || exit 1
sudo "$tmpdir/setup.sh"
rm -rf "$tmpdir"
exit
[binary content follows]

Ini pada dasarnya setara dengan setup.exeyang juga mengekstrak diri ke folder temp dan menjalankan installer nyata dari sana.

Dmitry Grigoryev
sumber
6

Diambil dari: /ubuntu/13415/what-are-run-files/13416#13416

File .run biasanya merupakan program yang dibuat khusus yang perlu dijalankan untuk menginstal program. ini tidak didukung secara umum karena mereka tidak melacak ke mana file pergi dan biasanya tidak menyediakan metode uninstall. tidak ada cara untuk memastikan apa yang akan dilakukan skrip pada sistem Anda sehingga dianggap tidak aman.

Mereka dekat dengan file exe windows dan karena itu datang dengan masalah yang sama.

Zumo de Vidrio
sumber