Сообщается ли файл как & ldquo; не динамический исполняемый файл & rdquo; по 'ldd' зависят от других библиотек?

Просто убедитесь, что я понял это правильно - я вызываю

ldd /path/to/executable

и возвращает «не динамический исполняемый файл». Это означает, что это не зависит от других библиотек, правильно? Если да, значит ли это, что он может быть перенесен в другое поле Ubuntu, не беспокоясь о зависимостях?

1
задан 28 December 2012 в 08:08

1 ответ

@Calmarius прав, это происходит, если вы рассматриваете 32-битный exe, даже без базовых 32-битных библиотек.

Я пытаюсь обновить свою систему (новая установка Ubuntu 16.04, с 12.04), мне нужно установить старую утилизационную 32-битную службу, avserver, для которой требуется ia32-libs (no-longer доступный). Это означает, что dpkg и apt-get недовольны (что бы я ни делал, это подсказывает мне apt-get -f install, и если я запустил это, он настаивает на том, чтобы удалить пакет услуг), и моя служба не запустится.

Чтобы доказать, что это до недостающих 32-битных библиотек, я смонтировал мою старую систему (Ubuntu 12.04, с ia32-libs и 32-битными библиотеками] на /sda2. Обеспечение /opt (содержащего мой 32-битный двоичный файл) смонтировано в /sda2/opt, я могу chroot /sda2 и ldd выполнять по назначению.

Чтобы исправить это, я мог бы вручную установить все зависимые библиотечные пакеты с помощью: i386 (arch). Однако я решил вместо того, чтобы попытаться выяснить, каковы мои зависимости, я установил вино (которое в основном 32-битное, и поэтому устанавливает базовые библиотеки и загружает больше, что мне действительно не нужно, но я в порядке).

Чтобы исправить dpkg и apt-get, я редактировал /var/lib/dpkg/status, находил пакет для моей службы и удалял ia32-libs. Теперь dpkg и apt-get счастливы

Это сделано, ldd с радостью сообщает: - root@withnail:/opt/<service path># ldd avserver linux-gate.so.1 => (0xf77a6000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf778f000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7772000) libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xf776b000) libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xf7752000) libcrypt.so.1 => /lib/i386-linux-gnu/libcrypt.so.1 (0xf7720000) libktssl.so.1.0.0 => /opt/<service path>/libktssl.so.1.0.0 (0xf76cb000) libktcrypto.so.1.0.0 => /opt/<service path>/libktcrypto.so.1.0.0 (0xf756b000) libktz.so.1 => /opt/<service path>/libktz.so.1 (0xf7558000) librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf754f000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf73d8000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7383000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7366000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf71af000) /lib/ld-linux.so.2 (0x565b1000)

0
ответ дан 25 May 2018 в 03:29

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

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