Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
Superbunny79
- Beiträge: 17
- Registriert: 30.12.2009 20:35:08
Beitrag
von Superbunny79 » 26.01.2020 13:41:56
Hallo zusammen,
ich möchte auf meinem Debian 10 Buster gerne TVHeadend selber kompilieren.
Ich habe soweit alle empfohlenen Abhängigkeiten installiert und über das Autobuild.sh das kompilieren gestartet.
Leider kommt dabei dann ein Error
Kompletter Log:
Code: Alles auswählen
Klone nach 'tvheadend' ...
remote: Enumerating objects: 83954, done.
remote: Total 83954 (delta 0), reused 0 (delta 0), pack-reused 83954
Empfange Objekte: 100% (83954/83954), 57.98 MiB | 3.97 MiB/s, Fertig.
Löse Unterschiede auf: 100% (63349/63349), Fertig.
Auf Branch master
Ihr Branch ist auf demselben Stand wie 'origin/master'.
nichts zu committen, Arbeitsverzeichnis unverändert
dpkg-buildpackage: Information: Quellpaket tvheadend
dpkg-buildpackage: Information: Quellversion 4.3-1857~g221c29b40
dpkg-buildpackage: Information: Quelldistribution unstable
dpkg-buildpackage: Information: Quelle geändert durch Andreas Öman <andreas@tvheadend.org>
dpkg-buildpackage: Information: Host-Architektur amd64
dpkg-source --before-build .
debian/rules clean
dh clean --with-systemd
dh: Compatibility levels before 9 are deprecated (level 5 in use)
dh_clean -O--with-systemd
rm -f debian/debhelper-build-stamp
rm -rf debian/.debhelper/
dh_clean: Compatibility levels before 9 are deprecated (level 5 in use)
rm -f -- debian/tvheadend.substvars debian/tvheadend-dbg.substvars debian/files
rm -fr -- debian/tvheadend/ debian/tmp/ debian/tvheadend-dbg/
find . \( \( \
\( -path .\*/.git -o -path .\*/.svn -o -path .\*/.bzr -o -path .\*/.hg -o -path .\*/CVS -o -path .\*/.pc -o -path .\*/_darcs \) -prune -o -type f -a \
\( -name '#*#' -o -name '.*~' -o -name '*~' -o -name DEADJOE \
-o -name '*.orig' -o -name '*.rej' -o -name '*.bak' \
-o -name '.*.orig' -o -name .*.rej -o -name '.SUMS' \
-o -name TAGS -o \( -path '*/.deps/*' -a -name '*.P' \) \
\) -exec rm -f {} + \) -o \
\( -type d -a -name autom4te.cache -prune -exec rm -rf {} + \) \)
debian/rules build
dh build --with-systemd
dh: Compatibility levels before 9 are deprecated (level 5 in use)
dh_update_autotools_config -O--with-systemd
debian/rules override_dh_auto_configure
make[1]: Verzeichnis „/opt/tv-server/tvheadend“ wird betreten
dh_auto_configure -- --enable-ffmpeg_static --enable-hdhomerun_static
dh_auto_configure: Compatibility levels before 9 are deprecated (level 5 in use)
./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libexecdir=\${prefix}/lib/tvheadend --disable-maintainer-mode --disable-dependency-tracking --enable-ffmpeg_static --enable-hdhomerun_static
/opt/tv-server/tvheadend/support/configure.inc: Zeile 22: cc: Kommando nicht gefunden.
Checking support/features
ERROR: No C compiler found
dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libexecdir=\${prefix}/lib/tvheadend --disable-maintainer-mode --disable-dependency-tracking --enable-ffmpeg_static --enable-hdhomerun_static returned exit code 1
make[1]: *** [debian/rules:12: override_dh_auto_configure] Fehler 2
make[1]: Verzeichnis „/opt/tv-server/tvheadend“ wird verlassen
make: *** [debian/rules:6: build] Fehler 2
dpkg-buildpackage: Fehler: Unterprozess debian/rules build lieferte Exitstatus 2
Irgendwas scheint hier zu fehlen, leider habe ich kein Plan was... Da mir Google auch keinen Hinweis gab.
-
Superbunny79
- Beiträge: 17
- Registriert: 30.12.2009 20:35:08
Beitrag
von Superbunny79 » 26.01.2020 14:04:43
Hey,
danke für die schnelle Antwort.
Ich habe das mal versucht, leider ohne erfolg:
Code: Alles auswählen
root@NAS:/opt/tv-server/tvheadend# apt-get install gcc g++
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
g++ ist schon die neueste Version (4:8.3.0-1).
gcc ist schon die neueste Version (4:8.3.0-1).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
root@NAS:/opt/tv-server/tvheadend#
-
MSfree
- Beiträge: 11610
- Registriert: 25.09.2007 19:59:30
Beitrag
von MSfree » 26.01.2020 14:38:39
Da scheint der Link von cc auf gcc nicht zu existieren.
Was sagt denn:
-
Superbunny79
- Beiträge: 17
- Registriert: 30.12.2009 20:35:08
Beitrag
von Superbunny79 » 26.01.2020 14:58:33
Das habe ich als Ausgabe erhalten:
Code: Alles auswählen
root@NAS:~# update-alternatives --display cc
cc - automatischer Modus
beste Version des Links ist /usr/bin/gcc
Link verweist zur Zeit auf /usr/bin/gcc
Link cc ist /usr/bin/cc
/usr/bin/gcc - Priorität 20
root@NAS:~#
Passt das soweit...?
-
towo
- Beiträge: 4545
- Registriert: 27.02.2007 19:49:44
- Lizenz eigener Beiträge: GNU Free Documentation License
Beitrag
von towo » 26.01.2020 15:04:23
Und warum installierst Du nicht einfach per deb?
Welchen Grund gibt es, das selbst kompilieren zu wollen?
-
Superbunny79
- Beiträge: 17
- Registriert: 30.12.2009 20:35:08
Beitrag
von Superbunny79 » 26.01.2020 15:21:12
Im Moment ist Doozer wieder mal nicht erreichbar und ich kompiliere mir den TVheadend gern selber.
-
Meillo
- Moderator
- Beiträge: 9241
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 26.01.2020 15:44:41
Superbunny79 hat geschrieben: 26.01.2020 15:21:12
Im Moment ist Doozer wieder mal nicht erreichbar und ich kompiliere mir den TVheadend gern selber.
Selber kompilieren koenntest du auch, wenn du das Debian-Source-Paket runterlaedst und das als Basis nimmst. Das haette dann schon die scheinbar noetigen Anpassungen am Buildsystem umgesetzt. Du kannst dir auch im Package-Tracker (oder wie das heisst) anschauen in welcher Weise das Upstream-Release fuer Debian angepasst worden ist. So solltest du wohl die Stelle finden, die fuer dieses Problem verantwortlich ist.
Sieht mir jedenfalls recht komisch aus, wenn das Buildsystem den C-Compiler nicht findet, obwohl es ein `gcc' ist, der auch als `cc' ansprechbar ist. Du koenntest das Build-System auch mal nach der Fehlermeldung durchgreppen und schauen, durch welche Bedingung sie tatsaechlich ausgeloest wird. Manchmal stimmen die Bedingungen und Fehlertexte nicht ueberein.
Keine Ahnung. Das ist was mir dazu gerade einfaellt.
Use ed once in a while!
-
MSfree
- Beiträge: 11610
- Registriert: 25.09.2007 19:59:30
Beitrag
von MSfree » 26.01.2020 15:48:19
Die erste Frage wäre, ob du
cc direkt auf der Kommandozeile aufrufen kannst.
Und diese Zeile deines Logs würde ich mal genauer betrachten:
Code: Alles auswählen
/opt/tv-server/tvheadend/support/configure.inc: Zeile 22: cc: Kommando nicht gefunden.
Was steht denn in der Datei
/opt/tv-server/tvheadend/support/configure.inc in der Zeile 22.
-
Superbunny79
- Beiträge: 17
- Registriert: 30.12.2009 20:35:08
Beitrag
von Superbunny79 » 26.01.2020 17:08:59
Ich habe mir die Datei mal angeschaut....lol
Das würde in Zeile 22 stehen...
Code: Alles auswählen
[ -z "$ARCH" ] && ARCH=$($CC -dumpmachine | cut -d '-' -f 1)
Allerdings no Plan was das bedeutet
So sieht die komplette Datei aus:
40973
Zuletzt geändert von
TRex am 26.01.2020 18:20:02, insgesamt 1-mal geändert.
Grund: Nach nopaste ausgelagert
-
JTH
- Moderator
- Beiträge: 3077
- Registriert: 13.08.2008 17:01:41
- Wohnort: Berlin
Beitrag
von JTH » 26.01.2020 18:11:49
Superbunny79 hat geschrieben: 26.01.2020 17:08:59
Code: Alles auswählen
[ -z "$ARCH" ] && ARCH=$($CC -dumpmachine | cut -d '-' -f 1)
Allerdings no Plan was das bedeutet
Das ruft einmal den C-Compiler auf, um die CPU-Architektur rauszufinden, für die du gerade kompilieren willst. Die Zeile passt so.
Kannst du auch von Hand aufrufen, würde etwa folgendes ausgeben:
Auch wenn deine Ausgabe für
update-alternatives --display cc oben okay aussah – was liefern dir etwa folgende Kommandos? In der selben Umgebung ausgeführt, in der du zu kompilieren versuchst.
Code: Alles auswählen
$ echo $CC $PATH
$ command -v cc gcc
$ ls -l /usr/bin/cc
$ cc --version
Manchmal bekannt als Just (another) Terminal Hacker.
-
Superbunny79
- Beiträge: 17
- Registriert: 30.12.2009 20:35:08
Beitrag
von Superbunny79 » 26.01.2020 23:31:08
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/usr/bin/gcc
ls: Zugriff auf '/usr/bin/cc' nicht möglich: Datei oder Verzeichnis nicht gefunden
-bash: cc: Kommando nicht gefunden.
Scheint was zu fehlen......
-
mat6937
- Beiträge: 3374
- Registriert: 09.12.2014 10:44:00
Beitrag
von mat6937 » 26.01.2020 23:45:01
Superbunny79 hat geschrieben: 26.01.2020 23:31:08
Scheint was zu fehlen......
Es fehlen die symlinks. Z. B.:
Code: Alles auswählen
:~ $ ls -la /etc/alternatives/cc
lrwxrwxrwx 1 root root 12 Sep 26 02:11 /etc/alternatives/cc -> /usr/bin/gcc
Code: Alles auswählen
:~ $ ls -l /usr/bin/cc
lrwxrwxrwx 1 root root 20 Sep 26 02:11 /usr/bin/cc -> /etc/alternatives/cc
Kannst ja manuell setzen.
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce