4

Я не могу поверить, что я спрашиваю это ... ясно, что я в редкой форме сегодня.

Попытка настроить новый компьютер с Ubuntu и только что загрузил p4 (клиент Perforce для командной строки). Это загрузка одного файла - статически связанный двоичный исполняемый файл, поэтому я просто сделал:

wget http://www.perforce.com/downloads/perforce/r09.2/bin.linux26x86/p4

... прямо в /usr /bin. Достаточно просто. Кроме:

root@aj-ubuntu:/usr/bin# ll p4 
-rwxr-xr-x 1 root root 748808 2010-02-11 16:54 p4
root@aj-ubuntu:/usr/bin# ./p4 
-su: ./p4: No such file or directory
root@aj-ubuntu:/usr/bin# /usr/bin/p4 
-su: /usr/bin/p4: No such file or directory

Что в мире происходит здесь ...?!

Заранее спасибо за ваши насмешки :)

7 ответов7

4

Хорошо, я получил файл с вашего URL (его размер меньше 800 КБ) и попробовал это (с удобного терминала Cygwin).

$ file p4
p4: исполняемый 32-разрядный LSB ELF, Intel 80386, версия 1 (SYSV), для GNU/Linux 2.2.5, динамически связанный (использует общие библиотеки), удаленный

Но вы ожидаете, что он будет статически связан, почему?


Обновление: просто чтобы убедиться, пожалуйста, подтвердите, что вы используете 32-битную Ubuntu.
Если вы работаете с 64-битной системой, вам, вероятно, нужен пакет ' ia32-libs '.

1

Вот что происходит, когда ваш исполняемый файл недействителен, это может быть для другой архитектуры или для другого ядра. Или просто поврежденный заголовок ELF.

1

chmod +x /usr /bin /p4

1

Интерпретатор readelf -a /usr/bin/p4 | grep interpreter указывает на, вероятно, отсутствует. Вероятно, он поставляется в какой-то компат-упаковке, на что указывают другие комментаторы.

1

попробуйте file ./p4 и посмотрите, что там написано. Скорее всего, у вас не установлены нужные библиотеки для его запуска (поэтому он вообще не может загрузить бинарный файл - у вас возникают те же проблемы с Windows, если у вас нет нужных библиотек)

1

Выполните ls -lb p4* чтобы увидеть, есть ли в имени файла какие-либо случайные символы.

0

Статический исполняемый файл не зависит от библиотек .... ему нужно совместимое ядро, а именно то, которое имеет те же системные вызовы, на которых оно было построено.

p4 - клиент перформанс, а ваш построен на ядре v2.2.5 10 лет назад ...

он будет работать с (долго не поддерживается) ядром версии 2.2,

он может работать с ядром 2.4 (месяц без поддержки),

он не будет работать с ядрами 2.6 и 3.x (все еще поддерживается)

Они делают версию для клиентов 2.6 http://www.perforce.com/downloads/complete_list доступной для ваших нужд.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .