ابزار کاربر

ابزار سایت


terminal:d:dnf-command-package-management

فهرست مندرجات

دستور dnf ( مدیریت بسته )

DNF مدیریت بسته ای میباشد که بوسیله آن میتوان بسته های نرم افزاری را نصب, حذف, بروزرسانی , و در کل مدیریت کرد.DNF از YUM که یک مدیر بسته میباشد fork شده است. گفتنی است که DNF از فدورا ۱۸ در مخزن های فدورا وجود داشت و قابل استفاده بود که با انتشار فدورا۲۲ مدیر بسته پیش فرض و جایگزین YUM شد. کار با DNF به همان سادگی کار با YUM میباشد و بیشتر دستورها یکسان هستند و تنها کافیست به جای دستور YUM از دستور DNF استفاده کنید. برای نصب DNF کافیست تا این دستور را اجرا کنید, البته همانطور که گفته شد برای نسخه های فدورا ۲۲ به بعد نیازی به نصب نیست.

sudo yum install dnf

در صورت هرگونه سوال یا مشکل حتما در انجمن مطرح نمایید تا در اسرع وقت پاسخگو باشیم انجمن

برای مشاهده نسخه dnf نصب شده بر روی سیستم خود از دستور زیر استفاده کنید:

-> $dnf --version
2.7.5
  Installed: dnf-0:2.7.5-2.fc27.noarch at Sun Dec 10 17:28:28 2017
  Built    : Fedora Project at Wed Nov 29 09:48:50 2017
 
  Installed: rpm-0:4.14.1-1.fc27.x86_64 at Fri Feb  9 07:29:04 2018
  Built    : Fedora Project at Thu Feb  1 11:45:18 2018

کاربردهای دستور dnf

در ادامه مهمترین و پرکاربردترین دستورات dnf توضیح داده خواهد شد. دستور کلی استفاده از dnf بصورت زیر میباشد:

dnf [options]<command>[<args>...]

لیست کردن Repository های فعال

از گزینه repolist با دستور dnf استفاده میشود

dnf repolist

خروجی دستور بالا:

-> $dnf repolist
Last metadata expiration check: 0:56:59 ago on Fri Apr  6 15:40:51 2018.
repo id                     repo name                                     status
MEGAsync                    MEGAsync                                         18
code                        Visual Studio Code                               31
*fedora                     Fedora 27 - x86_64                            54801
*rpmfusion-free             RPM Fusion for Fedora 27 - Free                 574
*rpmfusion-free-updates     RPM Fusion for Fedora 27 - Free - Updates       221
*rpmfusion-nonfree          RPM Fusion for Fedora 27 - Nonfree              205
*rpmfusion-nonfree-updates  RPM Fusion for Fedora 27 - Nonfree - Updates     68
*updates                    Fedora 27 - x86_64 - Updates                  13224

لیست کردن DNS Repository های فعال (enabled) و غیرفعال (disables)

از دستور زیر استفاده میشود

dnf repolist all

خروجی دستور بالا:

-> $dnf repolist all
Last metadata expiration check: 0:59:24 ago on Fri Apr  6 15:40:51 2018.
repo id                                               repo name                                                          status
MEGAsync                                              MEGAsync                                                           enabled:    18
code                                                  Visual Studio Code                                                 enabled:    31
*fedora                                               Fedora 27 - x86_64                                                 enabled: 54801
fedora-cisco-openh264                                 Fedora 27 openh264 (From Cisco) - x86_64                           disabled
fedora-cisco-openh264-debuginfo                       Fedora 27 openh264 (From Cisco) - x86_64 - Debug                   disabled
fedora-debuginfo                                      Fedora 27 - x86_64 - Debug                                         disabled
fedora-source                                         Fedora 27 - Source                                                 disabled
*rpmfusion-free                                       RPM Fusion for Fedora 27 - Free                                    enabled:   574
rpmfusion-free-debuginfo                              RPM Fusion for Fedora 27 - Free - Debug                            disabled
rpmfusion-free-source                                 RPM Fusion for Fedora 27 - Free - Source                           disabled
*rpmfusion-free-updates                               RPM Fusion for Fedora 27 - Free - Updates                          enabled:   221
rpmfusion-free-updates-debuginfo                      RPM Fusion for Fedora 27 - Free - Updates Debug                    disabled
rpmfusion-free-updates-source                         RPM Fusion for Fedora 27 - Free - Updates Source                   disabled
rpmfusion-free-updates-testing                        RPM Fusion for Fedora 27 - Free - Test Updates                     disabled
rpmfusion-free-updates-testing-debuginfo              RPM Fusion for Fedora 27 - Free - Test Updates Debug               disabled
rpmfusion-free-updates-testing-source                 RPM Fusion for Fedora 27 - Free - Test Updates Source              disabled
*rpmfusion-nonfree                                    RPM Fusion for Fedora 27 - Nonfree                                 enabled:   205
rpmfusion-nonfree-debuginfo                           RPM Fusion for Fedora 27 - Nonfree - Debug                         disabled
rpmfusion-nonfree-source                              RPM Fusion for Fedora 27 - Nonfree - Source                        disabled
*rpmfusion-nonfree-updates                            RPM Fusion for Fedora 27 - Nonfree - Updates                       enabled:    68
rpmfusion-nonfree-updates-debuginfo                   RPM Fusion for Fedora 27 - Nonfree - Updates Debug                 disabled
rpmfusion-nonfree-updates-source                      RPM Fusion for Fedora 27 - Nonfree - Updates Source                disabled
rpmfusion-nonfree-updates-testing                     RPM Fusion for Fedora 27 - Nonfree - Test Updates                  disabled
rpmfusion-nonfree-updates-testing-debuginfo           RPM Fusion for Fedora 27 - Nonfree - Test Updates Debug            disabled
rpmfusion-nonfree-updates-testing-source              RPM Fusion for Fedora 27 - Nonfree - Test Updates Source           disabled
*updates                                              Fedora 27 - x86_64 - Updates                                       enabled: 13224
updates-debuginfo                                     Fedora 27 - x86_64 - Updates - Debug                               disabled
updates-source                                        Fedora 27 - Updates Source                                         disabled
updates-testing                                       Fedora 27 - x86_64 - Test Updates                                  disabled
updates-testing-debuginfo                             Fedora 27 - x86_64 - Test Updates Debug                            disabled
updates-testing-source                                Fedora 27 - Test Updates Source                                    disabled

نصب یک بسته

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

dnf install <package name>

نصب یک بسته بدون دریافت تایید

dnf install -y <package name>

حذف بسته

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

dnf remove <package name>

نمایش بسته های نصب شده

dnf list

خروجی دستور بالا:

zxing-javase.noarch                      3.2.1-7.fc28                  fedora   
zxing-parent.noarch                      3.2.1-7.fc28                  fedora   
zynaddsubfx.x86_64                       3.0.2-2.fc28                  fedora   
zynaddsubfx-common.noarch                3.0.2-2.fc28                  fedora   
zynaddsubfx-dssi.x86_64                  3.0.2-2.fc28                  fedora   
zynaddsubfx-lv2.x86_64                   3.0.2-2.fc28                  fedora   
zynaddsubfx-vst.x86_64                   3.0.2-2.fc28                  fedora   
zynjacku.x86_64                          6-19.fc28                     fedora   
zypp-common.noarch                       17.2.0-1.fc28                 fedora   
zypp-plugins.noarch                      17.2.0-1.fc28                 fedora   
zypp-tools.x86_64                        17.2.0-1.fc28                 fedora   
zypper.x86_64                            1.14.3-1.fc28                 fedora   
zypper-aptitude.noarch                   1.14.3-1.fc28                 fedora   
zypper-log.noarch                        1.14.3-1.fc28                 fedora   
zziplib.i686                             0.13.68-1.fc28                fedora   
zziplib.x86_64                           0.13.68-1.fc28                fedora   
zziplib-devel.i686                       0.13.68-1.fc28                fedora   
zziplib-devel.x86_64                     0.13.68-1.fc28                fedora   
zziplib-utils.x86_64                     0.13.68-1.fc28                fedora   
zzuf.x86_64 

لیست کردن همه بسته های نصب شده با dnf

dnf list installed

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

dnf list available

نمایش لیست گروه های نرم افزاری

dnf grouplist

خروجی دستور بالا:

-> $dnf grouplist
Last metadata expiration check: 0:00:00 ago on Fri Jul  6 16:09:58 2018.
Available Environment Groups:
   Fedora Custom Operating System
   Minimal Install
   Fedora Server Edition
   Fedora Workstation
   Fedora Cloud Server
   KDE Plasma Workspaces
   Xfce Desktop
   LXDE Desktop
   LXQt Desktop
   Cinnamon Desktop
   MATE Desktop
   Sugar Desktop Environment
   Development and Creative Workstation
   Web Server
   Infrastructure Server
   Basic Desktop
Installed Groups:
   Administration Tools
   Fonts
   Hardware Support
Available Groups:
   3D Printing
   Ansible node
   Audio Production
   Authoring and Publishing
   Books and Guides
   C Development Tools and Libraries
   Cloud Infrastructure
   Cloud Management Tools
   Compiz
   Container Management
   D Development Tools and Libraries
   Design Suite
   Development Tools
   Domain Membership
   Fedora Eclipse
   Editors
   Educational Software
   Electronic Lab
   Engineering and Scientific
   FreeIPA Server
   Headless Management
   LibreOffice
   MATE Applications
   Medical Applications
   Milkymist
   Network Servers
   Office/Productivity
   Python Classroom
   Python Science
   Robotics
   RPM Development Tools
   Security Lab
   Text-based Internet
   Window Managers
   GNOME Desktop Environment
   Graphical Internet
   KDE (K Desktop Environment)
   Games and Entertainment
   Sound and Video
   System Tools

نصب یک گروه نرم افزاری

dnf groupinstall <group-name>

حذف یک گروه نرم افزاری

dnf groupremove <group-name>

نصب یک بسته از یک مخزن خاص

dnf --enablerepor=epel install phpadmin

همگام سازی همه بسته های نصب شده به آخرین نسخه انتشار پایدار

dnf distro-sync

نصب مجدد یک بسته

dnf reinstall <package-name>

downgrade کردن یک بسته

dnf downgrade <package-name>

جستجوی یک بسته در مخازن

dnf search <package-name>

بررسی نام بسته از آدرس فایل

برای اینکه ببینید که یک مسیر فایل مشخص به چه بسته هایی بر روی سیستم تان تعلق دارد میتوانید از گزینه provides دستور dnf استفاده نمایید برای مثال در اینجا قصد داریم بدانیم نام بسته که از فایل bin/bash/ استفاده میکند

-> $dnf provides /bin/bash
Last metadata expiration check: 0:20:18 ago on Fri Jul  6 16:09:58 2018.
bash-4.4.23-1.fc28.x86_64 : The GNU Bourne Again shell
Repo        : @System
Matched from:
Provide    : /bin/bash
 
bash-4.4.23-1.fc28.x86_64 : The GNU Bourne Again shell
Repo        : updates
Matched from:
Provide    : /bin/bash
 
bash-4.4.19-2.fc28.x86_64 : The GNU Bourne Again shell
Repo        : fedora
Matched from:
Provide    : /bin/bash

به روزرسانی بسته ها

dnf update

بررسی به روزرسانی بسته ها

dnf check-update

به روزرسانی یک بسته خاص

dnf update <package-name>

مشاهده تاریخچه

dnf history

نمایش اطلاعات یک بسته

dnf info <package-name>

افزودن مخازن ماژول

dnf install fedora-repos-modular

نمایش لیست ماژول ها

dnf module list

خروجی دستور بالا:

-> $dnf module list
Last metadata expiration check: 0:31:55 ago on Fri Jul  6 16:09:58 2018.
Fedora Modular 28 - x86_64
Name                             Stream                      Version                        Profiles                                   
reviewboard                      2.5 [d]                     20180206144254                 default, server                            
 
Fedora Modular 28 - x86_64 - Updates
Name                             Stream                      Version                        Profiles                                   
ant                              1.10                        20180411122322                 default                                    
avocado                          latest                      20180614184418                 default, minimal                           
container-tools                  2017.0                      20180313063358                 default                                    
cri-o                            2017.0                      20180313134242                 default                                    
django                           1.6                         20180409143454                 default, python2_development               
docker                           2017.0                      20180314032736                 default                                    
flatpak-runtime                  f28                         20180307202408                 buildroot, runtime, ...                    
gimp                             2.10 [e]                    20180523092110                 default [i], devel                         
golang                           1.10                        20180327174614                 default                                    
golang-ecosystem                 2017.0                      20180312141905                 default                                    
hub                              pre-release                 20180613180542                 default                                    
mariadb                          10.1                        20180419160707                 client, default, ...                       
maven                            3.5                         20180411112402                 default                                    
mysql                            5.6                         20180507203856                 client, default, ...                       
mysql                            8.0                         20180507133324                 client, default, ...                       
nodejs                           10                          20180510163433                 default, development, ...                  
nodejs                           6                           20180614180859                 default, development, ...                  
nodejs                           8                           20180604172846                 default, development, ...                  
nodejs                           9                           20180614205456                 default, development, ...                  
postgresql                       9.6                         20180429200004                 client, default, ...                       
reviewboard                      3.0                         20180607124319                 default, server                            
squid                            4.0                         20180604145326                 default                                    
 
Hint: [d]efault, [e]nabled, [i]nstalled, [l]ocked

نصب یک بسته از مخازن ماژول

روش اول

مثلا ما میخواهیم nodejs نسخه ۶ را نصب کنیم

dnf module install nodejs:6/default

روش دوم

اول ماژول هارو فعال و بعد اقدام به نصب میکنیم

dnf dnf module enable nodejs:6
dnf install nodejs

مرتب کردن سرورهای مخازن بر اساس سرعت

در دستورات زیر ما میرورهای آمریکا و اروپا رو اضافه میکنیم پس به ترتیب دستورات زیر را در ترمینال وارد کنید

sudo -i
sed "s|=\$basearch$|=\$basearch\&country=US,DE,CA,FR,global|" /etc/yum.repos.d/* -i

حذف یک مخزن

به آدرس زیر مراجعه کنید

cd /etc/yum.repos.d/

مخزن مورد نظر خودتون رو با دستور rm حذف کنید

sudo rm repo_name

غیرفعال کردن آپدیت خودکار

systemctl disable dnf-makecache.timer 

افزودن میرور

با تنظیمات پیش رو میتوانید سرعت میرورهای را افزایش دهید ۳ روش برای افزایش سرعت وجود داره که من در ادامه به اون میپردازم

روش اول : فعال سازی آپشن fastmirror

مطمئنن اگر که منوال پیج dnf.conf و مشاهده کرده باشید با آپشن fastestmirror مواجه شده اید وظیفه این آپشن انتخاب سریع ترین میرور برای شماست که شامل ۲ متغیر ورودی از نوع boolean است true و false
در صورتی که true انتخاب شده باشد به معنی روشن بودن این آپشن و در صورت استفاده از false یعنی این آپشن غیرفعال است به عنوان مثال آپشن در این حالت فعال است

fastestmirror=true

روش دوم : قرار دادن کشورها در اولویت

قرار دادن کشورها در اولویت به این معنی که مثلا شما بعضی از کشورهایی که میرورهای سریع دارند را به اولویت سرعت در لیست قرار میدهید که در صورت افت سرعت سریعا به میرور بعدی منتقل شوید برای این منظور باید دستور زیر را استفاده کنید که در لیست زیر ما از کشورهای فرانسه - آمریکا و … استفاده کردیم

برای انجام این مرحله ریپوزیتوری های درون etc/yum.repos.d/ ویرایش خواهد شد

sed "s|=\$basearch$|=\$basearch\&country=US,DE,CA,FR,global|" /etc/yum.repos.d/* -i

روش سوم : انتخاب میرور توسط کاربر

در این روش کاربر خودش میرور را انتخاب و در مخازن etc/yum.repos.d/ قرار میدهد همانطور که بالاتر هم ذکر کردیم تمام مخازن در آدرس etc/yum.repos.d/ قرار دارند برای این منظور باید ۳ مرحله رو انجام بدیم

مرحله اول : از کجا بهترین میرور و پیدا کنیم

برای این منظور تنها کافی است به آدرس زیر مراجعه بکنید
https://admin.fedoraproject.org/mirrormanager/mirrors/Fedora/29/x86_64

مرحله دوم : چگونه بهترین میرور و انتخاب کنیم

با استفاده از دستور ping اقدام به بررسی میرورها میکنیم و در صورت داشتن سریع ترین پاسخگویی همان میرور را انتخاب میکنیم بر فرض مثال من تصمیم دارم سایت linuxfedora را از لحاظ پینگ بررسی بکنم برای این منظور من دستور زیر را در ترمینال تایپ و اینتر میزنم

ping linuxfedora.ir

خروجی چیزی مشابه زیر میباشد

PING linuxfedora.ir (185.49.84.27) 56(84) bytes of data.
64 bytes from sepehr.mrservers.net (185.49.84.27): icmp_seq=1 ttl=54 time=47.2 ms
64 bytes from sepehr.mrservers.net (185.49.84.27): icmp_seq=2 ttl=54 time=52.7 ms
64 bytes from sepehr.mrservers.net (185.49.84.27): icmp_seq=3 ttl=54 time=49.8 ms
64 bytes from sepehr.mrservers.net (185.49.84.27): icmp_seq=4 ttl=54 time=45.8 ms
64 bytes from sepehr.mrservers.net (185.49.84.27): icmp_seq=5 ttl=54 time=46.1 ms

در گزارش فوق ما فقط به بخش time نیاز داریم که به ما مقدار زمان پاسخ از سرور رو نمایش میده که برای من بین 46 الی ۵۲ میلی ثانیه طول کشیده که سایت ما سرعت خوبی برای پاسخگویی دارد و شما هم باید میرورهارو به ترتیب بررسی و میروری که بالاترین سرعت را دارد انتخاب کنید

مرحله سوم : بعد از پیدا کردن میرور مناسب بایستی چه کاری انجام بدهیم

به مخزنی که قرار هست میرور را برای آن اعمال کنید مراحعه میکنید به عنوان مثال ما به میرور fedor.repo مراجعه میکنم بعد از مراجعه شما با دو آپشن مواجه خواهید شد metalink و baseurl که در ادامه به صورت کامل هر آپشن را توضیح خواهم داد

  • metalink : وظیفه انتخاب میرورها را بر عهده دارد و خودکار خودش میرور را انتخاب و استفاده میکند و اگر در روش اول fastmirror را فعال کرده باشیم به صورت خودکار متالینک ها خودکار میباشند و سریع ترین میرور را انتخاب و استفاده میکنند
  • baseurl : در مقابل این آپشن معمولا یک آدرس قرار دارد که ما قرار هست انتخاب کنیم یا کردیم به مثال زیر دقت کنید نمونه از آپشن فوق است
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/

روش سوم دقیقا باید در همین بخش باید انجام شود و شما اگر میرور رو پیدا کرده اید باید در اینجا قرار دهید به مثال زیر دقت کنید میرور انتخابی ما آدرس زیر هست

http://fedora.inode.at/

پس علامت کامنت را بر میداریم # و آدرس را بعد از baseurl قرار میدهیم همانند مثال زیر

baseurl=http://fedora.inode.at/releases/29/Everything/x86_64/os/

هر مخزن آدرس baseurl آن متفاوت است پس حتما فراموش نکنید طبق baseurl آن که کامند می باشد از میرور آدرس را پیدا کنید

به همین راحتی میرور دلخواه خودمان را اضافه کردیم در صورت هرگونه سوال در ارتباط با موارد ذکر شده حتما در انجمن مرتبط به همین صفحه سوالات خود را بپرسید

چگونه timeout را زیاد کنیم

در بسیاری از موارد اتفاق افتاده که ما موقع اتصال به میرور و یا اتصال مستقیم به مخزن دچار مشکل شدیم مثلا: به خاطر سرعت پایین مون یا پهنای باند ضعیف مون موقع اتصال به میرور دچار ارور timeout شدیم و اتصال مون قطع شده و به میرور جدید انتقال پیدا کردیم و باعث شده که دانلود از سر گرفته بشه یا فایل مورد نظر ما خراب بشه یا هزاران مسئله دیگه برای این موضوع ۲ تا راه حل وجود دارد

روش اول : تهیه اینترنت بهتر

که خوب در بسیاری از موارد ما به خاطر هزینه های بالا توان خرید پهنای باند بهتر و اینترنت بهتر و نداریم

روش دوم : افزایش timeout

به لطف متخصص های خوبی که در شرکت فدورا وجود داره و به لطف همکاری های شرکت ردهت اینترپرایس با فدورا مقدار زیادی دستور العمل های خیلی خوبی در dnf و yum میتونیم مشاهده کنیم که با خوندن man dnf.conf یا man yum.conf میتونیم به این اطلاعات با ارزش دست پیدا کنیم

برای توزیع فدورا

خوب برای این کار در توزیع فدورا و پکیج منیجر dnf به این ادرس میرویم etc/dnf/dnf.con/ اضافه میکنیم بعد از مراجعه به آدرس فوق دستور زیر را به آن اضافه میکنیم

timeout=440
برای توزیع سنت او اس

برای yum در centos نیز به مسیر etc/yum.conf/ مراجعه میکنیم و خط بالا رو در أن قرار دهید. دستور بالا به این معناست که شما به dnf میگید که به مدت زمان( 440 ثانیه ) اتصال خودت رو حفظ کن در هر صورت باز به دانلود کردن ادامه بده و کاربردش برای مواردی که سرعت دانلود ما پایین هست و یا پهنای باند خوبی نداریم بسیار بدرد بخوره.

  1. phoenix 2019/02/12 18:59
  2. mohsen 2019/02/12 18:27
terminal/d/dnf-command-package-management.txt · آخرین ویرایش: 2019/02/19 19:29 توسط alone