dpkg دستور مدیریت بسته ها روی سیستم عامل لینوکس و توزیع های مبتنی بر دبین مانند اوبونتو و دبین می باشد که برای مدیریت بهتر بسته ها مورد استفاده قرار میگیرد. شما بوسیله این دستور میتوانید تمامی اعمال نصب، حذف و هر آنچه که برای یک بسته نیاز است را انجام دهید. ما در این آموزش قصد داریم شما را با این دستور کاربردی آشنا کنیم.
بیشتر بخوانید:
نصب بسته ها با فرمت deb.
شما با استفاده از دستور dpkg قادر به نصب بسته ها با فرمت deb. خواهید بود. برای این کار از دستور زیر استفاده کنید:
1 |
root@arshatech:~# dpkg -i gparted_0.18.0-1_amd64.deb |
1 2 3 4 5 6 7 8 9 10 11 |
(Reading database ... 304580 files and directories currently installed.) Preparing to unpack gparted_0.18.0-1_amd64.deb ... Unpacking gparted (0.18.0-1) over (0.18.0-1) ... Setting up gparted (0.18.0-1) ... Processing triggers for man-db (2.6.7.1-1ubuntu1) ... Processing triggers for hicolor-icon-theme (0.13-1) ... Processing triggers for desktop-file-utils (0.22-1ubuntu1.1) ... Processing triggers for mime-support (3.54ubuntu1.1) ... Processing triggers for gnome-menus (3.10.1-0ubuntu2) ... Processing triggers for bamfdaemon (0.5.1+14.04.20140409-0ubuntu1) ... Rebuilding /usr/share/applications/bamf-2.index... |
لیست کردن تمامی بسته های نصب شده روی سیستم
اگر شما میخواهید بدانید چه بسته هایی روی سیستم شما نصب شده است از دستور زیر استفاده کنید:
1 |
root@arshatech:~# dpkg -l |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-===============================-====================-====================-==================================================================== ii acl 2.2.52-1 amd64 Access control list utilities ii acpi-support 0.142 amd64 scripts for handling many ACPI events ii acpid 1:2.0.21-1ubuntu2 amd64 Advanced Configuration and Power Interface event daemon ii activity-log-manager 0.9.7-0ubuntu14.2 amd64 blacklist configuration user interface for Zeitgeist ii activity-log-manager-control-ce 0.9.7-0ubuntu14.2 all blacklist configuration for Zeitgeist (transitional package) ii adduser 3.113+nmu3ubuntu3 all add and remove users and groups ii adium-theme-ubuntu 0.3.4-0ubuntu1 all Adium message style for Ubuntu ii aisleriot 1:3.10.2-1 amd64 GNOME solitaire card game collection ii alsa-base 1.0.25+dfsg-0ubuntu4 all ALSA driver configuration files ... |
اگر میخواهید بدانید بسته خاصی روی سیستم شما نصب شده است یا خیر کافیست نام آن را در ادامه دستور وارد کنید:
1 |
root@arshatech:~# dpkg -l gparted |
1 2 3 4 5 6 |
Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-===============================-====================-====================-==================================================================== ii gparted 0.18.0-1 amd64 GNOME partition editor |
اما اگر بسته ای که وارد کرده اید روی سیستم شما نصب نشده باشد خطا برمیگرداند:
1 |
root@arshatech:~# dpkg -l emacs |
1 |
dpkg-query: no packages found matching emacs |
ممکن است شما به دنبال بسته ای باشید که نام آن را دقیقا نمیدانید اما میخواهید از وجود یا عدم وجود آن روی ماشین خود مطمان شوید. برای این کار باید خروجی دستور را پایپ کنید:
1 |
root@arshatech:~# dpkg -l | grep -i gpart |
1 |
ii gparted 0.18.0-1 amd64 GNOME partition editor |
حذف یک بسته
اگر میخواهید در لینوکس یک بسته با فرمت deb. را حذف کنید میتوانید به صورت زیر این کار را انجام دهید:
1 |
root@arshatech:~# dpkg -r gparted |
1 2 3 4 5 6 7 8 9 |
(Reading database ... 304578 files and directories currently installed.) Removing gparted (0.18.0-1) ... Processing triggers for desktop-file-utils (0.22-1ubuntu1.1) ... Processing triggers for mime-support (3.54ubuntu1.1) ... Processing triggers for gnome-menus (3.10.1-0ubuntu2) ... Processing triggers for bamfdaemon (0.5.1+14.04.20140409-0ubuntu1) ... Rebuilding /usr/share/applications/bamf-2.index... Processing triggers for hicolor-icon-theme (0.13-1) ... Processing triggers for man-db (2.6.7.1-1ubuntu1) ... |
دستور بالا عمل remove را برای شما انجام میدهد. این کار صرفا بسته نصب شده را پاک میکند ولی فایل های کانفیگ ایجاد شده هنگام نصب را روی سیستم شما نگه میدارد. حال اگر میخواهید بسته به همراه همه فایل ها حذف شود باید آن را purge کنید:
1 |
root@arshatech:~# dpkg -p gparted |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Package: gparted Priority: optional Section: gnome Installed-Size: 1912 Maintainer: Phillip Susi <psusi@ubuntu.com> Architecture: amd64 Version: 0.18.0-1 Depends: libatkmm-1.6-1 (>= 2.22.1), libc6 (>= 2.14), libgcc1 (>= 1:4.1.1), libglib2.0-0 (>= 2.12.0), libglibmm-2.4-1c2a (>= 2.36.2), libgtk2.0-0 (>= 2.14.0), libgtkmm-2.4-1c2a (>= 1:2.24.0), libpangomm-1.4-1 (>= 2.27.1), libparted0debian1 (>= 2.2-1), libsigc++-2.0-0c2a (>= 2.0.2), libstdc++6 (>= 4.6), libuuid1 (>= 2.16) Suggests: xfsprogs, reiserfsprogs, reiser4progs, jfsutils, ntfs-3g, dosfstools, yelp, kpartx, dmraid, dmsetup, gpart Size: 524246 Description: GNOME partition editor GParted uses libparted to detect and manipulate devices and partition tables while several (optional) filesystem tools provide support for filesystems not included in libparted. Homepage: http://gparted.sourceforge.net |
خواندن محتوای یک بسته
شما میتوانید محتوای بسته مورد نظر خود را نیز مشاهده کنید. برای این کار به صورت زیر عمل نمائید:
1 |
root@arshatech:~# dpkg -c gparted_0.18.0-1_amd64.deb |
1 2 3 4 5 6 7 8 9 10 |
drwxr-xr-x root/root 0 2014-03-05 06:01 ./ drwxr-xr-x root/root 0 2014-03-05 06:01 ./usr/ drwxr-xr-x root/root 0 2014-03-05 06:01 ./usr/bin/ -rwxr-xr-x root/root 42 2011-12-07 14:04 ./usr/bin/gparted-pkexec drwxr-xr-x root/root 0 2014-03-05 06:01 ./usr/share/ drwxr-xr-x root/root 0 2014-03-05 06:01 ./usr/share/appdata/ -rw-r--r-- root/root 13145 2014-03-05 06:01 ./usr/share/appdata/gparted.appdata.xml drwxr-xr-x root/root 0 2014-03-05 06:01 ./usr/share/doc/ drwxr-xr-x root/root 0 2014-03-05 06:01 ./usr/share/doc/gparted/ ... |
بررسی یک بسته نصب شده یا نشده روی سیستم
علاوه بر سوئیچ ‘l-‘ (حرف کوچک) که لیست بسته های نصب شده روی سیستم را نشان میداد و ما با روش پایپ کردن به شما نشان دادیم که چگونه از نصب بودن یا نبودن بسته مورد نظر خود مطمان شوید یک راه دیگر(راه استاندارد) وجود دارد که شما میتوانید بوسیله آن مطمان شوید بسته مورد نظر شما نصب شده است یا خیر. خروجی دریافت شده بوسیله دستور زیر حاوی اطلاعات بیشتری خواهد بود:
1 |
root@arshatech:~# dpkg -s gparted |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Package: gparted Status: install ok installed Priority: optional Section: gnome Installed-Size: 1912 Maintainer: Phillip Susi <psusi@ubuntu.com> Architecture: amd64 Version: 0.18.0-1 Depends: libatkmm-1.6-1 (>= 2.22.1), libc6 (>= 2.14), libgcc1 (>= 1:4.1.1), libglib2.0-0 (>= 2.12.0), libglibmm-2.4-1c2a (>= 2.36.2), libgtk2.0-0 (>= 2.14.0), libgtkmm-2.4-1c2a (>= 1:2.24.0), libpangomm-1.4-1 (>= 2.27.1), libparted0debian1 (>= 2.2-1), libsigc++-2.0-0c2a (>= 2.0.2), libstdc++6 (>= 4.6), libuuid1 (>= 2.16) Suggests: xfsprogs, reiserfsprogs, reiser4progs, jfsutils, ntfs-3g, dosfstools, yelp, kpartx, dmraid, dmsetup, gpart Description: GNOME partition editor GParted uses libparted to detect and manipulate devices and partition tables while several (optional) filesystem tools provide support for filesystems not included in libparted. Homepage: http://gparted.sourceforge.net |
همانطور که میبینید اطلاعات کاملی از بسته نصب شده روی سیستم شما را برمیگرداند. اما در صورتی که بسته مورد نظر روی سیستم نصب نشده باشد خروجی مشابه زیر را به شما نشان میدهد:
1 |
root@arshatech:~# dpkg -s flashplugin-nonfree |
1 2 3 |
dpkg-query: package 'flashplugin-nonfree' is not installed and no information is available Use dpkg --info (= dpkg-deb --info) to examine archive files, and dpkg --contents (= dpkg-deb --contents) to list their contents. |
بررسی محل قرارگیری فایل های یک بسته نصب شده
گاهی شما بدنبال مسیرهایی هستید که مربوط به بسته مورد نظر شما می باشد. خروجی دریافت شده در دستور زیر به شما تمامی مسیرهای مربوط به بسته مورد نظرتان را میدهد:
1 |
root@arshatech:~# dpkg -L gparted |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/. /usr /usr/bin /usr/bin/gparted-pkexec /usr/share /usr/share/appdata /usr/share/appdata/gparted.appdata.xml /usr/share/doc /usr/share/doc/gparted /usr/share/doc/gparted/README.gz /usr/share/doc/gparted/copyright /usr/share/doc/gparted/changelog.Debian.gz /usr/share/polkit-1 /usr/share/polkit-1/actions /usr/share/polkit-1/actions/com.ubuntu.pkexec.gparted.policy /usr/share/omf /usr/share/omf/gparted /usr/share/omf/gparted/gparted-C.omf ... |
نصب همه بسته های موجود در یک دایرکتوری خاص
گاهی ممکن است شما نیاز به نصب بسته های زیادی به طور همزمان داشته باشید. شما میتوانید برای این کار از دستور زیر استفاده کنید:
1 |
root@arshatech:~# dpkg -i -R deb-packages/ |
1 2 3 4 5 6 7 8 9 |
(Reading database ... 937246 files and directories currently installed.) Preparing to replace flashplugin-nonfree 1:3.2 (using .../flashplugin-nonfree_3.2_amd64.deb) ... Unpacking replacement flashplugin-nonfree ... Setting up flashplugin-nonfree (1:3.2) ... Processing triggers for man-db ... Processing triggers for bamfdaemon ... Rebuilding /usr/share/applications/bamf-2.index... Processing triggers for gnome-menus ... ... |
استخراج محتوای یک بسته بدون نصب
شما بوسیله دستور زیر قادر خواهید بود محتوای یک بسته را استخراج کنید و آن ها را در جاهای مناسب قرار دهید ولی عمل نصب یا configure در این شرایط انجام نخواهد شد.
1 |
root@arshatech:~# dpkg --unpack gparted_0.18.0-1_amd64.de |
1 2 3 4 5 6 7 8 9 10 |
(Reading database ... 304580 files and directories currently installed.) Preparing to unpack gparted_0.18.0-1_amd64.deb ... Unpacking gparted (0.18.0-1) over (0.18.0-1) ... Processing triggers for man-db (2.6.7.1-1ubuntu1) ... Processing triggers for hicolor-icon-theme (0.13-1) ... Processing triggers for desktop-file-utils (0.22-1ubuntu1.1) ... Processing triggers for mime-support (3.54ubuntu1.1) ... Processing triggers for gnome-menus (3.10.1-0ubuntu2) ... Processing triggers for bamfdaemon (0.5.1+14.04.20140409-0ubuntu1) ... Rebuilding /usr/share/applications/bamf-2.index... |
نصب بسته مورد نظر بعد از unpack کردن آن
برای نصب یک بسته بعد از unpack کردن آن میتوانید از دستور زیر استفاده کنید:
1 |
root@arshatech:~# dpkg --configure gparted |
1 |
Setting up gparted (0.18.0-1) ... |
بررسی نسخه dpkg
شما میتوانید با استفاده از دستور زیر نسخه dpkg را بررسی کنید:
1 |
root@arshatech:~# dpkg --version |
1 2 3 |
Debian `dpkg' package management program version 1.17.5 (amd64). This is free software; see the GNU General Public License version 2 or later for copying conditions. There is NO warranty. |
دیدن قابلیت های dpkg
برای گرفتن help یا دیدن امکانات و قابلیت های این ابزار قدرتمند به صورت زیر عمل کنید:
1 |
root@arshatech:~# dpkg --help |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Usage: dpkg [<option> ...] <command> Commands: -i|--install <.deb file name> ... | -R|--recursive <directory> ... --unpack <.deb file name> ... | -R|--recursive <directory> ... -A|--record-avail <.deb file name> ... | -R|--recursive <directory> ... --configure <package> ... | -a|--pending --triggers-only <package> ... | -a|--pending -r|--remove <package> ... | -a|--pending -P|--purge <package> ... | -a|--pending -V|--verify <package> ... Verify the integrity of package(s). --get-selections [<pattern> ...] Get list of selections to stdout. --set-selections Set package selections from stdin. --clear-selections Deselect every non-essential package. --update-avail <Packages-file> Replace available packages info. --merge-avail <Packages-file> Merge with info from file. --clear-avail Erase existing available info. --forget-old-unavail Forget uninstalled unavailable pkgs. -s|--status <package> ... Display package status details. ... |