Кв. - получает обновленный пакет от 32 битов до неподдерживаемых 64 битов - почему и как вернуться?

Недавно репозиторий qtox должен был изменить его домен, и новый только содержит сборки только на 64 бита в данный момент. Однако я нахожусь на 15,04 32 битах и не могу запустить программное обеспечение на 64 бита.

Теперь, когда я в последний раз работал apt-get upgrade или apt-get dist-upgrade (не может помнить, какой точно), это также обновило пакет qtox к последней версии в репозитории. Но это было версией на 64 бита! Теперь я не могу запуститься qtox больше:

$ qtox
bash: /usr/bin/qtox: cannot execute binary file: Exec format error
$ file $(which qtox)
/usr/bin/qtox: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, stripped
$ uname -a
Linux UbuntuDesktop 3.19.0-26-generic #27-Ubuntu SMP Tue Jul 28 18:26:33 UTC 2015 i686 i686 i686 GNU/Linux

Теперь я должен удостовериться это apt-get не будет больше устанавливать/обновлять ни на каких пакетах на 64 бита! Никакая идея, если это - ошибка в apt-get, плохо настроенный пакет или репозиторий или что-либо еще, я должен узнать причину и предотвратить это снова!

Так мой вопрос вкратце:

Почему сделал apt-get установите пакет на 64 бита в 32bit-единственной системе и как я избегаю этого в будущем?


Обновление:

Я проверил информацию, которую я мог получить о qtox пакет от apt-cache и dpkg -I из непосредственно загруженного .deb пакета и найденный следующим. Мне как то, кажется, если настроил их репозиторий неправильно, потому что те выводы похожи пакета на 32 бита. И это все еще содержит старый домен. Они, вероятно, забывали обновлять свою информацию и обманутый apt-get?

$ apt-cache show qtox
Package: qtox
Priority: extra
Section: default
Installed-Size: 2168
Maintainer: Tox Foundation <support@tox.im>
Architecture: i386
Version: 1.1~git20150707.cfeeb03-97
Replaces: qtox-unity
Depends: libopenal1, libqt5core5a, libqt5gui5, libqt5network5, libqt5widgets5, libqt5xml5, libqt5opengl5, libqt5sql5, libqt5sql5-sqlite, apt-transport-https, libqt5svg5, libappindicator1, libqrencode3, libavformat-ffmpeg56|libavformat-tox56, libavdevice-ffmpeg56|libavdevice-tox56, libavcodec-ffmpeg56|libavcodec-tox56, libavutil-ffmpeg54|libavutil-tox54, libswscale-ffmpeg3|libswscale-tox3
Filename: pool/main/q/qtox/qtox_1.1~git20150707.cfeeb03-97_i386.deb
Size: 2217972
MD5sum: bc59427d056da669e52955169266911b
SHA1: c6797a04d13d929a068c213913f359719b377735
SHA256: 3405027807573b98a61c33f3aad911f40cf0b0737a95001e951a82937ee5afdd
Description: no description given
Description-md5: c0af8b65ef8df63b3bfb124d96da1778
Homepage: https://tox.im
Vendor: Tox Foundation
License: GPLv3+

$ apt-cache policy qtox
qtox:
  Installed: 1.1~git20150707.cfeeb03-97
  Candidate: 1.1~git20150707.cfeeb03-97
  Version table:
 *** 1.1~git20150707.cfeeb03-97 0
        500 https://pkg.tox.chat/ nightly/main i386 Packages
        100 /var/lib/dpkg/status

$  dpkg -I qtox_1.1~git20150707.cfeeb03-97_i386.deb
 new debian package, version 2.0.
 size 2217972 bytes: control archive=2341 bytes.
     677 bytes,    13 lines      control              
    1298 bytes,    17 lines      md5sums              
    2716 bytes,    93 lines   *  postinst             #!/bin/sh
 Package: qtox
 Version: 1.1~git20150707.cfeeb03-97
 License: GPLv3+
 Vendor: Tox Foundation
 Architecture: i386
 Maintainer: Tox Foundation <support@tox.im>
 Installed-Size: 2168
 Depends: libopenal1, libqt5core5a, libqt5gui5, libqt5network5, libqt5widgets5, libqt5xml5, libqt5opengl5, libqt5sql5, libqt5sql5-sqlite, apt-transport-https, libqt5svg5, libappindicator1, libqrencode3, libavformat-ffmpeg56|libavformat-tox56, libavdevice-ffmpeg56|libavdevice-tox56, libavcodec-ffmpeg56|libavcodec-tox56, libavutil-ffmpeg54|libavutil-tox54, libswscale-ffmpeg3|libswscale-tox3
 Replaces: qtox-unity
 Section: default
 Priority: extra
 Homepage: https://tox.im
 Description: no description given
1
задан 16 August 2015 в 17:36

1 ответ

Очевидно, имя пакета и метаинформация оба говорят apt-get то, что это - пакет на 32 бита, но это было настроено ложно специалистами по обслуживанию.

Пока они не зафиксировали это и обновили их репозиторий с реальным пакетом на 32 бита, я использую следующий сценарий для проверки истинной архитектуры пакета:

#! /bin/bash

dir=$(mktemp -d)
debfile="*_i386.deb"
cd "$dir"

echo "Downloading package..."
wget https://pkg.tox.chat/pool/main/q/qtox/ -r -l 1 -nd -A "$debfile" -q

dpkg -x $debfile "$dir"
printf "\n%s\n\n" $debfile

dpkg --info $debfile | \
    awk '/Architecture/ {printf "defined dpkg architecture is:\t%s\n", $2}'

find "$dir" -type f -exec file -b {} \; | \
        sort -u | \
        awk '/ELF/ {printf "real executable format is: \t\t%s\n", $0}'

rm -rf "$dir"
exit 0

(Части сценария взяты из ответа A.B.'s здесь.)

Я сохранил его как ~/bin/qtoxtest.sh и сделанный этим исполняемый файл с chmod +x ~/bin/qtoxtest.sh.

Сценарий в настоящее время дает следующий вывод в качестве примера, который говорит нам, что пакет правильно все еще не объявляется:

$  qtoxtest.sh 
Downloading package...

qtox_1.1~git20150707.cfeeb03-97_i386.deb

defined dpkg architecture is:   i386
real executable format is:      ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, stripped
1
ответ дан 7 December 2019 в 16:12

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

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