जवाबों:
विचार करने के लिए बातें:
साइट कितनी प्रसिद्ध है? उदाहरण के लिए, क्या यह विज्ञापनों में शामिल एक यादृच्छिक ब्लॉग था, क्या यह किसी मंच पर एक यादृच्छिक उपयोगकर्ता था, या यह एक प्रसिद्ध, सम्मानित साइट थी?
यह क्या स्थापित करने का दावा करता है? उदाहरण के लिए, क्या यह कर्नेल या आइकॉसेट स्थापित करने का दावा करता है, लेकिन क्या यह केवल 1MB बड़ा है?
यह "महत्वपूर्ण" कैसे है कि आपके पास इस की सामग्री है .deb
?
चीजों को सुरक्षित तरीके से जांचने के तरीके:
मैं अपने मानक
(और अन्य चीजों) के साथ सैंडबॉक्सिंग मेंarkose
( इसके मानक रिपोज में ) का उपयोग करता हूं - इसे इस तरह से उपयोग करें:
sudo arkose -n -c "cd $PWD; $SHELL"
क्या यह मुझे एक "सैंडबॉक्स" देता है (अन्यथा "YAY I CAN SCREW UP!" के रूप में जाना जाता है) अपने कंप्यूटर पर मेरे घर की निर्देशिका सहित सभी चीज़ों पर कॉपी-ऑन-राइट एक्सेस के साथ - इसलिए अगर बुरा बुरा .deb
करता है sudo rm -rf /*
, तो मुझे नहीं पता 'टी किसी भी डेटा खो!
एक और बात जिस पर जोर नहीं दिया जाता है वह है मेकअप बैकप्स । वे बेहद मददगार हैं, और हमारे पास विषय पर कई सवाल हैं।
संक्षेप में, बस यह सुनिश्चित करें कि आप इसके बारे में सोचते हैं, और बस एक यादृच्छिक बहस डाउनलोड न करें और इसे स्थापित करें।
यदि आप अविश्वसनीय या संदिग्ध स्रोतों से पैकेज डाउनलोड कर रहे हैं, तो पागल हो जाएं। Ubuntuforums.org जैसे लोकप्रिय मंचों पर, यदि कोई उपयोगकर्ता अपनी पहली पोस्ट करता है जिसमें केवल एक छोटा पाठ होता है जैसे "इसे स्थापित करें, मेरे लिए काम करता है!", इसके बाद एक लिंक, उस लिंक और / या निर्देशों से सावधान रहें।
यदि संभव हो तो बाइनरी पैकेज का उपयोग न करें, विशेष रूप से अविश्वसनीय स्रोतों से। स्रोत प्राप्त करें (आधिकारिक उबंटू पैकेजों के लिए, इसके साथ किया जा सकता है apt-get source package-name
) और इस पर एक नज़र डालें।
यदि प्रश्न में पैकेज छोटा है, तो इसका विश्लेषण करने के लायक हो सकता है। क्योंकि मैं तो जैसे अन्य शक्तिशाली कमांड लाइन उपकरण के लिए तेजी से उपयोग कर सकते है मुझे लगता है कि के लिए टर्मिनल का उपयोग करना पसंद ls
, find
, file
, less
, vim
, grep
, sed
, dpkg
और बहुत अन्य शामिल हैं। टैब-पूर्ण (यानी 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
निकालता है, दूसरा इसे DEBIAN
इसलिए निकालता है क्योंकि कोई अन्य टारगेट निर्दिष्ट नहीं है:
$ dpkg-deb -x nvidia-common_0.2.35_amd64.deb fs
$ dpkg-deb -e nvidia-common_0.2.35_amd64.deb
हम इस्तेमाल करेंगे less
मेंटेनर लिपियों (यानी फ़ाइलें जो उपयोग किया जाएगा / स्थापना (और हटाने) के दौरान चलाने की सामग्री का विश्लेषण करने के लिए फिर से। prerm
, preinst
, postrm
, postinst
स्क्रिप्ट पहले ही आ जाते / हटाने के बाद / स्थापना जो विश्लेषण करने के लिए सबसे महत्वपूर्ण फ़ाइलें हैं का उपयोग करें :n
और :p
फ़ाइलों के बीच स्विच करने के लिए। दबाने से =
, आपको वर्तमान फ़ाइल नाम और लाइन नंबर के साथ-साथ सूची में मौजूद फ़ाइलों की संख्या मिलती है।
$ less DEBIAN/*
यदि पैकेज स्क्रिप्ट समझदार दिखती हैं, तो यह स्थापित सामग्री (टैब-पूर्णता का उपयोग करें) का विश्लेषण करने का समय है। शेल स्क्रिप्ट और व्याख्या की गई स्क्रिप्ट (जैसे पायथन) के लिए, विश्लेषण आसान है (यह मानते हुए कि आप भाषा के साथ जाने जाते हैं)।
$ 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
एक विचार दे सकता है कि किस प्रोग्राम के लिए उपयोग किया जा सकता है। नीचे दिया गया कार्यक्रम एक ग्राफिकल प्रोग्राम की तरह दिखता है जो ओपनजीएल का उपयोग करता है।
$ 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)
...
आप यह सुनिश्चित करें कि पैकेज वैध लग रहा है कर रहे हैं के बाद, आप पर जा सकते हैं एक लाइव सीडी और उपयोग बंद VirtualBox बूटिंग में इसे स्थापित ps aux
, top
, strace -f -o logfile.txt programname
आगे के विश्लेषण के लिए।
.deb
फ़ाइल रोलर के साथ खोलें देखें कि अंदर क्या है। हालाँकि मुझे कहना होगा कि मैंने अपने प्रिंटर के साथ अपने मुद्दों को ठीक करने के लिए उबंटू मंचों पर एक यादृच्छिक थ्रेड पर एक यादृच्छिक उपयोगकर्ता से एक यादृच्छिक डिबेट डाउनलोड किया, यह काम किया।