インターネットで見つけた.debsにはどのような注意が必要ですか?


29

だから、先日ウェブをブラウジングしていて、.debファイルをダウンロードしたかったいくつかの場所に出くわしました-そしてそれらはルートによってインストールされているので確かに。

回答:


32

考慮事項:

  • このサイトはどのくらい有名ですか?たとえば、広告で覆われたランダムなブログでしたか、フォーラムのランダムなユーザーでしたか、それとも有名で尊敬されているサイトでしたか?

  • インストールすると何を主張しますか?たとえば、カーネルまたはアイコンセットをインストールすると主張しますが、1MBだけですか?

  • あなたがこれの内容を持っていることはどのくらい重要.debですか?

物事を安全にテストする方法:

私はarkose標準リポジトリで Install arkose )debs(およびその他のもの)でサンドボックスを使用します。次のように使用します。

sudo arkose -n -c "cd $PWD; $SHELL"

何それはそれは私のホームディレクトリを含め、私に私のコンピュータ上のすべてのものへのコピー・オン・ライトアクセス権を持つ「サンドボックス」(「!YAY I CAN SCREW UP」そうでないとして知られている)を与えない-厄介な厄介がもしそうなら.debないsudo rm -rf /*I DON 「データを失うことはありません!

十分に強調されていないもう1つのことは、MAKE BACKUPSです。これらは非常に有用であり、トピックに関する多くの質問があります。

簡単に言えば、それについて考えてみてください。ランダムなデブをダウンロードしてインストールするだけではいけません。


2
.debwith fileローラーを開き、中身を確認します。プリンターの問題を解決するために、Ubuntuフォーラムのランダムなスレッドでランダムなユーザーからランダムなdebをダウンロードしたと言わなければなりませんが、うまくいきました。
ウリエレーラ

20

信頼できない、または疑わしいソースからパッケージをダウンロードする場合は、妄想してください。ubuntuforums.orgのような人気のあるフォーラムで、ユーザーが「install this、works for me!」のような短いテキストのみを含む最初の投稿を行い、その後にリンクが続く場合、そのリンクや指示に注意してください。

可能であれば、特に信頼できないソースからのバイナリパッケージは使用しないでください。ソースを入手し(公式のUbuntuパッケージの場合、これはで実行できますapt-get source package-name)、ご覧ください。

問題のパッケージが小さい場合は、分析する価値があるかもしれません。私は、その後のような他の強力なコマンドラインツールへの高速アクセスを持っているので、そのために、端末を使用することを好むlsfindfilelessvimgrepseddpkg他人をしてたくさん。タブ補完(つまりTab、コマンドとファイル名を完了するために押す)を使用すると、本当に時間を節約できます!

.debファイルをダウンロードするには、ブラウザーを使用できますが、リンクをコピーしてwgetから使用する方が、既に実験できるため高速です。

$ 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

次に、ファイル自体を確認します。less(〜lesspipe)を使用すると、ファイルの内容の概要をすばやく確認できます。矢印キー、ページアップ/ダウン、ホーム/エンドは、ナビゲーションに役立ちQ、プログラムを終了します。

$ 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
...

この後、パッケージの依存関係の概要と、パッケージに含まれる可能性のあるファイルの種類が表示されます。を使用してファイルを抽出し、コンテンツを分析する時間dpkg-debです。最初のコマンドは、新しく作成されたディレクトリ内のファイルツリーを抽出しますfs。2番目のコマンドは、DEBIAN他のターゲットが指定されていないため、それを抽出します。

$ dpkg-deb -x nvidia-common_0.2.35_amd64.deb fs
$ dpkg-deb -e nvidia-common_0.2.35_amd64.deb

私たちは、使用しますless/使用されるインストール(および除去)の間に実行されるメンテナスクリプト(つまり、ファイルの内容を分析するために、再び。prermpreinstpostrmpostinstスクリプトは除去前/後に実行を分析するための最も重要なファイルである/インストールされています:nおよび:pを使用してファイルを切り替えますを押す=と、現在のファイル名と行番号、およびリストにあるファイルの数が表示されます。

$ less DEBIAN/*

パッケージスクリプトが正常に見える場合は、インストールされているコンテンツを分析します(タブ補完を使用します)。シェルスクリプトと解釈されたスクリプト(Pythonなど)の場合、分析が簡単になります(言語がわかっていることを前提としています)。

$ 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

特に/etc/init(スタートアップスクリプト用)または/etc/modprobe.d(カーネルモジュールのロードオプション)などのディレクトリを使用している場合は、構成ファイルに特に注意してください。

バイナリの場合ldd、プログラムを何に使用できるかを知ることができます。以下のプログラムは、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)
...

パッケージが有効に見えることを確認したら、Live CDから起動するVirtualBoxにインストールし、さらに分析するためps auxtopstrace -f -o logfile.txt programnameを使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.