Installé Qt 5.3, Notepadqq trouve toujours 5.2.1 à la place?

0

J'utilise Ubuntu 14.04 LTS, 64 bits. J'essaie d'installer Notepadqq, le port de Notepad ++ de Windows à Linux. Je connais Vim et Emacs, mais je suis habitué à Notepad ++ et je l’aime bien. J'ai installé Notepad en utilisant cette page Web:

http://notepadqq.altervista.org/wp/

Lorsque je l'ai exécuté, une boîte de dialogue est apparue, se plaignant du fait que j'avais une ancienne version de Qt sur ma boîte, Qt 5.2.1 . J'ai ensuite téléchargé et installé Qt 5.3.0 en suivant ces instructions:

wget http://download.qt-project.org/official_releases/qt/5.3/5.3.0/qt-opensource-linux-x64-5.3.0.run

chmod +x qt-opensource-linux-x64-5.3.0.run

./qt-opensource-linux-x64-5.3.0.run

De cette page web:

http://www.sysads.co.uk/2014/05/install-qt-5-3-ubuntu-14-04/

Le processus d'installation s'est bien déroulé sans qu'aucune erreur n'ait été signalée. Cependant, lorsque je lance Notepadqq, la boîte de dialogue se plaint toujours de Qt. Je suis nerveux à l'idée de désinstaller Qt 5.2.1 parce que je parie qu'il y a beaucoup d'autres codes dépendant de cette bibliothèque? Alors, est-ce un chemin ou une variable d'environnement ? Comment puis-je réparer cela?

ANECDOTE: La dernière machine Linux que j'ai configurée était OpenSuse 9.x, il y a longtemps. Linux a certainement parcouru un long chemin et Ubuntu 14.04 est magnifique. Merci à l'équipe Ubuntu.

Robert Oschler
la source
1
Ooh, l'installation de bibliothèques via des scripts d'exécution est risquée. Je préfère toujours prendre le paquet .deb lorsque c'est possible, car toutes les dépendances seront gérées pour vous et si vous utilisez un dépositaire / ppa, vous obtiendrez des mises à jour automatiques. Je ne connais donc pas le logiciel exact que vous utilisez, mais notepadqq peut être lié à une bibliothèque Qt et vous avez installé la nouvelle dans un endroit complètement différent. Quel était donc le chemin d’installation de Qt5.3 et pourriez-vous taper "ldd <notepadqq-binary>" dans le terminal. vous voudrez peut-être chercher avec "localiser notepadqq"
Benjamin Maurer

Réponses:

4

Si votre distribution ne fournit pas Qt 5.3, Notepadqq s'attend à ce qu'il se trouve dans ~ / Qt /, dans votre répertoire personnel.

Ainsi, lorsque vous exécutez ./qt-opensource-linux-x64-5.3.0.runet demande où vous voulez installer Qt, utilisez le chemin /home/<your_username>/Qt. Un lien symbolique fonctionnera aussi.

À propos, vous voudrez peut-être utiliser la dernière version de Qt (5.3.2):

wget http://download.qt-project.org/official_releases/qt/5.3/5.3.2/qt-opensource-linux-x64-5.3.2.run
chmod +x qt-opensource-linux-x64-5.3.2.run
./qt-opensource-linux-x64-5.3.2.run

Et si j'ai déjà une autre version de Qt dans ~ / Qt?

Supposons qu'une version plus ancienne de Qt est déjà installée dans ~ / Qt: Notepadqq l'ignorera.

Maintenant, pour rendre Qt5.3 disponible pour Notepadqq, vous pouvez l’installer dans un répertoire de votre choix (disons ~ / Qt53). Ensuite, vous créez un lien symbolique vers le dossier "5.3" interne, comme suit:

ln -dsr ~/Qt53/5.3 ~/Qt

Les deux versions de Qt vont coexister sans problème et notepadqq sera capable de trouver les fichiers dans ~/Qt53/5.3

danieleds
la source
Que se passe-t-il s'il existe une ancienne version de Qt dans ce répertoire? Pourriez-vous développer votre réponse pour aborder les risques / implications de cette condition?
Robert Oschler
Je viens d'élargir la réponse avec les informations supplémentaires.
danieleds
0

En lien avec ce problème: Si vous avez installé la dernière version de Qt 5.6, vous devez modifier le fichier notepadqq situé sous / usr / bin. N'oubliez pas de modifier le fichier notepadqq avec les privilèges de super utilisateur, sinon vous obtiendrez un "accès refusé".

Voici à quoi ressemble mon fichier de configuration après édition:

#!/bin/sh
SCRIPTPATH="$(dirname "$(readlink -f "$0")")"

if [ `getconf LONG_BIT` = "64" ]
then
    GCC_DIR=gcc_64
else
    GCC_DIR=gcc
fi

OPT_QT56=/opt/Qt/5.6/$GCC_DIR/lib
OPT_QT55=/opt/Qt/5.5/$GCC_DIR/lib
OPT_QT54=/opt/Qt/5.4/$GCC_DIR/lib
OPT_QT53=/opt/Qt/5.3/$GCC_DIR/lib
PERSONAL_QT56=~/Qt/5.6/$GCC_DIR/lib
PERSONAL_QT55=~/Qt/5.5/$GCC_DIR/lib
PERSONAL_QT54=~/Qt/5.4/$GCC_DIR/lib
PERSONAL_QT53=~/Qt/5.3/$GCC_DIR/lib

export LD_LIBRARY_PATH="$OPT_QT56:$PERSONAL_QT56:$OPT_QT55:$PERSONAL_QT55:$OPT_QT54:$PERSONAL_QT54:$OPT_QT53:$PERSONAL_QT53:${LD_LIBRARY_PATH}"

if [ -f "$SCRIPTPATH"/../lib/notepadqq/notepadqq-bin ]; then
    # Nqq is installed: this script is in bin/
    exec "$SCRIPTPATH"/../lib/notepadqq/notepadqq-bin "$@"
elif [ -f "$SCRIPTPATH"/../lib/notepadqq-bin ]; then
    # Nqq is not installed: this script is in bin/
    exec "$SCRIPTPATH"/../lib/notepadqq-bin "$@"
else
    # Nqq is installed via deb package:
    # this script is in the same directory as the binary file.
    exec "$SCRIPTPATH"/notepadqq-bin "$@"
fi
Edico
la source
0

J'ai installé le dernier Qt 5.10.1 de http://download.qt.io/official_releases/qt/5.10/5.10.1/ dans le dossier local ~ / Qt5.10.1, puis créé le lien dans le dossier ~ / with ln -dsr ~/Qt5.10.1/5.10.1 ~/Qt mais notepadqq se plaignait toujours de la mauvaise version de qt = 5.2.1. Ensuite, j'ai modifié le fichier / usr / bin / notepadqq comme suit (car il n'y avait pas d'option pour la version 5.10.1 dans le script):

#!/bin/sh
SCRIPTPATH="$(dirname "$(readlink -f "$0")")"

if [ `getconf LONG_BIT` = "64" ]
then
    GCC_DIR=gcc_64
else
    GCC_DIR=gcc
fi

OPT_QT5101=/opt/Qt/$GCC_DIR/lib
OPT_QT59=/opt/Qt/5.9/$GCC_DIR/lib
OPT_QT58=/opt/Qt/5.8/$GCC_DIR/lib
OPT_QT57=/opt/Qt/5.7/$GCC_DIR/lib
OPT_QT56=/opt/Qt/5.6/$GCC_DIR/lib
OPT_QT55=/opt/Qt/5.5/$GCC_DIR/lib
OPT_QT54=/opt/Qt/5.4/$GCC_DIR/lib
OPT_QT53=/opt/Qt/5.3/$GCC_DIR/lib
PERSONAL_QT5101=~/Qt/$GCC_DIR/lib
PERSONAL_QT59=~/Qt/5.9/$GCC_DIR/lib
PERSONAL_QT58=~/Qt/5.8/$GCC_DIR/lib
PERSONAL_QT57=~/Qt/5.7/$GCC_DIR/lib
PERSONAL_QT56=~/Qt/5.6/$GCC_DIR/lib
PERSONAL_QT55=~/Qt/5.5/$GCC_DIR/lib
PERSONAL_QT54=~/Qt/5.4/$GCC_DIR/lib
PERSONAL_QT53=~/Qt/5.3/$GCC_DIR/lib

export LD_LIBRARY_PATH="$OPT_QT5101:$PERSONAL_QT5101:$OPT_QT59:$PERSONAL_QT59:$OPT_QT58:$PERSONAL_QT58:$OPT_QT57:$PERSONAL_QT57:$OPT_QT56:$PERSONAL_QT56:$OPT_QT55:$PERSONAL_QT55:$OPT_QT54:$PERSONAL_QT54:$OPT_QT53:$PERSONAL_QT53:${LD_LIBRARY_PATH}
...skipped...

et alors seulement, notepadqq fonctionne sans se plaindre de la version qt.

lugger1
la source