Если появилась ситуация, в которой Вы не можете открыть файл DEB на своем компьютере - причин может быть несколько. Первой и одновременно самой важной (встречается чаще всего) является отсутствие соответствующей аппликации обслуживающей DEB среди установленных на Вашем компьютере.
Самым простым способом решения этой проблемы является нахождение и скачивание соответствующей аппликации. Первая часть задания, уже выполнена, - программы для обслуживания файла DEB Вы найдете ниже. Теперь достаточно скачать и установить соответствующую аппликацию.
В дальнейшей части этой страницы Вы найдете другие возможные причины, вызывающие проблемы с файлами DEB.
Отсутствие возможности открытия и работы с файлом DEB, совсем не должен значить, что мы не имеем установленного на своем компьютере соответствующего программного обеспечения. Могут выступать другие проблемы, которые также блокируют нам возможность работы с файлом Debian Linux Package Format. Ниже находится список возможных проблем.
Если Вы уверены, что все перечисленные поводы отсутствуют в Вашем случае (или были уже исключены), файл DEB должен сотрудничать с Вашими программами без каких либо проблем. Если проблема с файлом DEB все-таки не решена, это может значить, что в этом случае появилась другая, редкая проблема с файлом DEB. В таком случае остается только помощь специалиста.
DEB файл - является установочным файлом для Linux OS, например в Debian или Ubuntu (как в Windows или .pkg на Mac OS), поэтому для его открытия не нужны дополнительные программы, достаточно кликнуть по нему два раза - он запустится.
НО! Если вы хотите запустить данный файл, не имея компьютера на Linux OS - вы можете использовать программу . Для простого извлечения файлов (не запуска), можно воспользоваться любым архиватором, например WinRar …
Формат файла.deb говорит о том, что в этом файле содержится установочный пакет операционной системы Debian, Ubuntu и других операционных систем построенных на Linux. Операционная система Debian является свободным программным обеспечением с исходным кодом, на данный момент она является одним из наиболее популярных — дистрибутивов Линукс.
Инсталляционный пакет для операционной системы Debian является не чем иным как архивным файлом, который сжат при помощи архиватора RAR , который нашёл своё применение в Линукс-системах, и имеет в своём составе два файла. Первый, из которых является служебной информацией, а второй представляет собой запакованное программное
Данная операционная система не имеет такой популярности как Windows, однако имеет целый ряд преимуществ, по которой её выбирают многие пользователи, так как в некоторых случаях она может быть значительно производительнее, а также она практически не подвержена вирусным атакам, так как вирусов под эту систему практически не существует. Также эта система и подобные ей являются очень частыми гостями на различных серверах.
В операционных системах этого типа установка может происходить двумя способами, первый из них заключается в компиляции приложения из исходных файлов, в которых содержится программный код. Второй метод подразумевает использование бинарных пакетов.
Теперь вы знаете как открыть deb и какие программы для этого использовать!
The .DEB extension stands for Debian Linux Package format files, which are used for installing software on Linux based platforms. Debian packages are also used on the iOS platform for distributing software.
Each DEB file always contains two tar archives and can optionally add one more. One of the archive contains the control information and the other one contains the actual installation data. The data file is always the last file in the DEB package. The optional file included in the package defines the version of the DEB package. The program used for handling DEB files is DPKG.
Искать в нашей базе расширений файлов
Ища ответ на вопрос - Как открыть файл DEB?- наверняка Вы несколько раз попадали на страницы, предлагающие программное обеспечение, открывающее все расширения файлов. Не позвольте обмануть себя, нет одной программы, которая позволила бы Вам работать со всеми расширениями файлов, включая файлы DEB. Каждый содержит другие данные и Вам необходима специальная программа, чтобы правильно работать с файлом DEB. Здесь находится список программ, предназначенных для работы с файлом DEB, - не забывайте, такие аппликации могут открыть только несколько расширений файлов, предназначенных для работы с конкретным типом данных.
Если после установки необходимой программы из списка, Вы по-прежнему не можете открыть файл с расширением DEB, поводом может быть его повреждение. Решением может быть нахождение новой копии файла DEB, который Вы собираетесь открыть
В таком случае проще всего воспользоваться встроенными в операционную систему инструментами для связи файла DEB с приложениями для его обслуживания. Нажмите дважды на файл, которой не можете открыть, - операционная система покажет список программ, которые вероятнее всего совместимы с Вашим файлом DEB. Выберите одну из них, либо укажите на диске место, в котором Вы установили одно из предложений из нашего списка. Система Windows должна открыть файл DEB с помощью предварительно установленной программы.
Может случится так, что компьютерный вирус подшивается под файл DEB. В таком случае, наверняка не будет возможности открытия такого файла. Скачайте любую хорошую антивирусную программу и сканируйте файл DEB. Если антивирусная программа обнаружит опасные данные, это может обозначать индикацию файла DEB.
Чтобы начать создавать deb пакеты, нужно установить несколько пакетов:$ sudo apt-get install dh_make
Папка должна называться имяпакета-версия . Т.е. если у меня есть папка Plugins с программой версии 0.1, то я создаю папку с именем plugins-0.1 .
$ ls
VKSPlugins
$ mv VKSPlugins/ libvksplugins-0.1
$ ls
libvksplugins-0.1
Теперь нужно создать архив с этой папкой. Архив должен содержать в имени *.orig.tar.gz
, т.е.:
$ tar -zcf libvksplugins_0.1.orig.tar.gz libvksplugins-0.1
$ ls
libvksplugins-0.1 libvksplugins_0.1.orig.tar.gz
Последний подготовительный шаг, это создание в папке с исходниками папки debian
со множеством служебных файлов. Чтобы это сделать, нужно выполнить команду:
$ cd libvksplugins-0.1/
$ dh_make
Type of package: single binary, indep binary,
multiple binary, library, kernel module, kernel patch?
l
Maintainer name: User Name
Email-Address: [email protected]
Date: Wed, 19 Aug 2015 14:55:53 +0300
Package Name: libvksplugins
Version: 0.1
License: blank
Type of Package: Single
Hit
В процессе выполнения этой команды будет задан вопрос о том, какой тип архива мы создаем, самый простой это single.
О типе пакета
На самом деле документация говорит, выбирать вариант только single
. Т.к. я не смог понять всех требований к пакету типа library
но меня вполне устраивает результат, то описание и дальше пойдет про пакет типа library
.
$ cat changelog
libvksplugins (0.1-1) unstable; urgency=low
* Initial release (Closes: #nnnn)
В начале идет название пакета - libvksplugins
, затем его версия. Версия делиться на две части символом «-». Первая часть показывает версию программы в пакете, вторая «ревизию» пакета. Ревизия это версия пакета, т.е. если раньше такого пакета не было, то ревизия равна 1. Если же пакет с такой версией программы уже был, но в нем произошли изменения, то ревизия увеличивается.
Слово unstable показывает, что пакет является не стабильным, т.е. он не был протестирован должным образом на машинах пользователей.
Надпись urgency=low показывает срочность изменения. Т.к. срочности нет, то значение равно low . Если бы, мы делали пакет для исправления серьезной уязвимости или ошибки, то значение можно было бы установить в high .
После первой строки идет пустая строка, а за ней первая запись:
* Initial release (Closes: #nnnn)
В Debian, changelog используется для автоматического закрытия ошибок в системах отслеживания ошибок в программных продуктах. Т.к. в данном случае, я не использую такую систему, то эта строка принимает вид:
* Initial release
Замечание
При проверке пакета программой lintian
, отсутствие Closes: #XXXX
считается ошибкой.
После установки deb пакета, файл changelog устанавливается в
/usr/share/doc/<пакет>/changelog.Debian.gz
$ cat control
Source: libvksplugins
Priority: optional
Maintainer: User Name
Видно, что файл разбит на секции при помощи пустых строк. Каждая секция описывает один пакет, создаваемый из папки с исходниками. Рассмотрим их по порядку:
Source Данная секция говорит о том, что нужно создать пакет исходных кодов. Параметром указано libvksplugins , это значит, что пакет исходных кодов будет называться libvksplugins .
Priority Эта секция устанавливает приоритет пакета. Т.к. система может прекрасно обойтись без нового пакета, то значение секции установлено в optional . Т.е. этот пакет не обязателен для установки. Подробнее о приоритетах написано .
Maintainer Эта секция описывает контакты человека, создающего пакет. Ее формат довольно прост и дополнительного описание не требует.
Build-Depends Одна из самых важных секций, устанавливающая зависимости пакета. Зависимости, указанные в данной секции должны быть выполнены, чтобы можно было собрать пакет. Т.е. список зависимостей для сборки и установки могут отличаться.
Видно, что в зависимостях стоят debhelper (>= 9), cmake . Зависимость debhelper (>= 9) ставиться для всех пакетов по умолчанию. Она нужна для корректной работы программ вида dh_* .
Второй элемент cmake был добавлен потому, что папка с исходниками содержала файл CMakeLists.txt , т.е. для сборки используется система сборки CMake . Для того, чтобы узнать, какие зависимости есть у программы, можно почитать ее документацию. Кроме этого, можно воспользоваться командой dpkg-depcheck . Данная команда должна запускаться так:
$ dpkg-depcheck -d ./configure
Но, т.к. при использовании CMake нет скрипта конфигурирования, то я использую ее так:
$ mkdir build && cd build
$ dpkg-depcheck -d cmake ../
.....
Packages needed:
libxml2:amd64
cmake
libkrb5support0:amd64
language-pack-ru-base
libnettle4:amd64
.....
libedit2:amd64
libtasn1-6:amd64
qt4-qmake
libgssapi-krb5-2:amd64
libhcrypto4-heimdal:amd64
.....
libroken18-heimdal:amd64
libsqlite3-0:amd64
libqt4-dev
libssl1.0.0:amd64
.....
Из примечательных тут можно отметить:
Cmake
qt4-qmake
libqt4-dev
Остальные являются зависимостями данных. Причем, cmake уже есть в списке зависимостей сборки. В принципе, можно его оставить как есть или указать используемую версию:
$ apt-cache show cmake | grep Version:
Version: 2.8.12.2-0ubuntu6
При этом в CMakeLists.txt указана версия cmake, которую нужно использовать:
$ cat CMakeLists.txt | grep cmake_minimum
cmake_minimum_required(VERSION 2.8.4)
Я думаю, что разработчику виднее, и поэтому указываю версию из CMakeLists.txt. Для Qt 4 все понятно с номерами версий, но для очистки совести проверим и их версии:
$ apt-cache show qt4-qmake | grep Version:
Version: 4:4.8.6+git49-gbc62005+dfsg-1ubuntu1.1
Version: 4:4.8.6+git49-gbc62005+dfsg-1ubuntu1
$ apt-cache show libqt4-dev | grep Version:
Version: 4:4.8.6+git49-gbc62005+dfsg-1ubuntu1.1
Version: 4:4.8.6+git49-gbc62005+dfsg-1ubuntu1
Т.е. для Qt 4 указываем версию 4.8.6:
Build-Depends: debhelper (>= 9), cmake (>= 2.8.4), qt4-qmake (>= 4.8.6), libqt4-dev (>= 4.8.6)
Standards-Version
Версия стандарта, в соответствии с которым создан файл. Это значение не нужно менять.
Section . Секция для пакета, т.е. группа пакетов, выполняющая одну задачу. В Политике Debian разделе 2.4 этот вопрос описан более подробно.
Homepage Домашняя страница проекта. Т.к. данный код писал я и у него нет страницы, просто удаляю эту строку.
Другие пакеты После секции файла, где описывается пакет с исходниками, идут секции, которые описывают другие пакеты, создаваемые из пакета с исходниками. Схема создания пакетов:
Из схемы видно, что из исходников программы, я хочу получить 4 пакета:
Мой персональный ответ на данный вопрос, заключается в том, что такое разбиение помогает структурировать программу по тому, как я хочу с ней работать. Для разработки я поставлю dev пакет, а для использования нет.
Кроме описанных выше пакетов, можно создать dbg пакет с отладочной сборкой программы. Это может пригодиться, если программа падает и у Вас есть под рукой отладчик. Однако, я так и не смог понять как это делать. Документация не дает ответа на этот вопрос. Если делать так как описано в ней, то я либо получаю пустой пакет либо получаю кучу ошибок при сборке.
Схема на рисунке выше показывает, что пакет с исходниками называется libvksplugins_source , однако, в файле control указано, что пакет с исходниками будет называться libvksplugins . На самом деле, он действительно будет называться libvksplugins , а пакет с бинарниками, будет называться libvksplugins… deb . Суть этой путаницы в том, что пакет с исходниками представляет собой tar архив и служебные файлы, тогда как пакет бинарников это архив с расширение deb.
Настройка пакета библиотеки Посмотрим внимательно на описание пакета библиотеки:
Package: libvksplugins
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Library for creating plugins with VKS 2
This library provides a mechanism for creating plugins
to use in project VKS 2.
Параметр Architecture устанавливает архитектуру собираемого пакета. Значение any означает, что после сборки бинарников нужная архитектура будет подставлена системой сборки. Т.е. на 64х битной машине, получится пакет ..._amd64... а на 32х битной пакет ..._i386... .
Для пакетов, содержащих скрипты или тексты, нужно указывать значение как all .
Третья строка, описывает зависимости создаваемого пакета. Вот как она описана в 4й главе Руководства начинающего разработчика Debian:
Утилита dh_shlibdeps вычисляет зависимости двоичного пакета от общих библиотек. Она генерирует список исполняемых файлов ELF и общих библиотек, которые находит для каждого двоичного пакета. Этот список подставляется вместо ${shlibs:Depends} .Утилита dh_perl вычисляет зависимости Perl. Она генерирует список зависимостей от perl или perlapi для каждого двоичного пакета. Этот список подставляется вместо ${perl:Depends} .
Некоторые команды пакета debhelper могут добавлять зависимости к вашему генерируемому пакету. Каждая команда генерирует список необходимых пакетов для каждого двоичного пакета. Этот список подставляется вместо
${misc:Depends} .Утилита dh_gencontrol генерирует файл DEBIAN/control для каждого двоичного пакета, заменяя ${shlibs:Depends} , ${perl:Depends} , ${misc:Depends} и т.д на полученные значения.
Последний раздел данной секции это описание пакета. Первая строка содержит кратное описание, последующие строки содержат более подробное описание. Подробное описание, должно иметь определенный формат:
Package: libvksplugins-dev
Section: libdevel
Architecture: any
Depends: libvksplugins (= ${binary:Version}), ${misc:Depends}
Description: Development package for libvksplugins
This package provides development files for
library libvksplugins.
.
Also, it contains pkg-config file, to use.
В данном примере, интересна строка Depends . В ней указано, что данный пакет будет зависеть от пакета библиотеки libvksplugins , причем (= ${binary:Version} ) говорит о том, что необходимо строгое совпадение версий бинарного пакета и пакета разработчика. Это важный момент потому, что заголовочные файлы должны строго соответствовать бинарникам.
Настройка пакета документации Вместе с библиотекой поставляется документация, чтобы она была в отдельном пакете, добавляем его описание:
Package: libvksplugins-doc
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Documentation for libvksplugins
Package contains html documentation files for libvksplugins
Тут должно быть все понятно.
$ cat rules
#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#DH_VERBOSE = 1
# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk
# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
# main packaging script based on dh7 syntax
%:
dh $@
# debmake generated override targets
# This is example for Cmake (See http://bugs.debian.org/641051)
#override_dh_auto_configure:
# dh_auto_configure -- \
# -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)
Видно, что это bash скрипт с синтаксисом Makefile. Единственная интересная конструкция здесь это
%:
dh $@
Это шаблон, который для всех целей вызывает dh команду с передачей аргументов ей. Для сборки пакета важно, чтобы текст dh $@
начитался с символа табуляции. Т.е. отступ это не пробелы, а табуляция.
Т.к. исходники используют систему сборки CMake, то нужно изменить эту запись следующим образом:
%: dh $@ --buildsystem=cmake
Посмотрим на их содержимое:
$ cat libvksplugins-dev.dirs
usr/lib
usr/include
$ cat libvksplugins-dev.install
usr/include/*
usr/lib/lib*.a
usr/lib/lib*.so
usr/lib/pkgconfig/*
usr/share/pkgconfig/*
Важный момент, отсутствие начальной дроби в путях и отсутствие дроби в конце пути к папке. Проверив, куда CMake устанавливает файлы библиотеки, можно сформировать такие файлы:
$ for item in $(ls libvksplugins*); do echo "$item:"; cat $item; done libvksplugins-dev.dirs: usr/include/dep572 usr/lib/pkgconfig libvksplugins-dev.install: usr/include/dep572/plugins/* usr/lib/dep572/lib*.so usr/lib/pkgconfig/* libvksplugins.dirs: usr/lib/dep572 libvksplugins-doc.dirs: usr/share/doc/libplugins-0.1 libvksplugins-doc.install: usr/share/doc/libplugins-0.1/*.tgz libvksplugins.install: usr/lib/dep572/lib*.so.*
$ dpkg-buildpackage -rfakeroot -us -uc
Параметры -us -uc
говорят о том, что не нужно подписывать gpg ключом созданные пакеты. Их можно не использовать, если настроен ключ подписи gpg по умолчанию. Как указать ключ подписи по умолчанию, я тоже не понял. Если все прошло хорошо, то у нас поваляется набор пакетов в папке выше:
$ ls -l ../ итого 748 drwxrwxr-x 10 user user 4096 авг. 20 10:46 libvksplugins-0.1 -rw-rw-r-- 1 user user 2210 авг. 20 10:47 libvksplugins_0.1-1_amd64.changes -rw-r--r-- 1 user user 6418 авг. 20 10:47 libvksplugins_0.1-1_amd64.deb -rw-rw-r-- 1 user user 1504 авг. 20 10:46 libvksplugins_0.1-1.debian.tar.xz -rw-rw-r-- 1 user user 1008 авг. 20 10:46 libvksplugins_0.1-1.dsc -rw-rw-r-- 1 user user 36713 авг. 19 14:52 libvksplugins_0.1.orig.tar.gz -rw-r--r-- 1 user user 3262 авг. 20 10:47 libvksplugins-dev_0.1-1_amd64.deb -rw-r--r-- 1 user user 699564 авг. 20 10:47 libvksplugins-doc_0.1-1_all.deb
Этот текст является результатом моего опыта внедрения deb пакетов на работе. Опыт показал, что наличие сетевого репозитория (reprepro) и внимательное отслеживание версий, позволяют без проблем обновлять и тестировать различные версии ПО на парке из 30 машин с системами Astra Linux 1.3, 1.4 и Эльбрус ОС.
Можно устанавливать стороннее программное обеспечение. Для этого используются файлы с расширением.DEB. Их открывают через Центр приложений, терминал или утилиты. Легче всего это сделать при помощи графического интерфейса. Но пользователи, которые раньше не работали в такой ОС, вряд ли смогут разобраться без инструкции. В Ubuntu установка DEB-пакета немного отличается от запуска EXE-файлов в Windows.
Чтобы утилита работала без ошибок, её лучше загружать из Центра приложений Линукс (ЦП). Так вы точно получите официальное ПО. Оно будет самостоятельно обновляться. Можно поискать файлы на сайте разработчика нужной вам программы. Обращайтесь к неофициальным источникам в крайнем случае: например, когда на компьютере нет доступа в интернет . Также ручная установка DEB актуальна, если вы не нашли утилиту в ЦП.
Если на компьютере отключена сеть, это единственный способ поставить на него драйвера. Лучше искать их на сайте launchpad.net. Введите в строку поиска «Linux-Firmware». Далее выбирайте дистрибутив и архитектуру.
Для работы пакета нужны библиотеки, от которых он зависит. Такие объекты есть и в других ОС. Например, в Windows это DLL-файлы . При инсталляции ПО из Центра недостающие дополнения будут устанавливаться автоматически. А со сторонними утилитами всё не так просто. Если библиотек нет, и ЦП их не подгрузил, значит, их надо качать вручную.
Самое простое - инсталляция DEB-пакета через графический интерфейс. Он напоминает проводник Win. Но отличия всё же есть.
Так вы запускаете файлы через Центр приложений. Он часто тормозит и «неправильно» открывает утилиты. Поэтому лучше использовать консоль.
Вот как установить DEB-пакет на Ubuntu, используя консольные команды:
Существуют и другие утилиты для загрузки установщиков.
Если её у вас нет, скачайте через терминал. Введите команду «sudo apt install gdebi». Служба появится в контекстном меню файлов. Использовать её просто:
Можно и через консоль «sudo gdebi [Путь_к_директории]/[Имя_пакета].deb». Программа сама загрузит связанные библиотеки, если компьютер подключен к интернету, и они есть в репозитории.
Вот как выглядит установка DEB в Ubuntu через программу Advanced Packaging Tool. Она подходит для локальных пакетов:
Теперь вы знаете, как установить DEB-пакет на Linux Ubuntu. Способов много. Можно загружать программы с помощью интуитивно-понятного интерфейса или терминала. Дополнительные библиотеки, от которых зависит утилита, тоже надо качать. В результате вы поставите не один пакет, а несколько.