Как обнаружить архитектуру пакета .deb?

Глупый способ заставить его работать - отключить прокси на некоторое время, используя system settings > Network.

Или удалить конфигурацию прокси из /etc/environment и /etc/apt/apt.conf

И добавьте конфигурацию прокси-сервера вручную, как только вам понадобится прокси-сервер.

1
задан 13 August 2015 в 13:04

2 ответа

DEB-пакет - это просто архив с очень конкретным содержимым. Вы можете открыть его в любом менеджере архивов, который вам нравится (например, File Roller или что-то еще), и содержимое будет выложено так, как если бы вы его опустели в /. Все, что вам нужно сделать, это найти двоичный файл и запросить его тип файла. Обычно это не требуется - если имя файла имеет i386, оно должно быть i386. Ваш случай определенно ненормален, так что мне интересно, как поддерживают пакеты, чтобы это произошло.

1
ответ дан 23 May 2018 в 18:16
  • 1
    Это сработало. Я открыл файл .deb с моим менеджером архива, переместился в /usr/bin внутри архива и извлек двоичный файл qtox. Запуск команды file на нем произвел известное 64-битное описание. Не могли бы вы немного автоматизировать эту процедуру, если теперь известно имя бинарного файла внутри файла? Маленький скрипт, который автоматически открывает архив, извлекает двоичный файл, например. мой дом или какой-либо временный каталог, распечатывает его file вывод и удаляет его снова, будет наилучшим возможным ответом. – Byte Commander 13 August 2015 в 13:14

Каждый пакет deb объявляет архитектуру, например. «i386» или «все». Однако это только объявление, и оно может быть объявлено неверным (намеренно по какой-либо причине или, например, по ошибке в сценарии построения пакета).

Что вы можете проверить подлинную архитектуру пакета: ! d1]

# verify, if package supports multiple architectures (and possibly has some bug):
dpkg --print-foreign-architectures package.deb

# unpack and check executables inside:
dpkg --unpack package.deb
dpkg --contents package.deb |grep ^-rwxr-xr-x |awk "{ print \$6 }" |grep -v /etc/

# and then check a few random unpacked executables using:
file ./usr/bin/some-executable
-1
ответ дан 23 May 2018 в 18:16
  • 1
    Подождите, это распакует содержимое пакета в /usr/bin/ ??? Я не хочу, чтобы он был распространен там, особенно, чтобы предотвратить его переписывание моей текущей установки последней доступной реальной 32-битной версии. И я хочу избавиться от всех этих файлов после проверки, поэтому, пожалуйста, убедитесь, что все это остается в одной временной папке, которую я могу легко уничтожить позже. – Byte Commander 13 August 2015 в 12:58
  • 2
    [F1] – A.B. 13 August 2015 в 13:07
  • 3
    dpkg --unpack package.deb дает dpkg: error: requested operation requires superuser privileg – A.B. 13 August 2015 в 13:09
  • 4
    @ A.B. ответ приближается. Вы можете извлечь его в текущий каталог, используя dpkg-deb: dpkg-deb --fsys-tarfile | tar x ./usr/bin. Затем вы можете сделать: file ./usr/bin/qtox – muru 13 August 2015 в 13:59
  • 5
    dpkg --unpack извлекает файлы в текущий каталог, а не в корневой каталог. – Tomasz Klim 13 August 2015 в 16:21

Другие вопросы по тегам:

Похожие вопросы: