В строгом смысле бинарный файл - это файл, который не является символьно закодированным как читаемый человеком текст. Говоря более разговорно, «двоичный» относится к файлу, который является скомпилированным исполняемым кодом, хотя сам файл может быть не исполняемым (ссылаясь не столько на разрешения, сколько на возможность запуска в одиночку; некоторые файлы двоичного кода, такие как библиотеки, являются скомпилированы, но независимо от разрешений, они не могут быть выполнены сами по себе). Двоичный файл, который запускается как отдельный исполняемый файл, является «исполняемым», хотя не все исполняемые файлы являются двоичными файлами (и это касается разрешений: исполняемые текстовые файлы, которые вызывают интерпретатор через шебанг, такие как #!/bin/sh
также исполняемые файлы).
Что такое бинарный пакет?
Бинарный пакет в контексте Linux - это пакет приложения, который содержит (предварительно созданные) исполняемые файлы, а не исходный код.
Обратите внимание, что это не означает, что файл пакета сам по себе является исполняемым файлом. Файл пакета - это архив (вроде как a .zip
), который содержит другие файлы, а «двоичный» файл пакета - это тот, который конкретно содержит исполняемые файлы (хотя, опять же, исполняемые файлы не обязательно являются действительно двоичными файлами, и фактически двоичные пакеты могут использоваться для скомпилированные библиотеки, которые являются двоичным кодом, но не исполняемыми файлами). Однако для доступа к этим файлам пакет должен быть распакован.
Обычно об этом заботится система управления пакетами (например, apt / dpkg), которая загружает пакет, распаковывает и устанавливает двоичные файлы внутри вас.
В чем разница между бинарным пакетом и пакетом deb?
Нет, .deb
пакеты - это бинарные пакеты, хотя есть .deb
s, которые содержат исходные тексты, обычно они -src
добавляются к их имени.
Я запускаю какой-то прямой пакет в формате "xyz.linux.run". Что это за пакет?
Как правило, это самораспаковывающиеся двоичные пакеты; они работают, встраивая двоичную полезную нагрузку в сценарий оболочки. «Самораспаковывающийся» означает, что вам не нужно вызывать другое приложение (например, менеджер пакетов), чтобы распаковать и использовать их. Тем не менее, поскольку они не работают с менеджером пакетов, разрешение их зависимостей может быть не совсем удачным, и, следовательно, некоторые такие пакеты используют статически связанные исполняемые файлы (в них есть все необходимые библиотеки, встроенные в них), что приводит к потере памяти при использовании. ,