Похоже, что пакет phantomjs доступен для архитектуры arm64... см. здесь и особенно здесь... это для focal (20.04LTS).
Но я пытаюсь установить двоичный файл phantomjs в следующей системе:
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.2 LTS
Release: 22.04
Codename: jammy
# uname -i
aarch64
Это возможно? Или есть ли способ установить двоичный файл phantomjs в этой системе?
@GillesQuénot Я знаю об этом, и у меня была версия кукольника, работающая некоторое время вместе с моей версией phantomjs, но прямо сейчас версия phantomjs все еще превосходит версию кукловода ... поэтому я хочу пока сохранить ее ... и я хочу попробовать это на арм64 (был на амд64 в течение многих лет).





Выглядит возможным, если добавить
$ sudo -s
# echo 'deb [arch=arm64] http://archive.ubuntu.com/ubuntu focal main universe' >> /etc/apt/sources.list.d/phantomjs.list
# apt update
# apt policy phantomjs
phantomjs:
Installed: (none)
Candidate: 2.1.1+dfsg-2ubuntu1
Version table:
2.1.1+dfsg-2ubuntu1 500
500 http://archive.ubuntu.com/ubuntu focal/universe arm64 Packages
Вам нужно изменить репозиторий/зеркало для обслуживания вашей специальной архитектуры arch64.
Другая альтернатива
$ wget https://launchpad.net/ubuntu/+source/phantomjs/2.1.1+dfsg-2ubuntu1/+build/19118060/+files/phantomjs_2.1.1+dfsg-2ubuntu1_arm64.deb
$ sudo apt install ./phantomjs_2.1.1+dfsg-2ubuntu1_arm64.deb
$ sudo apt install -f # if dependencies are not happy
При запуске apt update получаю следующие ошибки: Err:6 http://archive.ubuntu.com/ubuntu focal/main arm64 Packages || 404 Not Found [IP: 2620:2d:4000:1::19 80] || E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal/main/binary-arm64/Packages 404 Not Found [IP: 2620:2d:4000:1::19 80] || E: Some index files failed to download. They have been ignored, or old ones used instead.
Я также получаю довольно много строк Ign:x, например Ign:9 http://archive.ubuntu.com/ubuntu focal/universe arm64 Packages
И тогда нет доступных кандидатов при запуске apt policy phantomjs.
Попробуйте найти другой базовый URL/репозиторий, который обслуживает arm64.
Но эти команды работают на вашем хосте arm64?
Нет, проверено с amd64 (работает)
А как насчет этого источника: launchpad.net/ubuntu/+source/phantomjs/2.1.1+dfsg-2ubuntu1/… ?
Ах, кажется, это работает! Я получал ошибки зависимости с dpkg -i ... как это исправить после запуска apt install -f? Я ожидаю, что будет какой-то способ сделать это как вариант dpkg -i... каково взаимодействие между dkpg и apt здесь?
В этом вся магия Debian. Проверьте man apt-get и man dpkg
Ха, хорошо, спасибо! И существует ли в этом случае независимый от платформы способ установки через dpkg, а не обращение к файлу загрузки для конкретной платформы, например. для использования в Dockerfile, который может быть запущен либо на ARM, либо на AMD? Потому что этот бинарник phantomjs доступен для обоих: launchpad.net/ubuntu/+source/phantomjs/2.1.1+dfsg-2ubuntu1/…
Это не по теме для этого вопроса
Я предполагаю, что это :-/
Хороший способ был первым способом, который я разместил. Вы должны выяснить зеркало, которое служит вашей арке. Я сделал ответ на ваш ответ, если он соответствует вашим потребностям, спасибо, чтобы принять его.
Кстати, похоже, что вы можете использовать apt для установки непосредственно из файла deb: stackoverflow.com/a/45814339/4070848
Я вижу, вы отредактировали свой ответ, чтобы использовать apt вместо dpkg для установки файла deb, но вам все еще нужна опция -f для исправления неработающих зависимостей, как вы делали с отдельной строкой apt install -f в предыдущей версии.
Пересмотренный ответ в порядке, за исключением того, что вариант -f можно просто использовать в первом apt install без необходимости во втором, но я полагаю, что вы разделили их, чтобы было ясно, что -f может быть или не быть необходимым.
PhantomJS заброшен. Вы должны рассмотреть pptr.dev