Яка різниця між створенням .deb-файлів та їх встановленням та просто запуском .run-файлу ?
Яка різниця між створенням .deb-файлів та їх встановленням та просто запуском .run-файлу ?
Відповіді:
.deb
Файли - це пакети для dpkg , менеджера пакетів Debian низького рівня (який викликається під кришкою APT та його родичів). .deb
Файл представляє собою пакет для Debian або похідним , таких як Ubuntu або Mint.
Пакети Debian містять файли, що належать до цього пакету, а також "файл керування", який описує залежності цього пакету та іншу метаінформацію та сценарії встановлення, які виконуються під час встановлення, оновлення або видалення пакета.
Ви можете переглянути вміст .deb
файлу за допомогою dpkg -c
та dpkg -I
. Якщо у вас немає dpkg
, ви можете скористатись ar t foo.deb
списком частин .deb
файлу та ar x foo.deb control.tar.gz
вилученням control.tar.gz
частини (і аналогічно для інших частин).
Red Hat (і такі родичі, як CentOS і Fedora), SuSE та інші використовують rpm , різний формат з подібними характеристиками. Є й інші системи Unix.
.run
не є стандартним розширенням. .run
Файл імовірно то , що ви можете виконати. Він може встановити програму або зробити щось зовсім інше.
Загалом .deb-файл схожий на zip-файл, який містить файли разом із короткими сценаріями, які можуть запустити пост-інсталяцію для додавання користувачів, груп тощо до системи після встановлення.
Файл .run, як правило, є або єдиним двійковим виконуваним файлом, або сценарієм оболонки, який містить двійкову крапку, яку можна встановити. Якщо це різновид скрипту оболонки, він часто міститиме двійкову крапку, яка часто є синонімом рекурсивного zip-файлу або файлу tar. Іншими словами, він буде містити структури файлів файлів.
В іншому випадку цей .run-файл просто буде містити .deb або .rpm файли, які будуть викинуті на диск, і їх можна встановити окремо, або сценарій, що їх містив, скидає їх на диск, а потім спробує встановити їх за допомогою програмного забезпечення менеджера пакунків вашої системи.
Прикладом цього може бути, якщо ви завантажите Java JDK з Oracle. Це , як правило , один виконуваний файл , який при виконанні буде скидати .deb або .rpm файли на диск, а потім встановити їх the package management tools: dpkg
, apt
, yum
або rpm
.
Ось приклад того, як виглядатиме завантаження / установка з одним із цих .run-файлів. Розширення є .bin, але це просто косметично, розширення насправді не має ніякого іншого значення, крім того, щоб допомогти користувачам розрізняти різні типи файлів.
$ 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
Тут наведений вище файл видаляє пакунки для різних компонентів, що складають JDK, після чого ви можете встановити або всі, або лише ті, які вам потрібні.
Зробити це таким чином, можна зробити додаткові речі, крім того, щоб просто встановити пакет. Наприклад, Oracle має ліцензійну угоду, яку вони хочуть, щоб ви прийняли:
10.5 Ця Угода є всією угодою сторін, що стосується її предмета. Він витісняє всі попередні або одночасні усні чи письмові повідомлення, пропозиції, умови, подання та гарантії і переважає над будь-якими суперечливими чи додатковими темами будь-якої цитати, розпорядження, підтвердження чи іншого спілкування між сторонами, що стосуються її предмету, включаючи будь-яку Бі ліцензії коду, додаткові умови чи інші ліцензії, що містяться в ліцензійному програмному забезпеченні. Жодна зміна цієї Угоди не буде обов'язковою, якщо вона не буде письмово підписана уповноваженим представником кожної сторони.
Чи згодні ви з вищезазначеними ліцензійними умовами? [так або ні]
За допомогою цього вище інсталятора ви бачите, що він містить лише двійкову крапку каталогів файлів:
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/
...
У цьому випадку цей тип установки призначений не для виклику менеджера пакунків, а просто для скидання вмісту в одне дерево каталогів, щоб ви могли переміщати його навколо, де завгодно.
У виробничих середовищах часто буває так, що ви не хочете використовувати менеджер пакунків, а навпаки маєте більше контролю над розгортанням. Можливо, у вас є кілька додатків, які ви розгортаєте, і для кожного з них потрібна інша версія JDK. Використовуючи цей метод, ви можете мати їх співіснування простіше, ніж сказати через менеджер пакунків.
$ 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