Abhängigkeiten eines Programms finden
-
- Beiträge: 826
- Registriert: 10.08.2007 15:26:28
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: St. Georges de Didonne
Abhängigkeiten eines Programms finden
Hallo,
ich habe das Python-Programm Mnemosyne zum Laufen gebracht.
Es haben einige Pakete gefehlt - leider habe ich mir nicht gemerkt, welche das waren
Kann man durch ein Programm feststellen welche Dateien / Pakete mnemosyne beim Aufruf bzw. bei der Programmausführung benutzt?
Vielen Dank für Hinweise.
wckl
ich habe das Python-Programm Mnemosyne zum Laufen gebracht.
Es haben einige Pakete gefehlt - leider habe ich mir nicht gemerkt, welche das waren
Kann man durch ein Programm feststellen welche Dateien / Pakete mnemosyne beim Aufruf bzw. bei der Programmausführung benutzt?
Vielen Dank für Hinweise.
wckl
Re: Abhängigkeiten eines Programms finden
Als Beispiel für Midnight-Commander
Hth
Code: Alles auswählen
apt-cache rdepends mc
apt-cache depends mc
ldd /usr/bin/mc
-
- Beiträge: 826
- Registriert: 10.08.2007 15:26:28
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: St. Georges de Didonne
Re: Abhängigkeiten eines Programms finden
Das hilft wohl nicht:
Wie gesagt, es ist ein Python-Programm; in testing sind die Pakete gelöscht.
Ich habe es aus dem Tar-Archiv auf der Projektseite installiert.
Code: Alles auswählen
apt-cache rdepends mnemosyne
E: Keine Pakete gefunden
apt-cache depends mnemosyne
E: Keine Pakete gefunden
ldd /usr/local/bin/mnemosyne
das Programm ist nicht dynamisch gelinkt
Ich habe es aus dem Tar-Archiv auf der Projektseite installiert.
Re: Abhängigkeiten eines Programms finden
Du kannst mit strace herausfinden, welche Dateien ein Programmaufruf öffnet:wckl hat geschrieben:15.11.2017 14:00:43Kann man durch ein Programm feststellen welche Dateien / Pakete mnemosyne beim Aufruf bzw. bei der Programmausführung benutzt?
Code: Alles auswählen
strace -e trace=open mnemosyne
Außerdem werden hier keine Abhängigsketten beachtet. Wenn z.B. dein Programm Bibliothek A öffnet, die wiederum Bibliothek B öffnet, dann erscheinen beide im strace-Output. Als Abhängigkeit in einem selbstgebauten Debianpaket bräuchtest du aber natürlich nur Paket A angeben, denn Paket A sollte selbst Paket B als Abhängigkeit definieren.
Als Hinweis sei vielleicht noch erwähnt, dass strace einen erheblichen Overhead beim Ressourcenverbrauch erzeugt. Das aufgerufene Programm wird also deutlich langsamer laufen als normalerweise.
Re: Abhängigkeiten eines Programms finden
Ja. In Stable und Unstable ist es aber in gleicher Version vorhanden:wckl hat geschrieben:15.11.2017 14:18:37Wie gesagt, es ist ein Python-Programm; in testing sind die Pakete gelöscht.
Code: Alles auswählen
$ rmadison mnemosyne
mnemosyne | 2.0~RC1-3 | oldoldstable | source, all
mnemosyne | 2.2.1-2 | oldstable | source, all
mnemosyne | 2.2.1-2 | oldstable-kfreebsd | source, all
mnemosyne | 2.4-0.1 | stable | source, all
mnemosyne | 2.4-0.1 | unstable | source, all
Die Abhängigkeiten in Stretch:
Code: Alles auswählen
$ apt-cache depends mnemosyne
mnemosyne
Depends: libqt5sql5-sqlite
Depends: python3
Depends: python3-cherrypy3
Depends: python3-matplotlib
Depends: python3-pyqt5
Depends: python3-pyqt5.qtsql
Depends: python3-pyqt5.qtwebchannel
Depends: python3-pyqt5.qtwebengine
Depends: python3-webob
Depends: <python3:any>
python3
Depends: libjs-sphinxdoc
Und das kann man auch online schauen:
https://packages.debian.org/stretch/mnemosyne
Re: Abhängigkeiten eines Programms finden
Das geht z. B. auch mit lsof:wckl hat geschrieben:15.11.2017 14:00:43Kann man durch ein Programm feststellen welche Dateien / Pakete mnemosyne beim Aufruf bzw. bei der Programmausführung benutzt?
Code: Alles auswählen
lsof -np $(pidof <Programm>)
EDIT:
Ein kleines Beispiel:
Code: Alles auswählen
# ps -fC python
UID PID PPID C STIME TTY TIME CMD
xx 5662 2342 0 11:05 pts/1 00:00:00 python -m SimpleHTTPServer 8080
Code: Alles auswählen
# lsof -np $(pidof python)
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 5662 xx cwd DIR 8,1 12288 1310722 /home/xx
python 5662 xx rtd DIR 8,1 4096 2 /
python 5662 xx txt REG 8,1 3172768 3932492 /usr/bin/python2.7
python 5662 xx mem REG 8,1 1742840 786460 /lib/i386-linux-gnu/libcrypto.so.1.0.0
python 5662 xx mem REG 8,1 358624 786452 /lib/i386-linux-gnu/libssl.so.1.0.0
python 5662 xx mem REG 8,1 9006448 3932272 /usr/lib/locale/locale-archive
python 5662 xx mem REG 8,1 280108 786716 /lib/i386-linux-gnu/libm-2.19.so
python 5662 xx mem REG 8,1 99888 786680 /lib/i386-linux-gnu/libz.so.1.2.8
python 5662 xx mem REG 8,1 9816 786601 /lib/i386-linux-gnu/libutil-2.19.so
python 5662 xx mem REG 8,1 13856 786730 /lib/i386-linux-gnu/libdl-2.19.so
python 5662 xx mem REG 8,1 1763068 786718 /lib/i386-linux-gnu/libc-2.19.so
python 5662 xx mem REG 8,1 134614 786720 /lib/i386-linux-gnu/libpthread-2.19.so
python 5662 xx mem REG 8,1 42716 786654 /lib/i386-linux-gnu/libnss_files-2.19.so
python 5662 xx mem REG 8,1 15292 4071757 /usr/lib/python2.7/lib-dynload/_hashlib.i386-linux-gnu.so
python 5662 xx mem REG 8,1 32792 4071760 /usr/lib/python2.7/lib-dynload/_ssl.i386-linux-gnu.so
python 5662 xx mem REG 8,1 134380 786744 /lib/i386-linux-gnu/ld-2.19.so
python 5662 xx 0u CHR 136,1 0t0 4 /dev/pts/1
python 5662 xx 1u CHR 136,1 0t0 4 /dev/pts/1
python 5662 xx 2u CHR 136,1 0t0 4 /dev/pts/1
python 5662 xx 3u IPv4 49022 0t0 TCP *:http-alt (LISTEN)
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce