Antworten:
Dinge, die man beachten muss:
Wie bekannt ist die Website? War es zum Beispiel ein zufälliger Blog, der in Anzeigen enthalten ist, war es ein zufälliger Benutzer in einem Forum oder war es eine bekannte, angesehene Site?
Was behauptet es zu installieren? Behauptet es beispielsweise, einen Kernel oder ein Iconset zu installieren, ist es aber nur 1 MB groß?
Wie "wichtig" ist es, dass Sie den Inhalt davon haben .deb
?
So testen Sie Dinge sicher:
Ich benutze arkose
( in den Standard-Repos
) Sandboxing für meine Debs (und andere Dinge) - benutze es in etwa so:
sudo arkose -n -c "cd $PWD; $SHELL"
Was das gibt es mir eine „Sandbox“ mit copy-on-write Zugriff auf alles auf meinem Computer (sonst bekannt als „YAY I CAN vermasseln!“), Mein Home - Verzeichnis inklusive - also wenn die bösen böse .deb
tut sudo rm -rf /*
, ich DON VERLIERE KEINE DATEN!
Eine andere Sache, die nicht genug betont wird, ist, BACKUPS ZU MACHEN . Diese sind äußerst hilfreich und wir haben viele Fragen zu diesem Thema.
Kurz gesagt, stellen Sie einfach sicher, dass Sie darüber nachdenken, und laden Sie nicht einfach eine zufällige Deb herunter und installieren Sie sie.
Wenn Sie ein Paket von nicht vertrauenswürdigen oder fragwürdigen Quellen herunterladen, seien Sie paranoid. Wenn ein Benutzer in populären Foren wie ubuntuforums.org seinen ersten Beitrag nur mit einem kurzen Text wie "install this, works for me!", Gefolgt von einem Link, erstellt, achten Sie auf diesen Link und / oder Anweisungen.
Verwenden Sie nach Möglichkeit keine Binärpakete, insbesondere aus nicht vertrauenswürdigen Quellen. Holen Sie sich den Quellcode (für offizielle Ubuntu-Pakete können Sie diesen verwenden apt-get source package-name
) und schauen Sie ihn sich an.
Wenn das betreffende Paket klein ist, kann es sich lohnen, es zu analysieren. Ich ziehe das Terminal für das benutzen , weil ich dann einen schnellen Zugriff auf andere mächtige Kommandozeilen - Tools haben wie ls
, find
, file
, less
, vim
, grep
, sed
, dpkg
und viele andere. Nutzen Sie die Tab-Vervollständigung (dh drücken Tab, um Befehle und Dateinamen zu vervollständigen), das spart wirklich Zeit!
Zum Herunterladen einer .deb-Datei können Sie den Browser verwenden. Das Kopieren und anschließende Verwenden des Links wget
ist jedoch schneller, da Sie bereits damit experimentieren können.
$ mkdir /tmp/foo && cd /tmp/foo
$ wget http://nl.archive.ubuntu.com/ubuntu/pool/main/n/nvidia-common/nvidia-common_0.2.35_amd64.deb
Als nächstes ist es Zeit, die Datei selbst zu überprüfen. less
(durch lesspipe
) kann einen schnellen Überblick über den Dateiinhalt geben. Pfeiltasten, Seite hoch / runter, Home / Ende können für die Navigation nützlich sein, Qbeendet das Programm.
$ less nvidia-common_0.2.35_amd64.deb
nvidia-common_0.2.35_amd64.deb:
new debian package, version 2.0.
size 10802 bytes: control archive= 1877 bytes.
197 bytes, 11 lines * config #!/bin/sh
703 bytes, 16 lines control
741 bytes, 10 lines md5sums
163 bytes, 9 lines * postinst #!/bin/sh
206 bytes, 8 lines * postrm #!/bin/sh
827 bytes, 38 lines * preinst #!/bin/sh
263 bytes, 14 lines * prerm #!/bin/sh
365 bytes, 12 lines templates
Package: nvidia-common
Version: 1:0.2.35
Architecture: amd64
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Installed-Size: 156
Pre-Depends: dpkg (>= 1.15.7.2)
Depends: python2.7 | python2.6, python (>= 2.7.1-0ubuntu2), python (<< 2.8), debconf (>= 0.5.00) | debconf-2.0, pciutils, python-apt
Conflicts: nvidia-180-modaliases, nvidia-185-modaliases, nvidia-current-modaliases
Replaces: nvidia-180-modaliases, nvidia-185-modaliases, nvidia-current-modaliases
Section: admin
Priority: optional
Description: Find obsolete NVIDIA drivers
This package will find obsolete NVIDIA drivers in use,
detect the hardware and recommend the most appropriate
driver.
Python-Version: 2.6, 2.7
*** Contents:
drwxr-xr-x root/root 0 2011-09-07 11:06 ./
drwxr-xr-x root/root 0 2011-09-07 11:06 ./usr/
drwxr-xr-x root/root 0 2011-09-07 11:06 ./usr/share/
drwxr-xr-x root/root 0 2011-09-07 11:06 ./usr/share/doc/
drwxr-xr-x root/root 0 2011-09-07 11:06 ./usr/share/doc/nvidia-common/
-rw-r--r-- root/root 1174 2011-09-07 11:07 ./usr/share/doc/nvidia-common/changelog.gz
-rw-r--r-- root/root 466 2011-06-24 14:45 ./usr/share/doc/nvidia-common/copyright
...
Danach erhalten Sie einen Überblick über die Paketabhängigkeiten und welche Art von Dateien diese möglicherweise enthalten. Zeit, um die Dateien zu extrahieren und den Inhalt mit zu analysieren dpkg-deb
. Der erste Befehl extrahiert den Dateibaum in ein neu erstelltes Verzeichnis fs
, der zweite extrahiert ihn in ein DEBIAN
anderes Verzeichnis , da kein anderes Ziel angegeben ist:
$ dpkg-deb -x nvidia-common_0.2.35_amd64.deb fs
$ dpkg-deb -e nvidia-common_0.2.35_amd64.deb
Wir verwenden less
wieder den Inhalt der Betreuer - Skripte zu analysieren (dh die Dateien , die (und Entfernung während der Installation verwendet / laufen wird). prerm
, preinst
, postrm
, postinst
Sind Skripte laufen vor / nach dem Entfernen / Installation , die die wichtigsten Dateien zu analysieren Verwenden Sie :n
und :p
, um zwischen den Dateien zu wechseln. Durch Drücken von erhalten =
Sie den aktuellen Dateinamen und die Zeilennummer sowie die Anzahl der Dateien, die in der Liste enthalten sind.
$ less DEBIAN/*
Wenn die Paketskripte vernünftig aussehen, ist es Zeit, die installierten Inhalte zu analysieren (Tab-Vervollständigung verwenden). Bei Shell-Skripten und interpretierten Skripten (wie Python) ist die Analyse einfacher (vorausgesetzt, Sie kennen die Sprache).
$ less fs/usr/bin/nvidia-detector # fs<TAB><TAB>/usr/ <TAB><TAB>bin ...
$ less fs/usr/lib/nvidia/pre-install
$ ls -la fs/usr/lib # quickly check the directory contents, my memory is weak
drwxr-xr-x 5 peter peter 100 2011-09-07 11:06 .
drwxr-xr-x 5 peter peter 100 2011-09-07 11:06 ..
drwxr-xr-x 2 peter peter 60 2011-09-07 11:06 nvidia
drwxr-xr-x 3 peter peter 60 2011-09-07 11:06 python2.6
drwxr-xr-x 3 peter peter 60 2011-09-07 11:06 python2.7
$ # I conclude: python2.6 is not a symlink to python2.7
$ less fs/usr/lib/python2.7/dist-packages/NvidiaDetector/*
press 'v' to open an editor (e.g. nano, vim) to get syntax highlighting if preferable
Achten Sie besonders auf Konfigurationsdateien, insbesondere wenn sie Verzeichnisse wie /etc/init
(für Startskripte) oder /etc/modprobe.d
(Optionen zum Laden von Kernelmodulen) verwenden.
ldd
Kann für Binärdateien eine Idee geben, wofür ein Programm verwendet werden könnte. Das folgende Programm sieht aus wie ein grafisches Programm, das OpenGL verwendet.
$ ldd /usr/bin/glxgears
linux-vdso.so.1 => (0x00007fff7d3ff000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 (0x00007fa2ead11000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa2eaa8d000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fa2ea754000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa2ea3b5000)
...
Nachdem Sie sicher sind , dass das Paket gültig aussieht, können Sie auf es in VirtualBox Booten von einer Live - CD und Nutzung gehen installieren ps aux
, top
, strace -f -o logfile.txt programname
für die weitere Analyse.
.deb
Ordner mit der Dateirolle und sehen Sie, was sich darin befindet. Obwohl ich sagen muss, dass ich eine zufällige Deb von einem zufälligen Benutzer in einem zufälligen Thread in den Ubuntu-Foren heruntergeladen habe, um meine Probleme mit meinem Drucker zu beheben, hat es funktioniert.