Peringatan apa yang harus saya ambil dengan .deb yang saya temukan di internet?

29

Jadi saya browsing web beberapa hari yang lalu, dan saya menemukan beberapa tempat yang ingin saya mengunduh .debfile - dan karena itu diinstal oleh root (dan karena itu memiliki "kekuatan" dan kemampuan root), saya tidak yakin tentang itu.

jrg
sumber

Jawaban:

32

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 Instal arkose ) 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 .debmelakukannya 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.

jrg
sumber
2
Buka .debdengan 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.
Uri Herrera
20

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, dpkgdan 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 wgetlebih 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 <[email protected]>
 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 DEBIANkarena 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 lesslagi untuk menganalisis isi dari skrip pengelola (yaitu file yang akan digunakan / dijalankan selama instalasi (dan penghapusan). prerm, preinst, postrm, postinstSkrip dijalankan sebelum / sesudah penghapusan / instalasi yang paling file penting untuk menganalisis Gunakan :ndan :puntuk 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, lddbisa 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 programnameuntuk analisa lebih lanjut.

Lekensteyn
sumber