Я установил клиент командной строки p4 на сервер, и происходит что-то странное. Он существует, имеет права на исполнение, но я не могу его выполнить, потому что получил сообщение об ошибке, что его не существует.
Я попытался осмотреться, и все остальные, у кого была эта проблема, поняли, что выбрали неправильный двоичный файл для своей коробки, но я был на 100% уверен, что я этого не сделал.
файл / usr / local / bin / p4:
вот мой вывод терминала:
ubuntu@ubuntu:~$ sudo su
+ sudo su
root@ubuntu:/home/ubuntu# wget http://cdist2.perforce.com/perforce/r16.1/bin.freebsd100x86_64/p4
--2017-09-25 22:21:45-- http://cdist2.perforce.com/perforce/r16.1/bin.freebsd100x86_64/p4
Resolving cdist2.perforce.com (cdist2.perforce.com)... 54.192.36.127, 54.192.36.104, 54.192.36.217, ...
Connecting to cdist2.perforce.com (cdist2.perforce.com)|54.192.36.127|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3683848 (3.5M) [application/x-executable]
Saving to: ‘p4’
100%[===================================================================================================================>] 3,683,848 5.06MB/s in 0.7s
2017-09-25 22:21:46 (5.06 MB/s) - ‘p4’ saved [3683848/3683848]
root@ubuntu:/home/ubuntu# chmod +x p4
root@ubuntu:/home/ubuntu# mv p4 /usr/local/bin/
root@ubuntu:/home/ubuntu# p4
bash: /usr/local/bin/p4: No such file or directory
root@ubuntu:/home/ubuntu# ls -lah /usr/local/bin/p4
-rwxr-xr-x 1 root root 3.6M Mar 2 2017 /usr/local/bin/p4
root@ubuntu:/home/ubuntu# file /usr/local/bin/p4
/usr/local/bin/p4: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 10.0 (1000510), stripped
root@ubuntu:/home/ubuntu# uname -m
x86_64
любая помощь приветствуется!
Запутывающая фраза «нет такого файла или каталога», скорее всего, на самом деле относится к любому динамическому компоновщику, который этот (несоответствующий!) Двоичный файл пытается вызвать.
Хорошо, я нашел решение, я изменил свой сценарий обеспечения на это, и он отлично работает. Понятия не имею, почему это решило мою проблему ...
#!/bin/bash
# bash strict and verbose mode
set -o pipefail -e -u -x
if [ ! -z `which p4` ]; then
exit 0
fi
# Installs Perforce
echo "deb http://package.perforce.com/apt/ubuntu/ trusty release" > /etc/apt/sources.list.d/perforce.list
wget -qO - https://package.perforce.com/perforce.pubkey | apt-key add -
apt-get update
apt-get install -y helix-cli