Respuestas:
Cosas para considerar:
¿Qué tan conocido es el sitio? Por ejemplo, ¿era un blog aleatorio cubierto de anuncios, era un usuario aleatorio en algún foro o era un sitio conocido y respetado?
¿Qué dice instalar? Por ejemplo, ¿afirma instalar un núcleo o un conjunto de iconos, pero tiene solo 1 MB de tamaño?
¿Qué tan "importante" es tener el contenido de esto .deb
?
Formas de probar cosas de forma segura:
Uso arkose
( está en los
repositorios estándar ) sandboxing con mis debs (y otras cosas). Úselo de esta manera:
sudo arkose -n -c "cd $PWD; $SHELL"
Lo que eso me da es una "caja de arena" (también conocida como "YAY I CAN SCREW UP!") Con acceso de copia en escritura a todo en mi computadora, incluido mi directorio de inicio, así que si el desagradable desagradable lo .deb
hace sudo rm -rf /*
, NO LO HAGO ¡PIERDA CUALQUIER DATO!
Otra cosa que no está lo suficientemente estresada es HACER COPIAS DE SEGURIDAD . Esos son extremadamente útiles, y tenemos muchas preguntas sobre el tema.
En resumen, solo asegúrese de pensarlo, y no solo descargue una deb aleatoria e instálela.
Si está descargando un paquete de fuentes no confiables o cuestionables, sea paranoico. En foros populares como ubuntuforums.org, si un usuario hace su primera publicación que contiene solo un texto breve como "¡instalar esto, funciona para mí!", Seguido de un enlace, tenga cuidado con ese enlace y / o instrucciones.
No use paquetes binarios si es posible, especialmente de fuentes no confiables. Obtenga la fuente (para los paquetes oficiales de Ubuntu, esto se puede hacer con apt-get source package-name
) y eche un vistazo.
Si el paquete en cuestión es pequeño, puede valer la pena analizarlo. Yo prefiero usar el terminal para eso porque entonces acceso rápido a otras herramientas de gran alcance de línea de comandos como ls
, find
, file
, less
, vim
, grep
, sed
, dpkg
y muchos otros. Haga uso de completar pestañas (es decir, presionar Tabpara completar comandos y nombres de archivos), ¡realmente ahorra tiempo!
Para descargar un archivo .deb, puede usar el navegador, pero copiar el enlace y luego usarlo wget
es más rápido ya que ya puede experimentar con él.
$ 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
A continuación, es hora de verificar el archivo en sí. less
(a través lesspipe
) puede proporcionar una visión general rápida del contenido del archivo. Las teclas de flecha, página arriba / abajo, inicio / fin pueden ser útiles para navegar, Qsale del programa
$ 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
...
Después de esto, obtiene una visión general de las dependencias del paquete y qué tipo de archivos contiene. Tiempo para extraer los archivos y analizar los contenidos usando dpkg-deb
. El primer comando extrae el árbol de archivos en un directorio recién creado fs
, el segundo lo extrae DEBIAN
porque no se especifica ningún otro objetivo:
$ dpkg-deb -x nvidia-common_0.2.35_amd64.deb fs
$ dpkg-deb -e nvidia-common_0.2.35_amd64.deb
Vamos a utilizar less
de nuevo para analizar el contenido de los programas de desarrollador (es decir, los archivos que se van a utilizar / se ejecutan durante la instalación (y eliminación). prerm
, preinst
, postrm
, postinst
Son las secuencias de comandos se ejecutan antes / después de la eliminación / instalación que son los archivos más importantes para analizar Use :n
y :p
para cambiar entre los archivos. Al presionar =
, obtiene el nombre del archivo actual y el número de línea, así como el número de archivos que están en la lista.
$ less DEBIAN/*
Si las secuencias de comandos del paquete se ven sanas, es hora de analizar el contenido instalado (use tabulación completa). Para los scripts de shell y los scripts interpretados (como Python), el análisis es más fácil (suponiendo que se le conoce con el lenguaje).
$ 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
Preste especial atención a los archivos de configuración, especialmente si están utilizando directorios como /etc/init
(para scripts de inicio) u /etc/modprobe.d
(opciones para cargar módulos del kernel).
Para los archivos binarios, ldd
puede dar una idea de para qué podría usarse un programa. El siguiente programa se parece a un programa gráfico que usa 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)
...
Después de que esté seguro de que el paquete se parece válida, puede ir en instalarlo en VirtualBox arrancar desde un Live CD y el uso ps aux
, top
, strace -f -o logfile.txt programname
para su posterior análisis.
.deb
archivo con el rodillo para ver qué hay dentro. Aunque debo decir que descargué un deb aleatorio de un usuario aleatorio en un hilo aleatorio en los foros de Ubuntu para solucionar mis problemas con mi impresora, funcionó.