Frieder108 schrieb
Ich hab jetzt gerade versucht (einfach mal so zum üben), das Powertop aus dem AUR zu installieren - tja, da gibts ne Fehlermeldung
Ok, Sonderfall. (Ich bin kein C/C++ Experte, kann sein das ich etwas nicht Kernighan&Ritchie-gemaäß erkläre...)
Obiger Fehler kommt vom Linker, welcher Programmobjektcode mit dem SharedObjektcode(=Bibliotheken,Libs,DLLs,..) "verheiratet".
Eine Lib libnl-genl.so gibt es nicht auf dem System, da diese durch die Version 3.2.x nun (Upstream) libnl-genl-3.so heißt. Im Makefile(Steuerdatei für den C-Compiler/Linker) wird dies durch das PKGBUILD schon korriegiert (eigentlich<g>) indem "gepatcht" wird:
patch -p1 < ../Makefile.patch
In diesem File makefile.patch (schaus dir an) wird nun genau die zu linkende Lib umbenannt.
//Edit: Bzw. statt daß der Linker -nl-genl vorgesetzt bekommt wird daraus ein -lnl-genl-3 (die Depend libnl brint genau diese libnl-genl-3.so mit...) Patchfiles lesen sich so: Zeilen mit Minus(-) davor werden ersetzt durch die mit Pluszeichen, wobei oft ganze Blöcke ersetzt werden wenn sich viel ändert....
Funktioniert hier bei mir auch...
Jetzt zu deinem Problem (wo der Maintainer des PKGBUILDs etwas geschlampt hat), ich vermute zumindest das es so ist:
Um Patchen zu können muß u.a. das Programm patch installiert sein. Und das ist bei dir vermutlich nicht. Du solltest ziemlich am Anfang schon eine Meldung haben daß der Patch nicht erfolgreich war da "Command patch nicht gefunden" o.ä.
Sauber umgehen hätte der Maintainer daß durch:
patch -p1 < ../powertop-1.98-sysfs.patch || exit 1
patch -p1 < ../Makefile.patch || exit 1
wodurch mit fehlercode 1 das bauen wesentlich früher abgebrochen wäre, es zu deinem Fehler erst garnicht gekommen waäre. Und der Grund des fehlschlagens für einen Laien evtl. eher ersichtlich....
Woher patch nehmen? Irgendwo im AUR-Wikibeitrag sollte eigentlich stehen, daß zum Bauen von Paketen (bzw. überhaupt zum kompilieren etc) nötig/sinnvoll ist, daß Paket base-devel (das ist eine Paketgruppe) zu installieren. Die dürfte dir fehlen, bzw. die Einzelpakete darin (eben auch das patch)
% pacman -Sg base-devel
base-devel autoconf
base-devel automake
base-devel binutils
base-devel bison
base-devel fakeroot
base-devel flex
base-devel gcc
base-devel libtool
base-devel m4
base-devel make
base-devel patch
base-devel pkg-config
Also einfach ein: pacman -S base-devel, dann (vermute ich) sollte es klappen.
Das powertop2 Paket ersetzt/upgradet auch nicht wie ich oben sagte powertop aus dem Repo, sondern installiert sich nebenher, also mit powertop2 zu starten.
Außerdem gibt es noch im make install einen fehler mit den Sprachdatei(*.po), das Prog wird also nur auf Englisch sein. Aber bei po-Files (und tiefes makefile) hört mein Wissen langsam auf.... ;-)
//Edit2: Das alles muß ein Anwender nun nicht alles wissen, aber je mehr - gerade durch sowas hier - hängenbleibt, desto eher setzt irgendwann auch die Kenntniss und das Verständniss der Zusammenhänge auf. Was z.B. dazu führt das man bei Suchmaschinen noch Zusatzstickwörter einsetzten kann um sich z.B. statt durch 3Millionen nur durch 150.000 Fundstellen "wühlen" zu müssen ;-)