routerkeygenPC

Hallo!

Ich bin neu hier, da ich hoffe etwas Hilfe zu bekommen.

Und zwar möchte ich das Tool routerkeygen (https://github.com/routerkeygen/routerkeygenPC/) für Linux kompilieren.

Die INSTALL Datei ist leider leer. (https://github.com/routerkeygen/routerkeygenPC/blob/master/INSTALL)

Deshalb schlage ich mich durch und habe mit dem Aufruf von ./build_linux.sh begonnen.

Es gab eine Reihe von Fehlern und mit Google konnte ich die Antworten finden:
$ sudo aptitude install cmake
$ sudo aptitude install build-essential -y
$ sudo apt-get install libqt4-core libqt4-dev libqt4-gui qt4-dev-tools
$ sudo apt-get install libssl-dev
$ cmake -DOPENSSL_ROOT_DIR=/usr/bin/openssl

Cmake funkt jetzt anscheinend, ich bekomme jetzt jedoch Fehler von "make" ohne "c".

$ ./build_linux.sh
Build type set to 'Release'
-- Version: 1.0.0
-- rpmbuild NOT found. RPM generation will not be available
-- Found dpkg-deb : /usr/bin/dpkg-deb
-- Translations: en;pt;nl;es
-- Configuring done
-- Generating done
-- Build files have been written to: /home/oliver/git/routerkeygenPC/routerkeygenPC
make: *** Keine Targets angegeben und keine »make«-Steuerdatei gefunden. Schluss.
Error while building

Den Fehler bekomme ich mit und ohne sudo.

Es gibt keine ./configure, ich wüßte auch nicht wo ich jetzt ansetzen soll. Leider finde ich für RouterkeygenPC keine Community.

Falls jemand so nett ist und sich das Problem mit mir anschauen möchte, hier die Download Möglichkeit:
https://github.com/routerkeygen/routerkeygenPC.git
https://github.com/routerkeygen/routerkeygenPC/archive/master.zip

Ich verwende Linux Mint 15 64bit mit KDE.

Danke und beste Grüße,

xCue
 
Zuletzt bearbeitet:
Was gibt ein "which qmake-qt4" zurück?
Edit: Compilerversion wäre auch interessant. Ich gehe auch davon aus, dass kein Makefile generiert wurde.
hab' mal testweise
Code:
CDW@highlander-jr:~/routerkeygenPC-master % cc -v && qmake-qt4 -v && cmake -DCMAKE_BUILD_TYPE=Release -DQT_QMAKE_EXECUTABLE=/usr/local/bin/qmake-qt4 && make
ausgeführt:

Code:
*snip*
clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
Target: x86_64 
Thread model: posix
QMake version 2.01a
Using Qt version 4.8.5 in /usr/local/lib/qt4
Build type set to 'Release'
*snip*
[ 67%] Building CXX object src/CMakeFiles/routerkeygen.dir/wifi/QWifiManager.cpp.o
In file included from /home/CDW/routerkeygenPC-master/src/wifi/QWifiManager.cpp:31:
/home/CDW/routerkeygenPC-master/src/wifi/QWifiManagerPrivateUnix.h:16:10: fatal error: 
      'NetworkManager.h' file not found
#include <NetworkManager.h>
         ^
1 error generated.
*** Error code 1
also direkt ziemlich weit gekommen
(es fehlt hier die "NetworkManager.h", was aber auf Mint irrelevant sein dürfte. Da die Paketierung der einzelnen Tools/Libs sich hier auch von Mint unterscheidet, spare ich mir die Auflistung ebenfalls :) ).
 
Hallo!

Vielen Dank für deine Mühe!

Was gibt ein "which qmake-qt4" zurück?
Ich bekomme ein "/usr/bin/qmake-qt4"

Mit
Code:
cc -v && qmake-qt4 -v && cmake -DCMAKE_BUILD_TYPE=Release -DQT_QMAKE_EXECUTABLE=$(which qmake-qt4) && make
bekomme ich das gleiche Resultat wie du: "NetworkManager.h fehlt"

Danke, ich probiere mal das Header File zu finden und teste, ob ich dann ein Kompilat erhalte.

DANKE!!!
 
Juhu :))))

Hier steht die Lösung für den fehlenden NetworkManager.h File: https://github.com/routerkeygen/routerkeygenPC/issues/3

Das Tool läuft nun super :)

Falls jemand die vollständige Lösung für Debian/Ubuntu/Mint braucht:
Code:
$ sudo aptitude install -y cmake build-essential libqt4-core libqt4-dev libqt4-gui qt4-dev-tools libssl-dev network-manager-dev
$ cd ./routerkeygenPC
$ cc -v && qmake-qt4 -v && cmake -DCMAKE_BUILD_TYPE=Release -DQT_QMAKE_EXECUTABLE=$(which qmake-qt4) && make

Auf gibhub habe ich auch die INSTALL Datei mit dieser Info ergänzt.

Vielen Dank, alleine hätte ich die "make" Sache nicht geschafft!!!
 
Hallo nochmal!

Damit ich mir das in Zukunft schnell installieren kann, habe ich ein kleines Skript verfasst, welches routerkeygen herunterladet, kompiliert und einen symlink erstellt. Vielleicht findet es jemand praktisch:

1. Mit editor (vi,nano,...) die Datei install_routerkeygen.sh erstellen
2. folgenden Inhalt hineinkopieren:
Code:
echo "Install routerkeygenPC, tested with Linux Debian, Kali, Ubuntu and Mint"
echo "The installation is going to start in 10 seconds, press Ctrl+C to cancel this job" 
sleep 10
sudo aptitude update
sudo aptitude install -y git cmake build-essential libqt4-core libqt4-dev libqt4-gui qt4-dev-tools libssl-dev network-manager-dev
git clone https://github.com/routerkeygen/routerkeygenPC.git
cd ./routerkeygenPC
mkdir -vp bin
sudo ln -s $(pwd)/bin/routerkeygen /usr/local/bin/routerkeygen
cc -v && qmake-qt4 -v && cmake -DCMAKE_BUILD_TYPE=Release -DQT_QMAKE_EXECUTABLE=$(which qmake-qt4) && make
echo "Installation complete"
echo "Start with \"sudo routerkeygen\""
echo "Uninstall: remove the routerkeygenPC folder and the symlink \"/usr/local/bin/routerkeygen\""
3. Die Datei speichern
[1-3] Oder Attachment herunterladen und von install_routerkeygenpc.sh.txt in install_routerkeygenpc.sh unbenennen.
4. chmod +x install_routerkeygen.sh
5. ./install_routerkeygen.sh

-- fertig --
 
Zuletzt bearbeitet:
Code:
ln -s $(pwd)/bin/routerkeygen /usr/bin/routerkeygen

Das wird wohl kaum funktionieren als User.
 
Zwei Anmerkungen:
1) cc -v && qmake-qt4 -v
diente eigentlich dazu, um Compiler + QtMake Versionen direkt am Anfang anzeigen zu lassen (und sollte eigentlich keinen Einfluss auf das Endergebniss haben ;) )
2)
/usr/bin/* Installation würde ich in /usr/local/bin/* umändern, da
usr/bin &Co normalerweise das Basissystem selbst sein sollte, während die "nicht essentiellen" Programme in /usr/local Hierarchie reingehen (hm eigentlich sollten 99% aller nachträglich installierten Programme hier rein).
http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#USRLOCALLOCALHIERARCHY hat gesagt.:
Locally installed software must be placed within /usr/local rather than /usr unless it is being installed to replace or upgrade software in /usr.
bzw.
Filesystem Hierarchy Standard - Wikipedia, the free encyclopedia
 
Danke für die Hinweise, ich habe das Skript nach euren Vorschlagen angepasst.

Wenn wir aber schon dabei sind.

Ich persönlich verstehe es so, als würde so ein Programm eigentlich nach /opt gehören. Dort habe ich selber es auch installiert. Jedoch kann man dann das Programm nicht mehr ohne Pfadangabe aufrufen. Daher nehme ich dann für die Verknüpfung /usr/bin/...
 
Wenn wir aber schon dabei sind.

Ich persönlich verstehe es so, als würde so ein Programm eigentlich nach /opt gehören. Dort habe ich selber es auch installiert. Jedoch kann man dann das Programm nicht mehr ohne Pfadangabe aufrufen. Daher nehme ich dann für die Verknüpfung /usr/bin/...
"man hier"
sollte eigentlich die jeweiligen Richtlinien anzeigen ;).
Die BSDs z.B sehen kein */opt* in ihrer Hierarchie vor, andererseits wird es manchmal genutzt, um z.B alte oder bestimmte Versionen einer Software "einzufrieren".
Sofern man jetzt nicht ins "philosophische" abdriften möchte - so wie ich es verstehe, ist /opt eher für "All-in-one" Packete, die keine Abhängigkeiten mitbringen.
 
Sofern man jetzt nicht ins "philosophische" abdriften möchte - so wie ich es verstehe, ist /opt eher für "All-in-one" Packete, die keine Abhängigkeiten mitbringen.

Ehrlich gesagt habe ich nun keine Quelle oder Referenz dafür, aber ich verstehe /opt heutzutage eher als ein Verzeichnis für Fremdsoftware, die eben nicht über den gängigen Paketmanager der Distribution installiert wird; also unabhängig davon ob das Paket Abhängigkeiten hat oder nicht. Meist hab ich das für proprietäre Software verwendet, die nicht als deb- oder rpm-Paket vorliegt.

Oracle Java ist für mich z.B. ein Kandidat für /opt. Man lädt ein komprimiertes TAR-Archiv von der Oracle-Webseite, entpackt es und verlinkt die Binaries selbst an die passenden Stellen. Es wird also nichts installiert oder kompiliert.
 
Zurück
Oben