لینوکس، عشق، برنامه نویسی

لینوکس، عشق، برنامه نویسی

در این وبلاگ مطالبی درباره سیستم عامل لینوکس و همچنین درمورد برنامه نویسی و کامپیوتر مینویسم.

جمعه, ۱ فروردين ۱۳۹۹، ۰۳:۲۱ ب.ظ

 

 

دوستان سلام. تقریبا چند روز پیش میخواستم برنامه gambas3 رو روی مانجارو نصب کنم، برنامه رو نصب کردم ولی برنامه اجرا نشد و یک ارور داد به این شکل: 

gb.gui.qt: error: cannot load component 'gb.qt5'

 

از ظاهر اررور میشه فهمید که یک ایرادی در رابطه با پجیج های کیوت وجود داره ولی چند روز از این قضیه میگذره و هنوز نتونستم این مشکل رو برطرف بکنم. راستش رو بخواید دیروز احساس کردم بعد از حدود ۴ ۵ سال کار کردن با لینوکس،  هیچ چیز از پکیج ها نمیدونم و به همین خاطر تصمیم گرفتم یک مقاله ی خیلی جامع درباره پکیج ها و پکیج منیجر ها در لینوکس بنویسم تا هم خودم ۰ تا ۱۰۰ این قضیه رو یاد گرفته باشم و هم به شما یاد بدم. پس با من همراه باشید.

 

عنوان این مقاله هست "نگاهی بر پیکیج منیجر های لینوکس - pacman"

 

هر وقت خواستید از ۰ تا ۱۰۰ داستان پکیج منیجر ها در لینوکس رو بدونید، این مقاله رو در گوگل سرچ کنید، یا اونو به دوستان خودتون معرفی بکنید :)

 

من از مانجارو دارم استفاده میکنم که یک توزیع مبتنی بر Arch هست و پکیج منیجرش pacman هست. خب، پکیج منیجر پکمن خیلی سرراسته و دستوراتش، ساختار و نظم مشخصی داره و  راحت و قابل فهم هست.

 

ساختار همه ی دستورات پکمن به این شکل هست:

 
pacman <operation> <options> <package(s)>
 

ینی دستور پکمن رو که نوشتیم، ۳ تا گزینه مقابلش باید بزاریم، یکیش operation و دیگری options و اخری هم نام پکیج (یا پکیج های) مد نظرمون

 

نکته ی ۱:
بچه ها دوتا کلمه ی اولی خیلی به هم شبیه هستن، بنابراین بهشون دقت کنید و تلفظشون رو با همدیگه اشتباه نگیرید. برای تلفظ درست میتونید از گوگل ترنزلیت کمک بگیرید

نکته ی ۲:
ممکنه در برخی موارد شما فقط operation رو داشته باشید، یا operation و options رو داشته باشید، و یا در مواردی هم هر سه ۳ تا رو با هم بنویسید. مقاله رو بخونید در مثال هایی که زدم متوجه می شید.



حالا از کجا بفهمیم که این دو گزینه اول چی هستن؟ خیلی راحت. کافیه دستور pacman -help رو توی ترمینال بزنید:

pacman -help

usage:  pacman <operation> [...]
operations:
    pacman {-h --help}
    pacman {-V --version}
    pacman {-D --database} <options> <package(s)>
    pacman {-F --files}    [options] [package(s)]
    pacman {-Q --query}    [options] [package(s)]
    pacman {-R --remove}   [options] <package(s)>
    pacman {-S --sync}     [options] [package(s)]
    pacman {-T --deptest}  [options] [package(s)]
    pacman {-U --upgrade}  [options] <file(s)>

use 'pacman {-h --help}' with an operation for available options

 

 همونطور که میبینید، ما بجای operation،  هشت تا  دستور میتونیم بنویسم:    ینی V- و D- و F- و Q- و R- و S- و T- و U-   (یادتون باشه همیشه operation با حرف بزرگ هست)

  

V-

که اول واژه ی version هست و برای بررسی ورژن ازش استفاده میکنیم

D- که اول واژه ی database هست و برای کارهای مربوط به دیتابیس پکیج منیجر ازش استفاده میکنیم
F- که اول واژه ی files هست و برای کار بار فایل ها ازش استفاده میکنیم
Q- که اول واژه ی query هست. کوعری به معنی جستجو هست و ما با استفاده از این میتونم اطلاعاتی رو درباره پکیج ها جستجو بکنیم
R- که اول واژه ی remove هست و برای پاک کردن پکیج ها ازش استفاده میکنیم
S- که اول واژه ی sync هست و برای نصب پجیج ها ازش استفاده میکنیم
T-  
U- که اول واژه ی upgrade هست و برای آپدیت کردن سیستم عامل و بسته ها ازش استفاده میکنیم

 

 

حالا، هر کدوم از این دستور ها، برای خودشون چندین تا option دارن. ینی مثلا D- برای خودش چندین تا option داره. (یادتون باشه همیشه  option با حرف کوچک هست)

برای دیدن آپشن ها کافیه بعد از هر operation، دستور help- رو بزنید. مثلا ما میخواهیم بفهمیم D operation- دارای چند option هست، مانند زیر:

pacman -D -help
 

usage:  pacman {-D --database} <options> <package(s)>
options:
  -b, --dbpath <path>  set an alternate database location
  -k, --check          test local database for validity (-kk for sync databases)
  -q, --quiet          suppress output of success messages
  -r, --root <path>    set an alternate installation root
  -v, --verbose        be verbose
      --arch <arch>    set an alternate architecture
      --asdeps         mark packages as non-explicitly installed
      --asexplicit     mark packages as explicitly installed
      --cachedir <dir> set an alternate package cache location
      --color <when>   colorize the output
      --config <path>  set an alternate configuration file
      --confirm        always ask for confirmation
      --debug          display debug messages
      --disable-download-timeout
                       use relaxed timeouts for download
      --gpgdir <path>  set an alternate home directory for GnuPG
      --hookdir <dir>  set an alternate hook location
      --logfile <path> set an alternate log file
      --noconfirm      do not ask for any confirmation
      --sysroot        operate on a mounted guest system (root-only)

 

خب همونطور که می بینید، D operation- دارای چندین تا آپشن (option) هست از جمله b- و k- و -q و r- و v-

 

نکته ۱:
آپشن ها رو به دو صورت میتونید بنویسید، یا بصورت اختصاری فقط حرف اولش رو بنویسید مثل v- و یا بصورت کامل بنوبسید مثل verbose--
همونطور که در بالا می بینید، D operation- دارای ۱۹ تا آپشن هست که ۴ تای اولی حالت اختصار هم دارن ولی بقیه حالت اختصار ندارن


نکته ی ۲:
هر کدوم این حروفات انگلیسی، حرف اول یک کلمه هستن. مثلا Q حرف اول query (به معنی جستجو هست)، i حرف اول کلمه ی info هس، d حرف اول کلمه ی database هست، F حرف اول کلمه ی files هست. این ها رو اینجوری یاد بگیرید از یادتون نمیره ;)

 

خب، تا اینجا فکر میکنم با ساختار کلی دستورات pacman آشنا شدید :) ، اگر تا اینجا سوالی دارید حتما توی کامنتها بپرسید.

 

 

 

 

حالا بریم سراغ مثال های عملی و موارد بالایی رو به همراه مثال بررسی کنیم :

 

 

مثال اول: می خواهیم تمام پکیج هایی که روی سیستم ما نصب هست رو (به همراه توضیحات کامل هر پکیج) ببینیم. از این دستور استفاده میکنیم   pacman -Q -i 
(اگه بخوایم فقط اسم پکیج هارو ببینیم و توضیحاتش رو نبینیم، فقط دستور pacman -Q رو میزنیم
)

pacman -Q -i

Name            : zvbi
Version         : 0.2.35-3
Description     : VBI capture and decoding library
Architecture    : x86_64
URL             : http://zapping.sourceforge.net/cgi-bin/view/ZVBI/WebHome
Licenses        : GPL
Groups          : None
Provides        : None
Depends On      : libpng  libx11
Optional Deps   : None
Required By     : gst-plugins-bad
Optional For    : vlc
Conflicts With  : None
Replaces        : None
Installed Size  : 1367.00 KiB
Packager        : Maxime Gauduin <alucryd@archlinux.org>
Build Date      : Fri 24 Aug 2018 12:18:59 PM +0430
Install Date    : Wed 11 Sep 2019 03:50:27 PM +0430
Install Reason  : Installed as a dependency for another package
Install Script  : No
Validated By    : Signature

دوستان، خروجی این دستور خیلی زیاد هست، من فقط مقدار کمی از خروجی رو براتون نوشتم. همونطور که می بینید، پکیج zvbi روی سیستم من نصب هست و تمام اطلاعات مربوط به این پکیج از جمله اسم، ورژن، توضیحات، url، لایسنس، Depends On (ینی اینکه این پکیج به چه پکیج های دیگه ای وابسته هست)، Required By (ینی این پکیج توسط چه پکیج های دیگه ای مورد نیاز هست) و  تمام اطلاعات دیگر رو درباره پکیج zvbi  بهمون داد.

 

 

 

مثال دوم: می خواهیم اطلاعات یک پکیج خاص رو بدست بیاریم. برای مثال می خواهیم اطلاعات پکیج nettle رو بدست بیاریم.  از این دستور استفاده میکنیم    pacman -Q -i nettle

pacman -Q -i nettle

Name            : nettle
Version         : 3.5.1-1
Description     : A low-level cryptographic library
Architecture    : x86_64
URL             : https://www.lysator.liu.se/~nisse/nettle
Licenses        : GPL2
Groups          : None
Provides        : None
Depends On      : gmp
Optional Deps   : None
Required By     : dnsmasq  gnutls  gtkhash  lib32-nettle  stoken  xorg-server
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 857.00 KiB
Packager        : Andreas Radke <andyrtr@archlinux.org>
Build Date      : Sun 30 Jun 2019 01:51:56 PM +0430
Install Date    : Wed 11 Sep 2019 03:48:14 PM +0430
Install Reason  : Installed as a dependency for another package
Install Script  : No
Validated By    : Signature

خب، همونطور که می بینید تمام اطلاعات مربوط به پکیج nettle رو دریافت کردیم.

 

 

 

مثال سوم: می خواهیم پکیج هایی رو که بصورت دیپندنسی (توسط سایر پکیج ها) نصب شدن رو ببینیم. از این دستور استفاده میکنیم  pacman -Q -d

pacman -Q -d

a52dec 0.7.4-10
aalib 1.4rc5-13
acl 2.2.53-1
adobe-source-code-pro-fonts 2.030ro+1.050it-5
adwaita-icon-theme 3.32.0-1
alsa-lib 1.1.9-2
alsa-plugins 1.1.9-2
aom 1.0.0.errata1-1
appstream-glib 0.7.15-1
apr 1.7.0-1
apr-util 1.6.1-5
archlinux-appstream-data 20190825-1
archlinux-keyring 20200108-1
argon2 20190702-1

همونطور که میبینید، یک لیست بهم داد. البته این لیست خیلی طولانی بود و من فقط قسمت کمی از لیست رو براتون اوردم. اینها پکیج هایی هستند که توسط سایر پکج ها (بصورت dependency ) نصب شدن.

 

 

 

مثال چهارم: می خواهیم یک پکیجی رو روی سیستم خودمون نصب کنیم. از دستور زیر استفاده میکنیم
<نام پکیج> sudo pacman -S (در این روش، پکیج به همراه تمام وابستگی هایش (دیپندنسی) نصب میشه. برای مثال من پکیج gimp رو نصب میکنم

sudo pacman -S gimp

resolving dependencies...
looking for conflicting packages...

Packages (1) gimp-2.10.18-2

Total Download Size:    20.38 MiB
Total Installed Size:  111.44 MiB
Net Upgrade Size:        7.76 MiB

:: Proceed with installation? [Y/n]

همونطور که دیدید اگه y رو بزنم پکیج gimp به همراه تمام دیپندنسی هایش نصب میشه

 

 

 

مثال پنجم: می خواهیم یک پکیج رو از سیستم حذف کنیم، از دستور sudo pacman -R استفاده میکنیم. برای مثال من پکیج gimp رو از سیستم حذف میکنم

sudo pacman -R gimp

checking dependencies...

Packages (1) gimp-2.10.12-2

Total Removed Size:  103.68 MiB

:: Do you want to remove these packages? [Y/n] ^C
Interrupt signal received

همونطور که می بینید، اگه y رو بزنید پکیج gimp از سیستم حذف میشه

 

 

 

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

 

 

واسم حتما کامنت بزارید

 

 

نظرات (۲)

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

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

اینا چیه مینوسی

پاسخ:
سلام اینا مطالب لینوکسه😂

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی