آموزش LPIC1 – بخش پنجم

پکیج منیجر چیست؟

در دنیای ویندوز برای نصب برنامه میبایست فایل نصب را از طریق اینترنت یا CD و DVD و … در اختیار داشته باشیم، تمام Library های مورد نیاز برنامه ی مربوطه در همان Package نصب موجود است و معمولا برنامه ای که نصب میکنیم Requirement به خصوصی ندارد.

اما در لینوکس به این صورت نیست، مجموعه ای از برنامه های کاربردی تست شده با توزیع های منحصر به فرد لینوکس در فضایی در اینترنت (به نام Repository) وجود دارند و کاربران لینوکس میتوانند با استفاده از دستورات Command Line این برنامه ها را به طور اتوماتیک نصب کنند. این روش بسیار امن تر بوده و سلامت برنامه ای که با Package Manager نصب میشود تضمین شده است. البته نصب به شیوه ی ویندوز به صورت فایل نصب هم امکان پذیر است.

 

نصب پکیج ها

لازم به ذکر است فرمت فایل های قابل نصب در توزیع های Debian به صورت deb. میباشد. ما برنامه ای به نام bzr را در نظر میگیریم و قصد داریم آن را نصب کنیم.

خوب در ابتدا میبینیم که آیا برنامه ی bzr روی سیستم عامل نصب شده است یا خیر.

regux@debian:~# bzr
bash: bzr: command not found
regux@debian:~# which bzr
regux@debian:~# whereis bzr
bzr:

همانطور که مشاهده نمودید این برنامه نصب نیست، برای نصب آن به سادگی میتوانیم از دستور apt-get استفاده کنیم.

regux@debian:~# apt-get install bzr
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  javascript-common libjs-jquery python-bzrlib python-configobj python-crypto python-gpgme python-httplib2 python-keyring
  python-launchpadlib python-lazr.restfulclient python-lazr.uri python-oauth python-secretstorage python-simplejson python-wadllib
  python-zope.interface
Suggested packages:
  bzr-doc bzrtools python-bzrlib.tests python-bzrlib-dbg python-kerberos python-paramiko python-configobj-doc python-crypto-dbg
  python-crypto-doc python-fs python-gdata python-kde4 python-keyczar python-testresources python-secretstorage-doc
The following NEW packages will be installed:
  bzr javascript-common libjs-jquery python-bzrlib python-configobj python-crypto python-gpgme python-httplib2 python-keyring
  python-launchpadlib python-lazr.restfulclient python-lazr.uri python-oauth python-secretstorage python-simplejson python-wadllib
  python-zope.interface
0 upgraded, 17 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,523 kB of archives.
After this operation, 14.3 MB of additional disk space will be used.
Do you want to continue? [Y/n]

همانطور که دیدید، در این روش apt متوجه میشود برای نصب این پکیج نیاز به نصب پکیج های دیگری هم است که dependency های برنامه ی bzr هستند. همچنین در بخش Suggested packages پیشنهاد میکند که پکیج های دیگری نیز نصب شود، ولی به طور اتوماتیک آنها را نصب نمیکند. پروسه ی نصب را Confirm میکنیم.

Get:1 http://ftp.us.debian.org/debian/ jessie/main python-configobj all 5.0.6-1 [35.3 kB]
Get:2 http://ftp.us.debian.org/debian/ jessie/main python-bzrlib amd64 2.6.0+bzr6595-6 [1,617 kB]
Get:3 http://ftp.us.debian.org/debian/ jessie/main bzr all 2.6.0+bzr6595-6 [53.9 kB]
Get:4 http://ftp.us.debian.org/debian/ jessie/main javascript-common all 11 [6,120 B]
Get:5 http://ftp.us.debian.org/debian/ jessie/main libjs-jquery all 1.7.2+dfsg-3.2 [97.5 kB]
Get:6 http://ftp.us.debian.org/debian/ jessie/main python-crypto amd64 2.6.1-5+deb8u1 [256 kB]
Get:7 http://ftp.us.debian.org/debian/ jessie/main python-gpgme amd64 0.3-1+b1 [24.3 kB]
Get:8 http://ftp.us.debian.org/debian/ jessie/main python-httplib2 all 0.9+dfsg-2 [39.0 kB]
Get:9 http://ftp.us.debian.org/debian/ jessie/main python-keyring all 4.0-1 [56.9 kB]
Get:10 http://ftp.us.debian.org/debian/ jessie/main python-lazr.uri all 1.0.3-2 [13.7 kB]
Get:11 http://ftp.us.debian.org/debian/ jessie/main python-simplejson amd64 3.6.5-1 [67.2 kB]
Get:12 http://ftp.us.debian.org/debian/ jessie/main python-wadllib all 1.3.2-2 [34.3 kB]
Get:13 http://ftp.us.debian.org/debian/ jessie/main python-zope.interface amd64 4.1.1-3.1 [85.6 kB]
Get:14 http://ftp.us.debian.org/debian/ jessie/main python-oauth all 1.0.1-4 [12.8 kB]
Get:15 http://ftp.us.debian.org/debian/ jessie/main python-lazr.restfulclient all 0.13.3-1 [59.6 kB]
Get:16 http://ftp.us.debian.org/debian/ jessie/main python-launchpadlib all 1.10.2+ds-2 [51.6 kB]
Get:17 http://ftp.us.debian.org/debian/ jessie/main python-secretstorage all 2.1.1-1 [12.9 kB]
Fetched 2,523 kB in 36s (68.6 kB/s)
Selecting previously unselected package python-configobj.
(Reading database ... 145930 files and directories currently installed.)
Preparing to unpack .../python-configobj_5.0.6-1_all.deb ...
Unpacking python-configobj (5.0.6-1) ...
Selecting previously unselected package python-bzrlib.
Preparing to unpack .../python-bzrlib_2.6.0+bzr6595-6_amd64.deb ...
Unpacking python-bzrlib (2.6.0+bzr6595-6) ...
Selecting previously unselected package bzr.
Preparing to unpack .../bzr_2.6.0+bzr6595-6_all.deb ...
Unpacking bzr (2.6.0+bzr6595-6) ...
Selecting previously unselected package javascript-common.
Preparing to unpack .../javascript-common_11_all.deb ...
Unpacking javascript-common (11) ...
Selecting previously unselected package libjs-jquery.
Preparing to unpack .../libjs-jquery_1.7.2+dfsg-3.2_all.deb ...
Unpacking libjs-jquery (1.7.2+dfsg-3.2) ...
Selecting previously unselected package python-crypto.
Preparing to unpack .../python-crypto_2.6.1-5+deb8u1_amd64.deb ...
Unpacking python-crypto (2.6.1-5+deb8u1) ...
Selecting previously unselected package python-gpgme.
Preparing to unpack .../python-gpgme_0.3-1+b1_amd64.deb ...
Unpacking python-gpgme (0.3-1+b1) ...
Selecting previously unselected package python-httplib2.
Preparing to unpack .../python-httplib2_0.9+dfsg-2_all.deb ...
Unpacking python-httplib2 (0.9+dfsg-2) ...
Selecting previously unselected package python-keyring.
Preparing to unpack .../python-keyring_4.0-1_all.deb ...
Unpacking python-keyring (4.0-1) ...
Selecting previously unselected package python-lazr.uri.
Preparing to unpack .../python-lazr.uri_1.0.3-2_all.deb ...
Unpacking python-lazr.uri (1.0.3-2) ...
Selecting previously unselected package python-simplejson.
Preparing to unpack .../python-simplejson_3.6.5-1_amd64.deb ...
Unpacking python-simplejson (3.6.5-1) ...
Selecting previously unselected package python-wadllib.
Preparing to unpack .../python-wadllib_1.3.2-2_all.deb ...
Unpacking python-wadllib (1.3.2-2) ...
Selecting previously unselected package python-zope.interface.
Preparing to unpack .../python-zope.interface_4.1.1-3.1_amd64.deb ...
Unpacking python-zope.interface (4.1.1-3.1) ...
Selecting previously unselected package python-oauth.
Preparing to unpack .../python-oauth_1.0.1-4_all.deb ...
Unpacking python-oauth (1.0.1-4) ...
Selecting previously unselected package python-lazr.restfulclient.
Preparing to unpack .../python-lazr.restfulclient_0.13.3-1_all.deb ...
Unpacking python-lazr.restfulclient (0.13.3-1) ...
Selecting previously unselected package python-launchpadlib.
Preparing to unpack .../python-launchpadlib_1.10.2+ds-2_all.deb ...
Unpacking python-launchpadlib (1.10.2+ds-2) ...
Selecting previously unselected package python-secretstorage.
Preparing to unpack .../python-secretstorage_2.1.1-1_all.deb ...
Unpacking python-secretstorage (2.1.1-1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up python-configobj (5.0.6-1) ...
Setting up python-bzrlib (2.6.0+bzr6595-6) ...
Setting up bzr (2.6.0+bzr6595-6) ...
Setting up javascript-common (11) ...
apache2_invoke: Enable configuration javascript-common
Setting up libjs-jquery (1.7.2+dfsg-3.2) ...
Setting up python-crypto (2.6.1-5+deb8u1) ...
Setting up python-gpgme (0.3-1+b1) ...
Setting up python-httplib2 (0.9+dfsg-2) ...
Setting up python-keyring (4.0-1) ...
Setting up python-lazr.uri (1.0.3-2) ...
Setting up python-simplejson (3.6.5-1) ...
Setting up python-wadllib (1.3.2-2) ...
Setting up python-zope.interface (4.1.1-3.1) ...
Setting up python-oauth (1.0.1-4) ...
Setting up python-lazr.restfulclient (0.13.3-1) ...
Setting up python-launchpadlib (1.10.2+ds-2) ...
Setting up python-secretstorage (2.1.1-1) ...

حال خروجی تمامی دستورهای بالا را مجدد بررسی میکنیم.

regux@debian:~# bzr
Bazaar 2.7.0dev1 -- a free distributed version-control tool
http://bazaar.canonical.com/

Basic commands:
  bzr init           makes this directory a versioned branch
  bzr branch         make a copy of another branch

  bzr add            make files or directories versioned
  bzr ignore         ignore a file or pattern
  bzr mv             move or rename a versioned file

  bzr status         summarize changes in working copy
  bzr diff           show detailed diffs

  bzr merge          pull in changes from another branch
  bzr commit         save some or all changes
  bzr send           send changes via email

  bzr log            show history of changes
  bzr check          validate storage

  bzr help init      more help on e.g. init command
  bzr help commands  list all commands
  bzr help topics    list all help topics
regux@debian:~# which bzr
/usr/bin/bzr
regux@debian:~# whereis bzr
bzr: /usr/bin/bzr /usr/share/man/man1/bzr.1.gz

همچنین اگر بخواهیم فایل deb. برنامه ی bzr را فقط دانلود کنیم از دستور زیر استفاده میکنیم.

regux@debian:~# apt-get install --download-only bzr
Reading package lists... Done
Building dependency tree
Reading state information... Done
regux@debian:~# ls /var/cache/apt/archives/bzr*
/var/cache/apt/archives/bzr_2.6.0+bzr6595-6_all.deb

همچنین ما میتوانیم پروسه ی نصب را شبیه سازی کنیم، یعنی فایل ها به طور واقعی نصب نمیشوند و فقط خروجی ها نمایش داده میشوند که ببینیم تغییرات روی کدام فایل ها اعمال میشوند. این دستور برای اجرا نیاز به دسترسی root هم ندارد. چون در اصل فایلی تغییر داده نمیشود.

regux@debian:~# apt-get install -s bzr

لازم به ذکر است مسیر repository ها در فایل sources.list ذخیره میشوند.

regux@debian:~# cat /etc/apt/sources.list
#

# deb cdrom:[Debian GNU/Linux 8.8.0 _Jessie_ - Official amd64 DVD Binary-1 20170506-14:13]/ jessie contrib main

#deb cdrom:[Debian GNU/Linux 8.8.0 _Jessie_ - Official amd64 DVD Binary-1 20170506-14:13]/ jessie contrib main

deb http://ftp.us.debian.org/debian/ jessie main
deb-src http://ftp.us.debian.org/debian/ jessie main

deb http://security.debian.org/ jessie/updates main contrib
deb-src http://security.debian.org/ jessie/updates main contrib

# jessie-updates, previously known as 'volatile'
deb http://ftp.us.debian.org/debian/ jessie-updates main contrib
deb-src http://ftp.us.debian.org/debian/ jessie-updates main contrib

همچنین مسیر Repository ها می توانند در فایلی در داخل پوشه ی زیر هم قرار گیرند.

/etc/apt/sources.list.d

همچنین برای به روز نمودن این Source List ها از دستور زیر استفاده میکنیم. به این معنی که بعد از Update برنامه apt متوجه میشود کدام برنامه ها در کدام repository ها وجود دارند.

regux@debian:~# apt-get update
Ign http://ftp.us.debian.org jessie InRelease
Get:1 http://ftp.us.debian.org jessie-updates InRelease [145 kB]
Hit http://ftp.us.debian.org jessie Release.gpg
Hit http://ftp.us.debian.org jessie-updates/main Sources
Hit http://ftp.us.debian.org jessie-updates/contrib Sources
Get:2 http://ftp.us.debian.org jessie-updates/main amd64 Packages/DiffIndex [9,376 B]
Hit http://ftp.us.debian.org jessie-updates/contrib amd64 Packages
Hit http://ftp.us.debian.org jessie-updates/contrib Translation-en
Get:3 http://ftp.us.debian.org jessie-updates/main Translation-en/DiffIndex [3,688 B]
Hit http://ftp.us.debian.org jessie Release
Hit http://ftp.us.debian.org jessie/main Sources
Hit http://ftp.us.debian.org jessie/main amd64 Packages
Hit http://ftp.us.debian.org jessie/main Translation-en

پس از Update اگر برنامه ای وجود داشته باشد که نسخه نصب شده ی آن روی سیستم عامل از نسخه ی فعلی پایین تر باشد، با دستور upgrade میتوانیم به نسخه ی جدید به روز رسانی کنیم.

regux@debian:~# apt-get upgrade

همچنین در صورتی که Distribution جدیدتری داشته باشیم، میتوانیم از دستور زیر برای به روز رسانی استفاده کنیم. برای مثال، برای به روز رسانی اوبونتو 14 به نسخه ی 16.

regux@debian:~# apt-get dist-upgrade

برای حذف Package نیز از دستور زیر استفاده میکنیم.

regux@debian:~# apt-get remove bzr
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  javascript-common libjs-jquery python-bzrlib python-configobj python-crypto python-gpgme python-httplib2 python-keyring
  python-launchpadlib python-lazr.restfulclient python-lazr.uri python-oauth python-secretstorage python-simplejson python-wadllib
  python-zope.interface
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  bzr
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 102 kB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 146988 files and directories currently installed.)
Removing bzr (2.6.0+bzr6595-6) ...
Processing triggers for man-db (2.7.0.2-5) ...

دستور زیر هم وجود دارد که آن دسته از Package هایی که به صورت Dependency با برنامه اصلی نصب گردیده اند را در صورت عدم استفاده حذف میکند.

regux@debian:~# apt-get autoremove bzr
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package 'bzr' is not installed, so not removed
The following packages will be REMOVED:
  javascript-common libjs-jquery python-bzrlib python-configobj python-crypto python-gpgme python-httplib2 python-keyring
  python-launchpadlib python-lazr.restfulclient python-lazr.uri python-oauth python-secretstorage python-simplejson python-wadllib
  python-zope.interface
0 upgraded, 0 newly installed, 16 to remove and 0 not upgraded.
After this operation, 14.2 MB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 146981 files and directories currently installed.)
Removing javascript-common (11) ...
Conf javascript-common disabled.
apache2_invoke prerm: Disable configuration javascript-common
Removing libjs-jquery (1.7.2+dfsg-3.2) ...
Removing python-bzrlib (2.6.0+bzr6595-6) ...
Removing python-configobj (5.0.6-1) ...
Removing python-secretstorage (2.1.1-1) ...
Removing python-crypto (2.6.1-5+deb8u1) ...
Removing python-gpgme (0.3-1+b1) ...
Removing python-launchpadlib (1.10.2+ds-2) ...
Removing python-lazr.restfulclient (0.13.3-1) ...
Removing python-httplib2 (0.9+dfsg-2) ...
Removing python-keyring (4.0-1) ...
Removing python-wadllib (1.3.2-2) ...
Removing python-lazr.uri (1.0.3-2) ...
E: namespace:121: cannot remove /usr/lib/python2.7/dist-packages/lazr/__init__.py
Removing python-oauth (1.0.1-4) ...
Removing python-simplejson (3.6.5-1) ...
Removing python-zope.interface (4.1.1-3.1) ...

جهت جستجوی پکیج ها هم میتوانیم از دستورات زیر استفاده کنیم.

regux@debian:~# apt-cache search bzr
autorevision - extracts revision metadata from your VCS repository
bugs-everywhere - distributed bug tracking system using VCS storage
bzr - easy to use distributed version control system
bzr-doc - easy to use distributed version control system (documentation)
python-bzrlib - distributed version control system - python library
python-bzrlib-dbg - distributed version control system - debug extension
python-bzrlib.tests - distributed version control system - testsuite
bzr-builddeb - bzr plugin for Debian package management
bzr-email - Notification email plugin for Bazaar
bzr-explorer - GUI application for using Bazaar
bzr-loom - Focused patch plugin support for Bazaar
bzr-pipeline - Bazaar plugin for managing a pipeline of changes
bzr-search - search plugin for Bazaar
bzr-stats - statistics plugin for Bazaar
bzr-tweet - Bazaar commit and push tweet plugin
bzr-upload - Bazaar plugin for uploading to web servers
bzr-xmloutput - XML Communication plugin for Bazaar
bzrtools - Collection of tools for bzr
config-manager - manage directories with Arch, Bazaar, CVS, HTTP, FTP and/or Subversion
devscripts - scripts to make the life of a Debian Package maintainer easier
kdesdk-dolphin-plugins - dolphin VCS plugins
etckeeper - store /etc in git, mercurial, bzr or darcs
fusionforge-plugin-scmbzr - collaborative development tool - Bazaar plugin
git-bzr - transitional dummy package
git-remote-bzr - bidirectional bridge between Git and Bazaar
git-merge-changelog - git merge driver for GNU ChangeLog files
hobbit-plugins - plugins for the Xymon network monitor
libzrtpcpp-dev - Headers and static link library for libzrtpcpp
libzrtpcpp2 - ccrtp extension for zrtp/Zfone support
myrepos - tool to manage all your version control repos
qbzr - Graphical interface for Bazaar using the Qt toolkit

همچنین با aptitude هم میتوانیم این کار را انجام دهیم. در اصل این دستور از apt پیشرفته تر است.

regux@debian:~# aptitude search bzr
c   bzr                                                            - easy to use distributed version control system
p   bzr-builddeb                                                   - bzr plugin for Debian package management
v   bzr-buildpackage                                               -
p   bzr-doc                                                        - easy to use distributed version control system (documentation)
p   bzr-email                                                      - Notification email plugin for Bazaar
p   bzr-explorer                                                   - GUI application for using Bazaar
v   bzr-grep                                                       -
p   bzr-loom                                                       - Focused patch plugin support for Bazaar
p   bzr-pipeline                                                   - Bazaar plugin for managing a pipeline of changes
p   bzr-search                                                     - search plugin for Bazaar
p   bzr-stats                                                      - statistics plugin for Bazaar
p   bzr-tweet                                                      - Bazaar commit and push tweet plugin
p   bzr-upload                                                     - Bazaar plugin for uploading to web servers
p   bzr-xmloutput                                                  - XML Communication plugin for Bazaar
p   bzrtools                                                       - Collection of tools for bzr
p   fusionforge-plugin-scmbzr                                      - collaborative development tool - Bazaar plugin
v   gforge-plugin-scmbzr                                           -
p   git-bzr                                                        - transitional dummy package
p   git-remote-bzr                                                 - bidirectional bridge between Git and Bazaar
p   libzrtpcpp-dev                                                 - Headers and static link library for libzrtpcpp
p   libzrtpcpp2                                                    - ccrtp extension for zrtp/Zfone support
p   python-bzrlib                                                  - distributed version control system - python library
p   python-bzrlib-dbg                                              - distributed version control system - debug extension
p   python-bzrlib.tests                                            - distributed version control system - testsuite
v   python2.7-bzrlib                                               -
v   python2.7-bzrlib-dbg                                           -
v   python2.7-bzrlib.tests                                         -
p   qbzr                                                           - Graphical interface for Bazaar using the Qt toolkit

در صورتی که پکیجی را نصب کرده باشیم و به هنگام نصب آن را Config کرده باشیم و حالا بخواهیم مجدد تنظیمات را انجام دهیم، از دستور زیر استفاده میکنیم. مثلا برای تنظیمات مجدد ساعت دستور زیر استفاده میگردد.

regux@debian:~#  dpkg-reconfigure tzdata

برمیگردیم به فایلی که دانلود کرده بودیم.

regux@debian:~# ls /var/cache/apt/archives/bzr_2.6.0+bzr6595-6_all.deb
/var/cache/apt/archives/bzr_2.6.0+bzr6595-6_all.deb

اگر بخواهیم محتوای این فایل را ببینیم به صورت زیر عمل میکنیم.

regux@debian:~# dpkg --contents /var/cache/apt/archives/bzr_2.6.0+bzr6595-6_all.deb
drwxr-xr-x root/root         0 2014-09-27 18:13 ./
drwxr-xr-x root/root         0 2014-09-27 18:13 ./usr/
drwxr-xr-x root/root         0 2014-09-27 18:13 ./usr/share/
drwxr-xr-x root/root         0 2014-09-27 18:13 ./usr/share/doc/
drwxr-xr-x root/root         0 2014-09-27 18:13 ./usr/share/doc/bzr/
-rw-r--r-- root/root      2819 2014-04-27 17:43 ./usr/share/doc/bzr/copyright
-rw-r--r-- root/root     15098 2014-09-27 17:52 ./usr/share/doc/bzr/changelog.Debian.gz
-rw-r--r-- root/root      1160 2014-04-27 17:43 ./usr/share/doc/bzr/NEWS.Debian.gz
-rw-r--r-- root/root       112 2014-04-27 17:43 ./usr/share/doc/bzr/TODO.Debian
drwxr-xr-x root/root         0 2014-09-27 18:13 ./usr/share/man/
drwxr-xr-x root/root         0 2014-09-27 18:13 ./usr/share/man/man1/
-rw-r--r-- root/root     31705 2014-09-27 18:13 ./usr/share/man/man1/bzr.1.gz
drwxr-xr-x root/root         0 2014-09-27 18:13 ./usr/bin/
-rwxr-xr-x root/root      4523 2014-09-27 18:13 ./usr/bin/bzr
drwxr-xr-x root/root         0 2014-09-27 18:13 ./etc/
drwxr-xr-x root/root         0 2014-09-27 18:13 ./etc/bash_completion.d/
-rw-r--r-- root/root      1467 2010-04-22 03:01 ./etc/bash_completion.d/bzr

فایل ها پس از نصب در این مسیر ها کپی میشوند.

همچنین وضعیت یک Package را میتوانیم با دستور زیر روی صفحه نمایش دهیم.

regux@debian:~# dpkg -s bzr
Package: bzr
Status: deinstall ok config-files
Priority: optional
Section: vcs
Installed-Size: 100
Maintainer: Debian Bazaar Maintainers <pkg-bazaar-maint@lists.alioth.debian.org>
Architecture: all
Version: 2.6.0+bzr6595-6
Config-Version: 2.6.0+bzr6595-6
Depends: python-bzrlib (<= 2.6.0+bzr6595-6.1~), python-bzrlib (>= 2.6.0+bzr6595-6), python:any
Recommends: python-gpgme
Suggests: bzr-doc, bzrtools, python-bzrlib.tests
Breaks: bzr-pqm (<< 1.4.0~bzr80), bzr-xmloutput (<< 0.8.8+bzr160), python-bzrlib (<< 2.4.0~beta3~)
Conffiles:
 /etc/bash_completion.d/bzr b8d9ca95521a7c5f14860e205a854da2
Description: easy to use distributed version control system
 Bazaar is a distributed version control system designed to be easy to
 use and intuitive, able to adapt to many workflows, reliable, and
 easily extendable.
 .
 Publishing of branches can be done over plain HTTP, that is, no special
 software is needed on the server to host Bazaar branches. Branches can
 be pushed to the server via sftp (which most SSH installations come
 with), FTP, or over a custom and faster protocol if bzr is installed in
 the remote end.
 .
 Merging in Bazaar is easy, as the implementation is able to avoid many
 spurious conflicts, deals well with repeated merges between branches,
 and is able to handle modifications to renamed files correctly.
 .
 Bazaar is written in Python, and has a flexible plugin interface which
 can be used to extend its functionality. Many plugins exist, providing
 useful commands (bzrtools), graphical interfaces (qbzr), or native
 interaction with Subversion branches (bzr-svn).
 .
 Install python-paramiko if you are going to push branches to remote
 hosts with sftp.
Homepage: http://bazaar-vcs.org

به طور مثال میتوانیم متوجه شویم که وضعیت این پکیج deinstall است.

با استفاده از فلگ P میتوانیم cache کلیه Package های حذف شده را پاک کنیم. این دستور را استفاده میکنیم و مجدد وضعیت پکیج bzr را چک میکنیم.

regux@debian:~# dpkg -P bzr
(Reading database ... 145934 files and directories currently installed.)
Removing bzr (2.6.0+bzr6595-6) ...
Purging configuration files for bzr (2.6.0+bzr6595-6) ...
regux@debian:~# dpkg --purge bzr
dpkg: warning: ignoring request to remove bzr which isn't installed
regux@debian:~# dpkg -s bzr
dpkg-query: package 'bzr' 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.

همانطور که مشاهده میکنید کلیه آثار باقیمانده از bzr نیز حذف گردیدند.

دستور زیر فایل ها و دایرکتوری هایی که bzr در آنها فایل کپی نموده است را نمایش میدهد.

regux@debian:~# dpkg -L bzr
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/bzr
/usr/share/doc/bzr/copyright
/usr/share/doc/bzr/changelog.Debian.gz
/usr/share/doc/bzr/NEWS.Debian.gz
/usr/share/doc/bzr/TODO.Debian
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/bzr.1.gz
/usr/bin
/usr/bin/bzr
/etc
/etc/bash_completion.d
/etc/bash_completion.d/bzr

همچنین اگر فایلی داشته باشیم که بخواهیم بفهمیم چه برنامه ای آن را نصب کرده است، از دستور زیر استفاده میکنیم.

regux@debian:~# dpkg -S /usr/share/doc/bzr/changelog.Debian.gz
bzr: /usr/share/doc/bzr/changelog.Debian.gz

در صورتی که بخواهیم مستقیما فایل deb. را نصب کنیم از دستور زیر استفاده میکنیم.

regux@debian:~# dpkg -i /var/cache/apt/archives/bzr_2.6.0+bzr6595-6_all.deb
Selecting previously unselected package bzr.
(Reading database ... 146982 files and directories currently installed.)
Preparing to unpack .../bzr_2.6.0+bzr6595-6_all.deb ...
Unpacking bzr (2.6.0+bzr6595-6) ...
Setting up bzr (2.6.0+bzr6595-6) ...
Processing triggers for man-db (2.7.0.2-5) ...

برای حذف آن نیز دستور زیر استفاده میشود.

regux@debian:~# dpkg -r bzr
(Reading database ... 146988 files and directories currently installed.)
Removing bzr (2.6.0+bzr6595-6) ...
Processing triggers for man-db (2.7.0.2-5) ...

در آخر اگر بخواهیم برنامه ای را با استفاده از aptitude نصب، حذف، جستجو کرده یا بخواهیم اطلاعاتی را در مورد آن مشاهده کنیم، از دستورات زیر استفاده میکنیم.

regux@debian:~# aptitude install jcal
regux@debian:~# aptitude remove jcal
regux@debian:~# aptitude search cal 
regux@debian:~# aptitude show bzr

به جای apt و aptitude ابزارهای Command Line و گرافیکی بسیار بیشتری وجود دارد. ولی مهمترین آنها توضیح داده شد.

 

موفق باشید.

 

 

نویسنده: میلاد خوشدل

منابع:

-جادی
-sybex
-کتاب راهنمای جامع مدرک بین المللی Lpic1


دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

3 × 5 =