0
Under review

проблема зависимостей в debian

Николай Годуйко 3 years ago updated by Михаил Карпенко 5 months ago 20

после обновления на последнюю версию существует проблема зависимостей.


dpkg: зависимости пакетов не позволяют настроить пакет joxi:

joxi зависит от qtdeclarative5-qtquick2-plugin, однако:
Пакет qtdeclarative5-qtquick2-plugin не установлен.

пытаемся разрешить зависимости и получаем:


Package qtdeclarative5-qtquick2-plugin is not available, but is referred to by another package.

This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
qml-module-qtquick2:i386 qml-module-qtquick2

E: Package 'qtdeclarative5-qtquick2-plugin' has no installation candidat

Under review

Уточните пожалуйста версию и дистрибутив Linux

о, извиняюсь, что сразу не указал, затупил. debian 8.7

Linux Host 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux


Попробуйте использовать более старую версию joxi. Или проигнорировать зависимости и уже после установки при запуске приложения посмотреть каких библиотек недостаточно.

на более старой иконка в gnome 3 в трее прозрачная. ну ладно в общем, сам разберусь с зависимостями, как время будет. Руками прийдется аккуратно поставить.


Кстати а где взять более старую версию то?

так понимаю это пакет без зависимостей просто.joxi: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by joxi)

Спасибо! теперь либа в пакете есть! но с иконкой проблема осталась, это проблема встречается в gnome shell и в некоторых версиях cinnamon http://joxi.ru/Rmz9PWdh0RGpvr на скриншоте joxi запущена и иконка joxi как бы есть слева от иконки телеграм, область кликабельна, но значок не отрисовывается. эта проблема существовала всегда.


в лог консоли не вчитывался, но на всякий случай прикрепил.


QSqlQuery::value: not positioned on a valid record

QSqlQuery::value: not positioned on a valid record
QIODevice::read: device not open
void Autorization::getUserInfo()User-agentJoxi 3.0.9
void Autorization::getUserInfo()AuthorizationBearer
onVisibleChanged * 1
implicitWidth -1 170
implicitWidth 0 170
implicitWidth 0 170
qrc:/qml/qml/Components/LoginPushButton.qml:20:5: QML Text: Possible anchor loop detected on fill.
qrc:/qml/qml/Components/Window.qml:113:9: QML Item: Cannot anchor to an item that isn't a parent or sibling.
qrc:/qml/qml/Components/Window.qml:113:9: QML Item: Cannot anchor to an item that isn't a parent or sibling.
qrc:/qml/qml/Components/ToolPushButton.qml:9: ReferenceError: Can't find variable: tool
QPixmap::scaled: Pixmap is a null pixmap
QPixmap::scaled: Pixmap is a null pixmap
onSelectComplete
QObject::connect: No such slot BlackoutArea::update()
QObject::connect: (sender name: 'JPainterArea')
QObject::connect: No such slot BlackoutArea::update()
QObject::connect: (sender name: 'JPainterArea')
onVisibleChanged * 1
implicitWidth -1 210
qrc:/qml/qml/Window/SurfaceWindow.qml:106: ReferenceError: Can't find variable: lightOpacity
QDeclarativeExpression: Expression "(function $x() { return (surface.width - selector.rubberRectRight < 115) ? selector.rubberRectLeft - width - 10 : selector.rubberRectRight + 10 })" depends on non-NOTIFYable properties:
SurfaceWidget::width
implicitWidth 0 210
implicitWidth 0 210
qrc:/qml/qml/Components/ToolBar.qml:112: Unable to assign [undefined] to int axis
QObject::connect: No such signal SurfaceWidget::editPonoram(QPixmap)
calcCoordinate -----------------------------------
prv_data = 152 393
toolBar = 152 393 850 105
root = 1360 768
toolBarRect = 0 0 1366 768
--------------------------------------------------
QDeclarativeExpression: Expression "(function $x() { return (surface.width - selector.rubberRectRight < 115) ? selector.rubberRectLeft - width - 10 : selector.rubberRectRight + 10 })" depends on non-NOTIFYable properties:
SurfaceWidget::width
content-type missing in HTTP POST, defaulting to application/x-www-form-urlencoded. Use QNetworkRequest::setHeader() to fix this problem.
content-type missing in HTTP POST, defaulting to application/x-www-form-urlencoded. Use QNetworkRequest::setHeader() to fix this problem.
force focus
QPixmap::scaled: Pixmap is a null pixmap
QPixmap::scaled: Pixmap is a null pixmap
onSelectComplete
QObject::connect: No such slot BlackoutArea::update()
QObject::connect: (sender name: 'JPainterArea')
QObject::connect: No such slot BlackoutArea::update()
QObject::connect: (sender name: 'JPainterArea')
onVisibleChanged * 1
implicitWidth -1 210
qrc:/qml/qml/Window/SurfaceWindow.qml:106: ReferenceError: Can't find variable: lightOpacity
QDeclarativeExpression: Expression "(function $x() { return (surface.width - selector.rubberRectRight < 115) ? selector.rubberRectLeft - width - 10 : selector.rubberRectRight + 10 })" depends on non-NOTIFYable properties:
SurfaceWidget::width
implicitWidth 0 210
implicitWidth 0 210
qrc:/qml/qml/Components/ToolBar.qml:112: Unable to assign [undefined] to int axis
QObject::connect: No such signal SurfaceWidget::editPonoram(QPixmap)
calcCoordinate -----------------------------------
prv_data = 486 778
toolBar = 486 778 850 105
root = 1366 768
toolBarRect = 0 0 1366 768
--------------------------------------------------
QDeclarativeExpression: Expression "(function $x() { return (surface.width - selector.rubberRectRight < 115) ? selector.rubberRectLeft - width - 10 : selector.rubberRectRight + 10 })" depends on non-NOTIFYable properties:
SurfaceWidget::width
content-type missing in HTTP POST, defaulting to application/x-www-form-urlencoded. Use QNetworkRequest::setHeader() to fix this problem.
content-type missing in HTTP POST, defaulting to application/x-www-form-urlencoded. Use QNetworkRequest::setHeader() to fix this problem.
initJoxiUpload()
QIODevice::read: device not open
QSqlQuery::value: not positioned on a valid record
QSqlQuery::value: not positioned on a valid record
qrc:/qml/qml/Components/Window.qml:113:9: QML Item: Cannot anchor to an item that isn't a parent or sibling.
qrc:/qml/qml/Components/Window.qml:113:9: QML Item: Cannot anchor to an item that isn't a parent or sibling.
QIODevice::read: device not open
QSqlQuery::value: not positioned on a valid record
QSqlQuery::value: not positioned on a valid record
qrc:/qml/qml/Components/Window.qml:104: Error: Invalid write to global property "cursorShape"
qrc:/qml/qml/Components/Window.qml:108: Error: Invalid write to global property "cursorShape"
onVisibleChanged * 1
implicitWidth -1 170
implicitWidth 0 170
implicitWidth 0 170
qrc:/qml/qml/Components/Window.qml:113:9: QML Item: Cannot anchor to an item that isn't a parent or sibling.
qrc:/qml/qml/Components/Window.qml:113:9: QML Item: Cannot anchor to an item that isn't a parent or sibling.


кстати по поводу иконки готов помочь в тестировании. т.к. это единственный нормальный скриншотер для линукс.

Такая же проблема с зависимостями. Debian stretch.

А нет ли joxi в формате .appimage?

+2

Проблема решилась установкой пакета для бубунты от сюда https://ubuntu.pkgs.org/16.10/ubuntu-main-amd64/qtdeclarative5-qtquick2-plugin_5.6.1-7ubuntu2~1_amd64.deb.html. Далее все стало ровно

Для debian stretch тоже сработало.

+3

Я таки вылечил это в stretch.


Последнюю версию qtdeclarative5-qtquick2-plugin скачал с debian.org, но при установке он попросил qtdeclarative-abi-5-2-1, который является виртуальным пакетом, обернутым в libqt5qml5. В итоге руками сделал виртуальный пакет qtdeclarative-abi-5-2-1. После этого все установилось и работает как раньше.


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

"В итоге руками сделал"


Поделитесь - как !

Как написал выше.

Скачиваете пакет и начинаете его пытаться установить через dpkg i. Будет ругаться на некоторое количество отсуствующих пакетов.


Через apt --fix-broken install или ручной установкой ставите недостающие пакеты, разматывая клубок зависимостей (он небольшой).


В какой-то момент наткнетесь на пакет qtdeclarative-abi-5-2-1, который виртуальный и его не существует в репозитории debian'а. Его нужно сделать руками (пример инструкции) и установить.


Как только все необходимые пакеты будут установлены, устанавливаете саму joxi через dpkg.


За месяц использования замечены периодические (редкие) вылеты программы вникуда при нажатии кнопки "Отправить", но сильно это не бесит, просто перезапускаю её и все работает нормально.


В итоге я даже купил Joxi Plus, в целом доволен.


Но разработчикам стоит таки потратить час-два своего драгоценного времени, чтобы внести необходимые изменения в список зависимостей. Пусть уже она падает, но возможность поставить без бубна быть должна.

+3

Ответ №2


Недавно купил себе новый компьютер и вновь пришлось устанавливать это чудо.


В процессе понял, что мой прошлый ответ недостаточно информативен и нагляден, пришлось много вспоминать, поэтому оставлю на будущее тут.


Итак, имеется Debian Stretch и Joxi на него нормально не ставящаяся.


Суть проблемы. При попытке установки инсталлятор спотыкается о пакет qtdeclarative5-qtquick2-plugin, которого в репозитории Деби нет и никогда не было.


Далее идет пошаговая инструкция, 100% работающая для Деби Стретч. Где нужен рут, а где достаточно обычного пользователя, я уверен, всем дочитавшим до этого места будет понятно.

Для установки локальных пакетов конкретно я использую (и всем советую) gdebi, но можно и через dpkg.


Поехали:
1. Скачиваем deb-пакет Joxi с официального сайта.


2. Пытаемся его установить:

gdebi joxi-amd64.deb


3. Получаем ошибку "Dependency is not satisfiable: qtdeclarative5-qtquick2-plugin".


4. Как было отмечено выше qtdeclarative5-qtquick2-plugin в репозитории пакетов Деби не существует, но на помощь приходит Убунту. Качем пакет отсюда https://packages.ubuntu.com/trusty/libs/qtdeclarative5-qtquick2-plugin или ищем нужную версию через Гугл.


5. Скачанному пакету нужен qtdeclarative-abi-5-2-1, все остальные зависимости есть в репозитории пакетов Деби. При этом недостающий пакет является виртуальным клоном libqt5qml5, который входит в зависимости самого qtdeclarative5-qtquick2-plugin и тоже содержится в репозитории Деби. Вывод  необходимо создать пустой виртуальный пакет qtdeclarative-abi-5-2-1.


6. Для этой цели используем утилиту equivs. Если её нет, устанавливаем:

apt-get install equivs


7. Генерируем файл пакета:

equivs-control qtdeclarative-abi-5-2-1


8. Далее необходимо отредактировать сценарий создания пакета qtdeclarative-abi-5-2-1. В сценарии 5 строк:

Section: misc
Priority: optional
Standards-Version: 3.9.2
Package: qtdeclarative-abi-5-2-1
Description: Пакет-костыль для Жокси


9. Сохраняем и генерируем пакет:

equivs-build qtdeclarative-abi-5-2-1


10. Устаналиваем пустышку:

gdebi qtdeclarative-abi-5-2-1_1.0_all.deb


11. Теперь устанавливаем скачанный пакет от Убунту:

gdebi qtdeclarative5-qtquick2-plugin_5.2.1-3ubuntu15_amd64.deb


12. Финалочка:

gdebi joxi-amd64.deb


Изредка будет падать при публикации, но некритично, после перезапуска все ок.


Повторяю своё "фи" разработчикам. Ну неужели настолько трудно изменить одну зависимость и сделать нормальный пакет для Дебиана?

Спасибо за решение, но это безобразие и издевательство над системой. Мне не понятна позиция разработчиков в этом вопросе. Почему они не хотят решить проблему так, чтобы пользователи не были вынуждены плясать с бубном?

Debian buster, при попытке установить 

" gdebi /home/.../joxi-amd64.deb

Reading package lists... Done

Building dependency tree

Reading state information... Done

Reading state information... Done

Требует УДАЛЕНИЯ следующих пакетов: apache2-bin curl gnome-core gnome-user-share libapache2-mod-dnssd libcurl4

Требует установки следующих пакетов: libcurl3 "

Мне кажется что-то не так ?

+4

Перешёл на Flameshot. Не нашёл только, как текст впечатать на скрин, а так возможности те же, что и у Joxi. И никаких плясок с бубном.

+1

Спасибо за флеймшот)