فهرست مندرجات
دستور 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 ثانیه ) اتصال خودت رو حفظ کن در هر صورت باز به دانلود کردن ادامه بده و کاربردش برای مواردی که سرعت دانلود ما پایین هست و یا پهنای باند خوبی نداریم بسیار بدرد بخوره.
چگونه آپدیت های امنیتی را به صورت اتوماتیک در فدورا دریافت کنیم؟
ابتدا نیاز است که بسته dnf-automatic را نصب کنید :
sudo dnf install dnf-automatic
بعد از نصب بسته ، فایل کانفیگی به ادرس etc/dnf/
تحت عنوان automatic.conf اضافه خواهد شد. با دسترسی root این فایل را باز کنید :
sudo vim/etc/dnf/automatic.conf
شما باید ۳ متغیر را در این فایل به شکل زیر تغییر دهید :
upgrade_type = security download_updates = yes apply_updates = yes
سپس فایل را save کنید و خارج شوید. برای این که این فعالیت اتوماتیک صورت گیرد باید سرویس dnf-automatic.timer
را فعال نمایید.
sudo systemctl enable --now dnf-automatic.timer
برای بررسی این که همه چیز درست کانفیگ شده است دستور dnf-automatic را وارد کنید.
sudo dnf-automatic