Réponses:
Choses à considérer:
Le site est-il bien connu? Par exemple, s'agissait-il d'un blog aléatoire couvert de publicités, d'un utilisateur aléatoire sur un forum ou d'un site bien connu et respecté?
Que prétend-il installer? Par exemple, prétend-il installer un noyau ou un jeu d'icônes, mais est-il seulement gros de 1 Mo?
Dans quelle mesure est-ce "important" que vous ayez le contenu de cela .deb
?
Façons de tester les choses en toute sécurité:
J'utilise arkose
( son dans le repos standard
) sandboxing avec mes debs (et d'autres choses) - utilisez-le quelque chose comme ceci:
sudo arkose -n -c "cd $PWD; $SHELL"
Qu'est-ce que cela me donne un "bac à sable" (autrement connu comme "YAY I CAN SCREW UP!") Avec un accès en copie sur tout à mon ordinateur, y compris mon répertoire personnel - donc si le méchant méchant le .deb
fait sudo rm -rf /*
, JE DONNE NE PERDEZ AUCUNE DONNÉE!
FAIRE DES SAUVEGARDES est une autre chose qui n'est pas assez soulignée . Ces informations sont extrêmement utiles et nous avons de nombreuses questions sur le sujet.
En bref, assurez-vous d'y penser et ne téléchargez pas simplement un deb aléatoire et installez-le.
Si vous téléchargez un package à partir de sources non fiables ou douteuses, soyez paranoïaque. Sur les forums populaires comme ubuntuforums.org, si un utilisateur fait son premier message contenant uniquement un court texte comme "installez ceci, ça marche pour moi!", Suivi d'un lien, faites attention à ce lien et / ou aux instructions.
N'utilisez pas de packages binaires si possible, en particulier à partir de sources non fiables. Obtenez la source (pour les packages officiels Ubuntu, cela peut être fait avec apt-get source package-name
) et jetez un coup d'œil.
Si le package en question est petit, il peut être utile de l'analyser. Je préfère utiliser le terminal pour cela parce que j'ai alors un accès rapide à d' autres outils de ligne de commande puissante comme ls
, find
, file
, less
, vim
, grep
, sed
, dpkg
et beaucoup d' autres. Utilisez la complétion de tabulation (c'est-à-dire frapper Tabpour terminer les commandes et les noms de fichiers), cela fait vraiment gagner du temps!
Pour télécharger un fichier .deb, vous pouvez utiliser le navigateur, mais copier le lien puis l'utiliser wget
est plus rapide car vous pouvez déjà l'expérimenter.
$ 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
Ensuite, il est temps de vérifier le fichier lui-même. less
(à travers lesspipe
) peut fournir un aperçu rapide du contenu du fichier. Les touches fléchées, page haut / bas, accueil / fin peuvent être utiles pour naviguer, Qquitte le programme.
$ 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
...
Après cela, vous obtenez un aperçu des dépendances du package et du type de fichiers qu'il contient éventuellement. Il est temps d'extraire les fichiers et d'analyser le contenu à l'aide dpkg-deb
. La première commande extrait l'arborescence des fichiers dans un répertoire nouvellement créé fs
, la seconde l'extrait vers DEBIAN
car aucune autre cible n'est spécifiée:
$ dpkg-deb -x nvidia-common_0.2.35_amd64.deb fs
$ dpkg-deb -e nvidia-common_0.2.35_amd64.deb
Nous allons utiliser à less
nouveau pour analyser le contenu des scripts de maintenance ( par exemple les fichiers qui seront utilisés / exécutés lors de l' installation (et l' élimination). prerm
, preinst
, postrm
, postinst
Sont des scripts exécutés avant / après le retrait / l' installation qui sont les fichiers les plus importants pour analyser . Utilisez :n
et :p
pour basculer entre les fichiers. En appuyant sur =
, vous obtenez le nom de fichier actuel et le numéro de ligne ainsi que le nombre de fichiers qui sont dans la liste.
$ less DEBIAN/*
Si les scripts de package semblent sains d'esprit, il est temps d'analyser le contenu installé (utilisez la tabulation). Pour les scripts shell et les scripts interprétés (comme Python), l'analyse est plus facile (en supposant que vous connaissez le langage).
$ 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
Portez une attention particulière aux fichiers de configuration, en particulier s'ils utilisent des répertoires tels que /etc/init
(pour les scripts de démarrage) ou /etc/modprobe.d
(options de chargement des modules du noyau).
Pour les binaires, ldd
peut donner une idée de l'utilisation d'un programme. Le programme ci-dessous ressemble à un programme graphique qui utilise OpenGL.
$ 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)
...
Une fois que vous êtes sûr que le paquet semble valide, vous pouvez aller sur l' installer dans le démarrage VirtualBox partir d' un CD en direct et l' utilisation ps aux
, top
, strace -f -o logfile.txt programname
pour une analyse ultérieure.
.deb
rouleau de fichiers pour voir ce qu'il y a à l'intérieur. Bien que je dois dire que j'ai téléchargé un deb aléatoire d'un utilisateur aléatoire sur un thread aléatoire sur les forums Ubuntu pour résoudre mes problèmes avec mon imprimante, cela a fonctionné.