Różnica między plikami .deb i .run

10

Jaka jest różnica między tworzeniem plików .deb a instalowaniem ich i uruchamianiem tylko pliku .run ?

Mandar Shinde
źródło
1
Czy masz na myśli konkretne przykłady?
slm

Odpowiedzi:

8

.debpliki są pakietami dla dpkg , niskiego poziomu menedżera pakietów Debiana (który jest wywoływany pod maską przez APT i jego krewnych). .debPlik jest pakiet Debiana lub pochodne, takie jak Ubuntu lub Mint.

Pakiety Debiana zawierają pliki, które należą do pakietu, a także „plik kontrolny”, który opisuje zależności pakietu i inne meta-informacje oraz skrypty instalacyjne, które są wykonywane, gdy pakiet jest instalowany, aktualizowany lub odinstalowywany.

Możesz spojrzeć na zawartość .debpliku za pomocą dpkg -ci dpkg -I. Jeśli nie masz dpkg, możesz użyć, ar t foo.debaby wyświetlić listę części .debpliku i ar x foo.deb control.tar.gzwyodrębnić control.tar.gzczęść (i podobnie w przypadku innych części).

Red Hat (i krewni, tacy jak CentOS i Fedora), SuSE i inni używają rpm , innego formatu o podobnych cechach. Są inne na innych systemach uniksowych.

.runnie jest standardowym rozszerzeniem. .runPlik jest przypuszczalnie coś można wykonać. Może zainstalować program lub zrobić coś zupełnie innego.

Gilles „SO- przestań być zły”
źródło
8

Ogólnie plik .deb jest podobny do pliku zip, który zawiera pliki wraz z krótkimi skryptami, które można uruchomić po instalacji, aby dodać użytkowników, grupy itp. Do systemu po instalacji.

Plik .run jest zwykle pojedynczym binarnym plikiem wykonywalnym lub skryptem powłoki zawierającym binarny obiekt blob, który można zainstalować. Jeśli jest to odmiana skryptu powłoki, często zawiera binarny obiekt blob, który często jest synonimem rekurencyjnego pliku zip lub pliku tar. Innymi słowy, będzie zawierać struktury katalogów plików.

Innym razem ten typ pliku .run będzie po prostu zawierał pliki .deb lub .rpm, które zostaną zrzucone na dysk i mogą być instalowane indywidualnie lub skrypt, który je zawiera, zrzuci je na dysk, a następnie spróbuje zainstalować je za pomocą oprogramowania do zarządzania pakietami w systemie.

Przykładem może być pobranie Java JDK z Oracle. To zazwyczaj pojedynczy plik wykonywalny, który po uruchomieniu będzie zrzucić .deb lub .rpm pliki na dysk, a następnie zainstalować je za pomocą the package management tools: dpkg, apt, yumlub rpm.

Przykład

Oto przykład, jak wyglądałoby pobieranie / instalacja z jednym z tych plików .run. Rozszerzenie to .bin, ale jest to po prostu kosmetyczne, rozszerzenie nie ma tak naprawdę żadnego innego znaczenia, jak pomóc użytkownikom w rozróżnieniu różnych typów plików.

$ wget http://www.java.net/download/jdk7/archive/b125/binaries/jdk-7-ea-bin-b125-linux-x64-13_jan_2011.bin
$ ./jdk-7-ea-bin-b125-linux-x64-13_jan_2011.bin

Tutaj powyższy plik zrzuci pakiety dla różnych komponentów tworzących JDK, po czym możesz zainstalować wszystkie lub tylko te, których potrzebujesz.

Zrób to w ten sposób, umożliwiając wykonanie dodatkowych czynności poza instalacją pakietu. Na przykład Oracle ma umowę licencyjną, którą chcą zaakceptować:

10.5 Niniejsza Umowa stanowi całość porozumienia stron dotyczącego jej przedmiotu. Zastępuje wszystkie wcześniejsze lub równoczesne komunikaty ustne lub pisemne, propozycje, warunki, oświadczenia i gwarancje i ma pierwszeństwo przed wszelkimi sprzecznymi lub dodatkowymi warunkami jakiegokolwiek cytatu, zamówienia, potwierdzenia lub innej komunikacji między stronami związanymi z jej przedmiotem, w tym Inne licencje na kod, dodatkowe warunki lub inne licencje zawarte w licencjonowanym oprogramowaniu. Żadne modyfikacje niniejszej Umowy nie będą wiążące, chyba że na piśmie i podpisane przez upoważnionego przedstawiciela każdej ze stron.

Czy zgadzasz się na powyższe warunki licencji? [Tak lub nie]

Dzięki powyższemu instalatorowi możesz zobaczyć, że zawiera on tylko binarną kroplę katalogów plików:

Extracting...
UnZipSFX 5.52 of 28 February 2005, by Info-ZIP (http://www.info-zip.org).
   creating: jdk1.7.0/
   creating: jdk1.7.0/lib/
  inflating: jdk1.7.0/lib/jexec      
   creating: jdk1.7.0/lib/visualvm/
   creating: jdk1.7.0/lib/visualvm/visualvm/
   creating: jdk1.7.0/lib/visualvm/visualvm/modules/
  inflating: jdk1.7.0/lib/visualvm/visualvm/modules/com-sun-tools-visualvm-attach.jar  
  inflating: jdk1.7.0/lib/visualvm/visualvm/modules/com-sun-tools-visualvm-host-views.jar  
   creating: jdk1.7.0/lib/visualvm/visualvm/modules/locale/
...

W takim przypadku instalacja tego typu nie ma na celu przywoływać menedżera pakietów, ale po prostu zrzucić zawartość do jednego drzewa katalogów, aby można było przenosić ją w dowolne miejsce.

W środowiskach produkcyjnych często zdarza się, że nie chcesz używać menedżera pakietów, ale raczej mieć większą kontrolę nad wdrożeniami. Być może masz kilka aplikacji, które wdrażasz i każda z nich wymaga innej wersji JDK. Korzystając z tej metody, możesz sprawić, by wszystkie one współistniały łatwiej niż powiedzą to przez menedżera pakietów.

$ pwd
/home/saml/jdk1.7.0
[saml@grinchy jdk1.7.0]$ ls -l
total 19308
drwxr-xr-x  2 saml saml     4096 Jan 13  2011 bin
-r--r--r--  1 saml saml     2487 Jan 13  2011 COPYRIGHT
drwxr-xr-x  5 saml saml     4096 Jan 13  2011 db
drwxr-xr-x 11 saml saml     4096 Jan 13  2011 demo
drwxr-xr-x  3 saml saml     4096 Jan 13  2011 include
drwxr-xr-x  6 saml saml     4096 Sep 29 10:57 jre
drwxr-xr-x  3 saml saml     4096 Sep 29 10:57 lib
-r--r--r--  1 saml saml     9005 Jan 13  2011 LICENSE
drwxr-xr-x  4 saml saml     4096 Jan 13  2011 man
-r--r--r--  1 saml saml    25379 Jan 13  2011 README.html
-r--r--r--  1 saml saml    20320 Jan 13  2011 README_ja.html
-r--r--r--  1 saml saml    15160 Jan 13  2011 README_zh_CN.html
-r--r--r--  1 saml saml     5348 Sep 29 10:58 register.html
-r--r--r--  1 saml saml     5645 Sep 29 10:58 register_ja.html
-r--r--r--  1 saml saml     4951 Sep 29 10:58 register_zh_CN.html
drwxr-xr-x  8 saml saml     4096 Jan 13  2011 sample
-rw-r--r--  1 saml saml 19631790 Jan 13  2011 src.zip

Bibliografia

slm
źródło