PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arch Build System



skeleton
20.12.2008, 17:52
Hi,
kann mir jemand hier mit dem Arch Build System weiterherlfen? Ich will ein Programm installieren, dass nicht in den Repos vorhanden ist und welches nur als Source heruntergeladen werden kann.
Wie mach ich das? Hab herrausgefunden mit dem Arch Build System geht das, indem man ein Paket erstellt und dieses über Pacman installiert. Wie man ABS installiert is ja im Wiki beschrieben, nur wie man dann ein Pacman-Paket erstellt versteh ich nicht.
Da ist beschrieben dass man es trotzdem über den bekannten Dreisatz installieren soll und daraus dann ein Paket erstellen, wenn ich das richtig verstehe was da steht.
Dann isses aber ja schon installiert und ich wills ja über Pacman installieren.

Ich hoffe jemand kann mir da mal weiterhelfen.

Hier der Link:
http://wiki.archlinux.de/index.php?title=Abs

Hab, wie nicht schwer zu erraten, Arch Linux mit xfce.

sim4000
20.12.2008, 18:01
Schon im AUR nachgeschaut?

http://aur.archlinux.org/packages.php
Hilfe dazu: http://wiki.archlinux.org/index.php/AUR
http://wiki.archlinux.org/index.php/PKGBUILD

Installieren kannste dann, indem du im Ordner wo das PKGBUILD liegt ein makepkg machst. und dann kannste die ganz normel mit
pacman -U <dateiname> installieren

./pat
20.12.2008, 18:01
was spricht gegen ganz normales installieren unabhängig von pacman?

sim4000
20.12.2008, 18:03
was spricht gegen ganz normales installieren unabhängig von pacman?

Man umgeht damit den Paketmanager, was das System durcheinander bringen kann, weil die Paketdatenbanken nicht mehr stimmen.

Floh1111
20.12.2008, 18:06
Sollte das Packet im AUR sein, kannst du es auch mit yaourt installieren.
Yaourt ist praktisch Pacman für das AUR.

Bye
Floh1111

skeleton
20.12.2008, 22:40
Ok, yaourt werd ich testen, die letzte von den 3 Wikiseiten kannte ich auch noch nicht. Ich werd das ganze mal testen und mich dann wieder melden.

Danke schonmal.
.
.
.
EDIT (autom. Beitragszusammenführung) :
.
Also ich hab mich jetzt mal n bisschen eingelesen, aber immernoch einige Fragen:

Hier (http://wiki.archlinux.org/index.php/ABS) steht ja glaub ich alles wichtige drinnen.
Aber wozu muss ich Repos in /etc/abs.conf eintragen und den "abs Tree" erstellen wenn ich doch einfach nur Die Sourcen mit "The build function, the ABS way" installieren muss?
Und wozu brauch ich dann diese pkgbuilds wenn ich mir einfach aus jedem beliebigen Tarball ein Packet für Pacman erstellen kann?

Ich glaub ich versteh noch irgentwas falsch.
Habs noch nicht ausprobiert, aber solang ich mir noch so unsicher bin will ich erstmal warten.

sim4000
20.12.2008, 22:44
Du baust dir ja mit dem PKGBUILD ein Pacman Paket. Ein PKGBUILD ist sozusagen nur eine Bauanleitung. Damit wird ein Paket für dein System zusammen gebaut, welches du dann mit pacman -U installieren kannst.

Was man nun mit diesem ABS macht, kann ich dir nicht beantworten. Hab ich noch nie genutzt.

Um was für ein Programm geht es überhaupt? Schon mal in AUR geschaut, ob es das da gibt? (Da gibt es eigentlich fast alles)

defcon
20.12.2008, 23:00
Was man nun mit diesem ABS macht, kann ich dir nicht beantworten. Hab ich noch nie genutzt.


Damit kannst Du dir das System mit neuen Compilerflags neubauen, oder vorhandene Pakete an deine Berdürfnisse anpassen.

@skeleton
Wenn man ein Paket sucht, welches nicht in den Repos ist, schaut man immer noch ins AUR. Wenn es dort auch nicht erstellt man sich eine PKGBUILD, und strickt sich das Programm selber zusammen.

skeleton
20.12.2008, 23:01
Ja, ich hab schonmal nachgeschaut, es ist dort vorhanden und heißt gnomad. Ist aber nur eines, ich hab noch n paar mehr die ich nicht auswendig weiß und die ich irgentwo schon gespeichert hab.

Nur als Beispiel, wie installiere ich dann Gnomad mit den Daten ausm AUR? Is mir irgendwie auch schleierhaft.

defcon
20.12.2008, 23:07
Lade dir den Tarball runter (http://aur.archlinux.org/packages/gnomad2/gnomad2.tar.gz), entpacken, in das Verzeichnis wechseln und

makepkg
eingeben.

Wenn alles erfolgreich durchgelaufen ist das Paket mit


pacman -U gnomad*.pkg.tar.gz

installieren.

Rain_Maker
20.12.2008, 23:09
$ yaourt -Ss gnomad
aur/gnomad2 2.9.2-2
GTK client program for the NOMAD Jukebox with MTP support

$ yaourt -S gnomad2

==> Downloading gnomad2 PKGBUILD from AUR...

==> Last 5 comments ordered by date (asc):

Comment by: moz on 20081030 [13:56:28]
@sawk &amp; scippio
I had your same exact problem, gnomad2 doesnt compile with libmtp from core. After installing libmtp-devel from aur (conflicts with libmpt core) you HAVE to edit the pkgbuild file to actually make it use the libmtp-devel. So the pkgbuild would look like this:
# Maintainer: Alois Nespor <alois.nespor@gmail.com>
pkgname=gnomad2
pkgver=2.9.2
pkgrel=2
pkgdesc="GTK client program for the NOMAD Jukebox with MTP support"
arch=('i686' 'x86_64')
url="http://gnomad2.sourceforge.net"
license=('GPL')
depends=('libusb' 'libnjb' 'libid3tag' 'gtk2' 'libmtp-devel>=0.3.0' 'taglib')
makedepends=('perlxml')
install=$pkgname.install
source=(http://downloads.sourceforge.net/gnomad2/gnomad2-$pkgver.tar.gz)
build()
{
cd $startdir/src/gnomad2-$pkgver
./configure --prefix=/usr
make || return 1
make DESTDIR=$startdir/pkg install
}
md5sums=('39ca24bec8b8a28ee73e88eabddf59fb')
Notice the depends. Now it should compile flawlessly :).

Comment by: fettouhi on 20081201 [09:13:44]
Why has the libmtp version been set to 0.3.3 and above. Doesn't gnomad2 2.9.2 work with libmtp 0.2.6 from extra?
Regards
André

Comment by: anespor on 20081201 [09:30:47]
Yes, gnomad 2.9.2 support now libmtp 0.3.0 and above, because is updated to libmtp 0.3.0 API.

Comment by: fettouhi on 20081201 [10:52:07]
Yeah but does it still support libmtp versions below 0.3.0, e.g. is it backwards compatible?
Regards
André

Comment by: anespor on 20081201 [11:53:16]
you can use 2.9.1, changes in API are major

First Submitted: Sun, 25 Mar 2007 02:51:27 +0000
Last Updated: Mon, 13 Oct 2008 13:22:07 +0000
gnomad2 2.9.2-2 (Unsupported): GTK client program for the NOMAD Jukebox with MTP support

==> gnomad2 dependencies:
- libusb (already installed)
- libnjb (already installed)
- libid3tag (already installed)
- gtk2 (already installed)
- libmtp (already installed)
- taglib (already installed)
- perlxml (already installed)
==> Edit the PKGBUILD (recommended) ? [Y/n]("A" to abort)
==> ----------------------------------------------
==>

skeleton
20.12.2008, 23:20
OK, so wie defcon es beschrieben hat sollte es ja dann gehen. Danke dir und den anderen.

Aber wie is das jetzt mit yaourt? Bei mir gibts das nicht und Pacman findet es auch nicht, d.h. ich müsste es ja auch über Sourcen erst installieren oder?

defcon
20.12.2008, 23:22
Yaourt findest Du im AUR (http://aur.archlinux.org/packages.php?ID=5863)

skeleton
20.12.2008, 23:24
Nur zum Verständnis: Ich könnte jedes Programm so installieren wie von dir beschrieben oder einmal Yaourt installieren und damit alle weiteren richtig?

Rain_Maker
20.12.2008, 23:27
http://wiki.archlinux.org/index.php/Yaourt

Ist wirklich unheimlich schwer zu finden :rolleyes:

defcon
20.12.2008, 23:28
Entweder so wie ich es vorhin beschrieben habe (tarball runterladen, entpacken, usw.)

oder mit Yaourt, das funktioniert wie mit pacman.



yaourt -S <paketname>

Paar Fragen beantworten, und yaourt installiert das inclusive Abhängigkeiten.

skeleton
21.12.2008, 09:11
Und genau bei den Abhängigkeiten hab ich jetzt ein Problem, bei gnomad wil die libmtp 0.3.3, leider ist bei mit nur 0.2.x drauf und wenn ich sie mit Pacman aktualisieren will findet er keine neue Version.
Wenn die aber benöig wird muss es die doch geben irgentwo?

defcon
21.12.2008, 10:12
http://aur.archlinux.org/packages.php?ID=7381&O=&L=&C=&K=&SB=&SO=&PP=&do_Orphans=&SeB=

Ist aber etwas out of date. Wäre also ratsam die Verion dann in der PKGBUILD anzupassen damit du auch die aktuelle libmtp hast.



pkgver=0.3.3

Rain_Maker
21.12.2008, 12:18
Tja, da sind eben die zusätzlichen "Features" des AUR.

Weil nun mal jeder Dödel dort Pakete deponieren kann und es keine "Kontrollinstanz" gibt, die z.b. gesetzte Abhängigkeiten prüft, ist die Qualität der dort deponierte Pakete auch dementsprechend mies.

defcon
21.12.2008, 13:15
So, libmtp wurde aus AUR entfernt, da das Paket bereits in [extra] vorhanden ist.
Entweder wartest du bis der Maintainer es aktualisiert hat, oder du nimmst die PKGBUILD von dem Paket aus abs und aktualisierst es für dich selber.

Rain_Maker
21.12.2008, 13:36
Wenn schon, dann den PKGBUILD des Paketes aus extra als Vorlage verwenden.

http://repos.archlinux.org/viewvc.cgi/libmtp/repos/extra-i686/

Unter SVN-Eintrag.

Dem Kram aus dem AUR würde ich im Zweifelsfall nie trauen, man darf sich z.B. auch fragen, wie der Spaßvogel von Paketersteller diese Abhängigkeit libmtp>= 0.3.3 einfügen und erfüllen konnte, wenn es nirgends ein Paket für libmtp in dieser Version gibt.

Oder hat der etwa sein eigenes Paket nicht getestet?

Aber das ist nur die normale Härte, wenn man mal ein wenig im AUR stöbert, dann wird einem nach kurzer Zeit vorschriftsgemäss übel.

defcon
21.12.2008, 13:39
Ob jetzt diese PKGBUILD, oder die aus ABS ist doch grad Jacke wie Hose.
Die Version muss man so oder so anpassen.

Floh1111
21.12.2008, 13:42
Allgemein zum AUR: Das AUR ist kein offizielles Repository, sondern als Sammelstelle für alles Mögliche gedacht. Deshalb ist es logisch, das sich dort auch ne Menge Schrott tummelt.

Jemand der das AUR einsetzt, weiß aber in der Regel was er tut und sieht sich die PKGBUILDS mit denen er kompiliert vorher an. Wenn nicht, selber schuld! Wenn zu blöd, nicht benutzen, aus offiziellen Repos installieren oder Distribution wechseln.

Von daher verstehe ich nicht warum das hier indirekt kritisiert wird. Man könnte es auch als Bereicherung ansehen.

Bye
Floh1111

Rain_Maker
21.12.2008, 13:43
Ob jetzt diese PKGBUILD, oder die aus ABS ist doch grad Jacke wie Hose.

Kann ich jetzt schwer beurteilen, weil Dein oben geposteter Link scheinbar tot ist, aber wozu irgendwas aus einem inoffiziellen Repository verwenden, wenn man die Vorlage des offiziellen Paketes hat?

Im besten Fall sind die Build-Funktionen identisch, im schlechtesten Fall gibt es eine Abweichung und dann gilt eben "Trau nie dem AUR".

defcon
21.12.2008, 13:48
Kann ich jetzt schwer beurteilen, weil Dein oben geposteter Link scheinbar tot ist

Deswegen sagte ich ja auch auch in einem Post danach das das Paket im AUR gelöscht wurde, weil es ein Duplikat ist von libmpt in [extra]



aber wozu irgendwas aus einem inoffiziellen Repository verwenden, wenn man die Vorlage des offiziellen Paketes hat?

Deswegen nimmt ja auch ABS.

Rain_Maker
21.12.2008, 13:59
War ein Freudscher Verleser, AUR statt ABS gelesen.

Und das AUR ist und bleibt Schrott, dabei bleibe ich, denn es tummelt sich viel zu viel Mist darin, es sei denn, ich hatte unglaubliches "Glück", als ich mir mal die Mühe gemacht habe eine Handvoll Pakete zu untersuchen, die ich zufäligerweise deshalb kenne, weil ich sie auch für openSUSE baue und die dort auftauchenden Probleme mit z.B. fehlenden Abhängigkeiten oder anzupassenden Makefiles/Patches für eine ordentliche Funktion kenne.

Mehr als die Hälfte war schlicht und ergreifend Müll, besonders köstlich waren da z.B.

- Ein compat-wireless Paket (damals noch für Kernel 2.6.25/2.6.26), welches dafür sorgte, daß sämtliche LAN-Karten, die als Kernelmodul b44 nutzten, nicht mehr funktionierten, weil eine Abhängigkeit vergessen wurde.

- Das umtsmon-Paket, welches keine Languagefiles mitlieferte (weil der Maintainer zu faul war, die INSTALL/README zu lesen) und deshalb nur auf Systemen mit englischen Locales liefen.

- Die Pakete für rt2860sta und rt2870sta, die fehlerhaft waren und auf dilettantischste Art und Weise versuchten, das Kernelmodul "umzubenennen", wobei der Ersteller auch noch mit Copy and Paste gearbeitet hatte und beide Module die selbe "Umbenennung" erfuhren. Dazu noch eine falsche Versionsnumerierungen, weshalb die von mir gefixten Pakete von yaourt per default überschrieben worden wären, weil sie laut falscher Versionsnummer "neuer" waren.

Und bis dann die von mir auf der jeweiligen AUR-Seite des Paketes geposteten Fixes angewandt wurden, dauerte es teilweise Monate.


Soll ich weiter machen?

skeleton
10.01.2009, 22:13
Ich weiß es ist schon länger her. Ich hab mich in letztes Zeit ein wenig mit dem ganzen Befasst und bin eigentlich auch zurechtgekommen. Die meisten Programme lassen sich einfach installieren, bei Gnomad2 kommt jedoch immer dieser Fehler:


==> Beginne build()...
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make sets $(MAKE)... (cached) yes
checking for a BSD-compatible install... /bin/install -c
checking for pkg-config... no
checking for GN... configure: error: The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.

Alternatively, you may set the environment variables GN_CFLAGS
and GN_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See `config.log' for more details.
make: *** Keine Targets angegeben und keine »make«-Steuerdatei gefunden. Schluss.
==> FEHLER: Build fehlgeschlagen.
Breche ab ...
Error: Makepkg was unable to build gnomad2 package.


Er findet die pkg-config Datei nicht. Damit ist doch die PKGBUILD gemeint, diese ist vorhanden ich kann sie ja sogar editieren bei der installation.
Hab schon die Seiten im Wiki gelesen und daraufhin die PKGBUILD überprüft, darin scheint kein Fehler zu sein.
Kann mir jemand sagen wo ich das was machen nachtragen muss bzw wo genau der Fehler liegt?

Rain_Maker
10.01.2009, 22:17
Er findet die pkg-config Datei nicht. Damit ist doch die PKGBUILD gemeint,

Nein, damit ist "pkgconfig" gemeint.

defcon
10.01.2009, 22:42
Installier einfach mal die pkgconfig, wie Rain_Maker ja schon bemerkt hat ist diese ja nicht vorhanden.

skeleton
11.01.2009, 09:12
Ok, danke. Damit gings.

Edit: Kleines Problemchen noch dass eigentlich nix mit ABS bzw der Installation zu tun hat: Ich kanns gnomad zwar als Benutzer ausführen, aber den Player erkennen tut er nur unter root. Hab diesen (http://forum.archlinux.de/?page=Postings;id=20;thread=10165) Thread gefunden mit dem selben Problem, leider versteh ich die Lösung nicht ganz. Ich hab zwar in die entsprechenden Dateien reingeschaut und bin auch als normaler Benutzer in den dort angegebenen Gruppen, geht aber leider trotzdem nicht. Hab im Wiki jetzt nichts dazu entdeckt.

sim4000
11.01.2009, 10:39
Bist du denn in der Gruppe "video" drin?

<sim4000> (~) id
uid=1000(sim4000) gid=101(sim4000) Gruppen=6(disk),10(wheel),50(games),90(network),91 (video),92(audio),93(optical),95(storage),101(sim4 000),102(dialout)

skeleton
11.01.2009, 12:04
Ja bin ich.
In der "45-libnjb.rules" ist unter anderem mein Player drin, die Gruppe dort ist storage. Aber auch in dieser bin ich drin.

skeleton
14.01.2009, 18:48
Kann mir keiner weiter helfen? Muss ich dafür wirklich nen neuen Thread aufmachen?

defcon
14.01.2009, 19:53
Wenn ich es wüsste, würde ich ja sagen.. aber ich weiss es nicht :)

skeleton
15.01.2009, 18:57
Naja, dann werd ich am Wochenende noch mal intesivst suchen und n bisschen rumprobieren. ggf. im Arch Forum fragen.

defcon
15.01.2009, 20:27
Bringt dich das hier evtl. weiter?
http://bbs.archlinux.org/viewtopic.php?id=50910

skeleton
17.01.2009, 13:13
Jop, vielen dank. Damit gehts. Auf die Idee im Englischen Archforum zu suchen bin ich garnicht gekommen.
Besten dank nochmal.

defcon
17.01.2009, 13:40
Bitte, kein Problem.