Jawaban:
Hal yang perlu dipertimbangkan:
Seberapa terkenal situsnya? Misalnya, apakah itu blog acak yang dicakup iklan, apakah itu pengguna acak di beberapa forum, atau apakah itu situs yang terkenal dan disegani?
Apa yang diklaim untuk dipasang? Sebagai contoh, apakah ia mengklaim menginstal kernel atau ikon, tetapi apakah hanya sebesar 1MB?
Seberapa "penting" Anda memiliki konten ini .deb
?
Cara untuk menguji berbagai hal dengan aman:
Saya menggunakan
sandboxing arkose
( yang ada di repos standar ) dengan hutang saya (dan hal-hal lain) - gunakan sesuatu seperti ini:
sudo arkose -n -c "cd $PWD; $SHELL"
Apa yang dilakukannya memberi saya "kotak pasir" (atau dikenal sebagai "YAY I CAN SCREW UP!") Dengan akses copy-on-write ke semua yang ada di komputer saya, termasuk direktori home saya - jadi jika nasty nasty .deb
melakukannya sudo rm -rf /*
, saya DON AKAN KALAHKAN SETIAP DATA!
Hal lain yang tidak cukup ditekankan adalah MAKE BACKUPS . Itu sangat membantu, dan kami memiliki banyak pertanyaan tentang topik tersebut.
Singkatnya, pastikan Anda memikirkannya, dan jangan hanya mengunduh deb acak dan menginstalnya.
Jika Anda mengunduh paket dari sumber yang tidak tepercaya atau dipertanyakan, bersikaplah paranoid. Di forum populer seperti ubuntuforums.org, jika pengguna membuat posting pertamanya yang hanya berisi teks pendek seperti "instal ini, berfungsi untuk saya!", Diikuti oleh tautan, berhati-hatilah dengan tautan dan / atau instruksi itu.
Jangan gunakan paket biner jika memungkinkan, terutama dari sumber yang tidak terpercaya. Dapatkan sumbernya (untuk paket Ubuntu resmi, ini bisa dilakukan dengan apt-get source package-name
) dan melihatnya.
Jika paket yang dimaksud kecil, mungkin perlu dianalisis. Saya lebih suka menggunakan terminal untuk itu karena saya kemudian memiliki akses cepat ke alat yang kuat baris perintah lain seperti ls
, find
, file
, less
, vim
, grep
, sed
, dpkg
dan banyak orang lain. Manfaatkan tab-completion (yaitu memukul Tabuntuk menyelesaikan perintah dan nama file), itu benar-benar menghemat waktu!
Untuk mengunduh file .deb, Anda dapat menggunakan browser, tetapi menyalin tautan dan kemudian menggunakan wget
lebih cepat karena Anda sudah dapat melakukan percobaan dengannya.
$ 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
Selanjutnya, saatnya untuk memeriksa file itu sendiri. less
(melalui lesspipe
) dapat memberikan gambaran umum singkat tentang isi file. Tombol panah, halaman atas / bawah, home / end dapat berguna untuk bernavigasi, Qkeluar dari program.
$ 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
...
Setelah ini, Anda mendapatkan gambaran umum tentang dependensi paket dan jenis file apa yang mungkin terkandung di dalamnya. Waktu untuk mengekstrak file dan menganalisis konten menggunakan dpkg-deb
. Perintah pertama mengekstrak pohon file dalam direktori yang baru dibuat fs
, yang kedua mengekstraknya DEBIAN
karena tidak ada target lain yang ditentukan:
$ dpkg-deb -x nvidia-common_0.2.35_amd64.deb fs
$ dpkg-deb -e nvidia-common_0.2.35_amd64.deb
Kami akan menggunakan less
lagi untuk menganalisis isi dari skrip pengelola (yaitu file yang akan digunakan / dijalankan selama instalasi (dan penghapusan). prerm
, preinst
, postrm
, postinst
Skrip dijalankan sebelum / sesudah penghapusan / instalasi yang paling file penting untuk menganalisis Gunakan :n
dan :p
untuk beralih di antara file-file tersebut. Dengan menekan =
, Anda mendapatkan nama file saat ini dan nomor baris serta jumlah file yang ada dalam daftar.
$ less DEBIAN/*
Jika skrip paket terlihat waras, saatnya menganalisis konten yang diinstal (gunakan tab-completion). Untuk skrip shell dan skrip yang ditafsirkan (seperti Python), analisis lebih mudah (dengan asumsi Anda dikenal dengan bahasa itu).
$ 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
Berikan perhatian khusus pada file konfigurasi, terutama jika mereka menggunakan direktori seperti /etc/init
(untuk skrip startup) atau /etc/modprobe.d
(opsi untuk memuat modul kernel).
Untuk binari, ldd
bisa memberikan gambaran tentang program apa yang bisa digunakan. Program di bawah ini terlihat seperti program grafis yang menggunakan 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)
...
Setelah Anda yakin bahwa paket terlihat valid, Anda dapat pergi menginstalnya di VirtualBox booting dari CD Live dan penggunaan ps aux
, top
, strace -f -o logfile.txt programname
untuk analisa lebih lanjut.
.deb
dengan File roller, lihat apa yang ada di dalamnya. Meskipun saya harus mengatakan saya mengunduh deb acak dari pengguna acak di utas acak di forum Ubuntu untuk memperbaiki masalah saya dengan printer saya, itu berhasil.