27 DNF (Fork of Yum) ຄຳ ສັ່ງ ສຳ ລັບການຈັດການການຈັດການແພັກເກັດ RPM ໃນ Linux


DNF aka Dandified YUM ແມ່ນຜູ້ຈັດການແພັກເກັດລຸ້ນຕໍ່ໄປ ສຳ ລັບການແຈກຢາຍທີ່ອີງໃສ່ RPM. ມັນຖືກ ນຳ ສະ ເໜີ ເປັນຄັ້ງ ທຳ ອິດໃນ Fedora 18 ແລະມັນໄດ້ທົດແທນ Fedora 22.

DNF ມີຈຸດປະສົງໃນການປັບປຸງຂໍ້ບົກຜ່ອງຂອງ YUM viz. DNF ເຮັດການບໍລິຫານຈັດການແພັກເກັດໂດຍໃຊ້ RPM, libsolv ແລະຫໍສະ ໝຸດ hawkey. ເຖິງແມ່ນວ່າມັນບໍ່ໄດ້ເຂົ້າມາຕິດຕັ້ງຢູ່ໃນ CentOS ແລະ RHEL 7 ທ່ານກໍ່ສາມາດຍີ້ມ, dnf ແລະໃຊ້ມັນຢູ່ຄຽງຄູ່ກັບທ່ານ.

ທ່ານອາດຈະຢາກອ່ານເພີ່ມເຕີມກ່ຽວກັບ DNF ທີ່ນີ້:

<

  • ເຫດຜົນທີ່ຢູ່ເບື້ອງຫຼັງການປ່ຽນແທນ Yum ກັບ DNF
  • ການປ່ອຍ DNF ທີ່ມີຄວາມ ໝັ້ນ ຄົງລ້າສຸດແມ່ນ 1.0 (ໃນເວລາຂຽນການໂພດ) ເຊິ່ງຖືກປ່ອຍອອກມາໃນວັນທີ 11 ພຶດສະພາ 2015. ມັນ (ແລະ DNF ລຸ້ນກ່ອນທັງ ໝົດ) ສ່ວນຫຼາຍແມ່ນຂຽນເປັນ Python ແລະຖືກປ່ອຍອອກພາຍໃຕ້ໃບອະນຸຍາດ GPL v2.

    DNF ແມ່ນບໍ່ມີຢູ່ໃນບ່ອນເກັບຮັກສາໄວ້ໃນຕອນຕົ້ນຂອງ RHEL/CentOS 7. ເຖິງຢ່າງໃດກໍ່ຕາມເຮືອ Fedora 22 ກັບ DNF ໄດ້ປະຕິບັດຢ່າງເປັນທາງການ.

    ການຕິດຕັ້ງ DNF ໃນລະບົບ RHEL/CentOS, ທ່ານ ຈຳ ເປັນຕ້ອງຕິດຕັ້ງແລະເປີດໃຊ້ຫໍສະຫມຸດ epel-release ກ່ອນ.

    # yum install epel-release
    OR
    # yum install epel-release -y
    

    ເຖິງແມ່ນວ່າມັນບໍ່ມີຈັນຍາບັນທີ່ຈະໃຊ້ '-y' ກັບ yum ຍ້ອນວ່າມັນຖືກແນະ ນຳ ໃຫ້ເຫັນສິ່ງທີ່ ກຳ ລັງຕິດຕັ້ງຢູ່ໃນລະບົບຂອງທ່ານ. ເຖິງຢ່າງໃດກໍ່ຕາມຖ້າສິ່ງນີ້ບໍ່ ສຳ ຄັນທ່ານຈະໃຊ້ '-y' ກັບ yum ເພື່ອຕິດຕັ້ງທຸກຢ່າງໂດຍອັດຕະໂນມັດໂດຍບໍ່ມີການແຊກແຊງຂອງຜູ້ໃຊ້.

    ຕໍ່ໄປ, ຕິດຕັ້ງຊຸດ DNF ໂດຍໃຊ້ ຄຳ ສັ່ງ yum ຈາກບ່ອນເກັບມ້ຽນ epel-release repository.

    # yum install dnf
    

    ຫຼັງຈາກທີ່ຕິດຕັ້ງ dnf ສຳ ເລັດແລ້ວ, ມັນຮອດເວລາທີ່ຈະສະແດງໃຫ້ທ່ານເຫັນ 27 ການ ນຳ ໃຊ້ ຄຳ ສັ່ງ dnf ທີ່ເປັນປະໂຫຍດກັບຕົວຢ່າງທີ່ຈະຊ່ວຍທ່ານໃນການຈັດການແພກເກດຕ່າງໆໃນການແຈກຢາຍທີ່ອີງໃສ່ RPM ໄດ້ງ່າຍແລະມີປະສິດຕິພາບ.

    ກວດເບິ່ງເວີຊັນຂອງ DNF ທີ່ຕິດຕັ້ງໄວ້ໃນລະບົບຂອງທ່ານ.

    # dnf --version
    

    ຕົວເລືອກ 'repolist' ທີ່ມີຄໍາສັ່ງ dnf, ຈະສະແດງຫໍສະມຸດທີ່ເປີດໃຊ້ງານທັງ ໝົດ ພາຍໃຕ້ລະບົບຂອງທ່ານ.

    # dnf repolist
    

    ຕົວເລືອກ 'repolist all' ຈະພິມທຸກຫ້ອງທີ່ເປີດ/ປິດໃຊ້ງານຢູ່ພາຍໃຕ້ລະບົບຂອງທ່ານ.

    # dnf repolist all
    

    ຄຳ ສັ່ງ“ dnf list” ຈະບອກທຸກຊຸດທີ່ມີຢູ່ໃນຫໍສະມຸດທັງ ໝົດ ແລະແພັກເກດທີ່ຕິດຕັ້ງໄວ້ໃນລະບົບ Linux ຂອງທ່ານ.

    # dnf list
    

    ໃນຂະນະທີ່ ຄຳ ສັ່ງ“ dnf list” ສະແດງທຸກຊຸດທີ່ມີ/ຕິດຕັ້ງຈາກຫໍສະມຸດທັງ ໝົດ. ເຖິງຢ່າງໃດກໍ່ຕາມ, ທ່ານມີທາງເລືອກທີ່ຈະບອກພຽງແຕ່ຊຸດທີ່ຕິດຕັ້ງໂດຍໃຊ້ຕົວເລືອກ“ ບັນຊີຕິດຕັ້ງ” ຕາມທີ່ສະແດງຢູ່ຂ້າງລຸ່ມ.

    # dnf list installed
    

    ເຊັ່ນດຽວກັນ, "ລາຍຊື່ທີ່ມີຢູ່" ທາງເລືອກ, ຈະລາຍຊື່ທຸກໆຊຸດທີ່ມີຢູ່ເພື່ອຕິດຕັ້ງຈາກຫໍສະມຸດທີ່ເປີດໃຊ້ງານທັງ ໝົດ.

    # dnf list available
    

    ຖ້າບໍ່ພໍໃຈ, ທ່ານບໍ່ມີຄວາມຄິດຫຍັງກ່ຽວກັບຊຸດທີ່ທ່ານຕ້ອງການຕິດຕັ້ງ, ໃນສະຖານະການດັ່ງກ່າວທ່ານອາດຈະໃຊ້ຕົວເລືອກ 'ຄົ້ນຫາ' ດ້ວຍ ຄຳ ສັ່ງ dnf ເພື່ອຄົ້ນຫາຊຸດທີ່ກົງກັບ ຄຳ ສັບຫລືຊ່ອຍແນ່ (ເວົ້າ nano).

    # dnf search nano
    

    ຕົວເລືອກ dnf "ໃຫ້" ຊອກຫາຊື່ຂອງຊຸດທີ່ໃຫ້ເອກະສານ/ຊຸດຍ່ອຍສະເພາະ. ຕົວຢ່າງ: ຖ້າທ່ານຕ້ອງການຊອກຫາສິ່ງທີ່ໃຫ້// bin/bash 'ໃນລະບົບຂອງທ່ານ?

    # dnf provides /bin/bash
    

    ສົມມຸດວ່າທ່ານຕ້ອງການຮູ້ຂໍ້ມູນຂອງຊຸດກ່ອນຕິດຕັ້ງໃສ່ລະບົບ, ທ່ານອາດຈະໃຊ້ປຸ່ມ "ຂໍ້ມູນ" ເພື່ອໃຫ້ໄດ້ຂໍ້ມູນລາຍລະອຽດກ່ຽວກັບຊຸດ (ບອກວ່າ nano) ດັ່ງລຸ່ມນີ້.

    # dnf info nano
    

    ການຕິດຕັ້ງຊຸດທີ່ເອີ້ນວ່າ nano, ພຽງແຕ່ ດຳ ເນີນການ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້ມັນຈະແກ້ໄຂໂດຍອັດຕະໂນມັດແລະຕິດຕັ້ງການເພິ່ງພາອາໃສທີ່ ຈຳ ເປັນ ສຳ ລັບ nano package.

    # dnf install nano
    

    ທ່ານອາດຈະປັບປຸງພຽງແຕ່ຊຸດສະເພາະ (ເວົ້າວ່າ systemd) ແລະປ່ອຍໃຫ້ທຸກສິ່ງທຸກຢ່າງຢູ່ໃນລະບົບ.

    # dnf update systemd
    

    ກວດເບິ່ງການປັບປຸງ ສຳ ລັບທຸກແພັກເກດຂອງລະບົບທີ່ຕິດຕັ້ງໄວ້ໃນລະບົບແບບງ່າຍດາຍ.

    # dnf check-update
    

    ທ່ານອາດຈະປັບປຸງລະບົບທັງ ໝົດ ລວມທັງຊຸດທີ່ຕິດຕັ້ງທັງ ໝົດ ພ້ອມດ້ວຍ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    # dnf update
    OR
    # dnf upgrade
    

    ເພື່ອເອົາຫລືລົບລ້າງຊຸດທີ່ບໍ່ຕ້ອງການ (ເວົ້າວ່າ nano), ທ່ານອາດຈະໃຊ້ປຸ່ມ“ ລຶບ” ຫຼື“ ລຶບ” ພ້ອມດ້ວຍ ຄຳ ສັ່ງ dnf ເພື່ອເອົາມັນອອກ.

    # dnf remove nano
    OR
    # dnf erase nano
    

    ແພກເກດເຫລົ່ານັ້ນທີ່ຖືກຕິດຕັ້ງເພື່ອຕອບສະ ໜອງ ຄວາມເພິ່ງພໍໃຈອາດຈະບໍ່ມີປະໂຫຍດຖ້າບໍ່ຖືກ ນຳ ໃຊ້ໂດຍແອັບພລິເຄຊັນອື່ນໆ. ເພື່ອເອົາຊຸດເດັກ ກຳ ພ້າເຫລົ່ານັ້ນປະຕິບັດ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    # dnf autoremove
    

    ເວລາຫຼາຍທີ່ພວກເຮົາພົບກັບຫົວຂໍ້ທີ່ລ້າສະ ໄໝ ແລະການເຮັດທຸລະ ກຳ ທີ່ຍັງບໍ່ແລ້ວເຊິ່ງ ນຳ ໄປສູ່ຄວາມຜິດພາດໃນຂະນະທີ່ ດຳ ເນີນການ dnf ພວກເຮົາອາດ ທຳ ຄວາມສະອາດທຸກຊຸດແລະແທັບຫົວທີ່ບັນຈຸຂໍ້ມູນແພັກເກດຈາກໄລຍະໄກໂດຍການປະຕິບັດ.

    # dnf clean all
    

    ທ່ານອາດຈະໄດ້ຮັບຄວາມຊ່ວຍເຫຼືອຈາກ ຄຳ ສັ່ງ dnf ສະເພາະໃດ ໜຶ່ງ (ເວົ້າວ່າສະອາດ) ພຽງແຕ່ປະຕິບັດ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້.

    # dnf help clean
    

    ເພື່ອບອກຄວາມຊ່ວຍເຫຼືອກ່ຽວກັບ ຄຳ ສັ່ງ dnf ທີ່ມີຢູ່ທັງ ໝົດ ແລະຕົວເລືອກປະເພດງ່າຍໆ.

    # dnf help
    

    ທ່ານອາດຈະເອີ້ນປະຫວັດສາດ dnf ເພື່ອເບິ່ງລາຍຊື່ຂອງ ຄຳ ສັ່ງ dnf ທີ່ຖືກປະຕິບັດແລ້ວ. ວິທີນີ້ທ່ານສາມາດຮູ້ກ່ຽວກັບສິ່ງທີ່ຕິດຕັ້ງ/ເອົາອອກດ້ວຍບັດທີ່ໃຊ້ເວລາ.

    # dnf history
    

    ຄຳ ສັ່ງ“ dnf grouplist” ຈະພິມທຸກຊຸດທີ່ມີຫຼືຕິດຕັ້ງໄວ້, ຖ້າບໍ່ມີຫຍັງຖືກກ່າວເຖິງ, ມັນຈະລົງລາຍຊື່ທຸກໆກຸ່ມທີ່ຮູ້ຈັກ.

    # dnf grouplist
    

    ການຕິດຕັ້ງກຸ່ມການຫຸ້ມຫໍ່ທີ່ຖືກມັດເຂົ້າກັນເປັນຊຸດກຸ່ມ (ເວົ້າວ່າ Software Software) ງ່າຍດາຍເຊັ່ນດຽວກັນ.

    # dnf groupinstall 'Educational Software'
    

    ໃຫ້ປັບປຸງຊຸດຂອງກຸ່ມ (ເວົ້າວ່າຊອບແວການສຶກສາ) ໂດຍປະຕິບັດ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້.

    # dnf groupupdate 'Educational Software'
    

    ພວກເຮົາສາມາດເອົາກຸ່ມອອກເປັນກຸ່ມ (ເວົ້າວ່າຊອບແວການສຶກສາ) ຄື.

    # dnf groupremove 'Educational Software'
    

    DNF ເຮັດໃຫ້ສາມາດຕິດຕັ້ງຊຸດສະເພາະ (ເວົ້າ phpmyadmin) ຈາກ repo (epel), ເຊັ່ນດຽວກັບ,

    # dnf --enablerepo=epel install phpmyadmin
    

    ຄຳ ສັ່ງ“ dnf distro-sync” ຈະສະ ໜອງ ທາງເລືອກທີ່ ຈຳ ເປັນເພື່ອປະກອບຊຸດທີ່ຕິດຕັ້ງທັງ ໝົດ ໄປສູ່ສະບັບທີ່ມີສະຖຽນລະພາບ ໃໝ່ ຫຼ້າສຸດທີ່ສາມາດໃຊ້ໄດ້ຈາກຫໍໄຕທີ່ເປີດໃຊ້ງານ. ຖ້າບໍ່ມີການຄັດເລືອກຊຸດໃດໆ, ແພັກເກດທີ່ຕິດຕັ້ງທັງ ໝົດ ຈະຖືກປັບແຕ່ງ.

    # dnf distro-sync
    

    ຄຳ ສັ່ງ“ dnf reinstall nano” ຈະຕິດຕັ້ງຊຸດທີ່ຕິດຕັ້ງແລ້ວ (ເວົ້າວ່າ nano).

    # dnf reinstall nano
    

    ຕົວເລືອກ“ downgrade” ຈະຫຼຸດລົງຊື່ທີ່ມີຊື່ (ເວົ້າວ່າ acpid) ລົງໃນລຸ້ນຕ່ ຳ ຖ້າເປັນໄປໄດ້.

    # dnf downgrade acpid
    
    Using metadata from Wed May 20 12:44:59 2015
    No match for available package: acpid-2.0.19-5.el7.x86_64
    Error: Nothing to do.
    

    ການສັງເກດການຂອງຂ້ອຍ: DNF ບໍ່ໄດ້ລຸດລາຄາຊຸດດັ່ງທີ່ສົມມຸດຕິຖານ. ມັນຍັງໄດ້ຖືກລາຍງານວ່າເປັນຂໍ້ບົກພ່ອງ.

    ສະຫຼຸບ

    DNF ແມ່ນລັດເທິງສຸດທ້າຍຂອງສິລະປະການຈັດການ Package YUM. ມັນມັກຈະເຮັດການປຸງແຕ່ງຫຼາຍຢ່າງໂດຍອັດຕະໂນມັດເຊິ່ງຈະບໍ່ໄດ້ຮັບການຍ້ອງຍໍຈາກຜູ້ບໍລິຫານລະບົບ Linux ທີ່ມີປະສົບການຫຼາຍ, ດັ່ງທີ່ຂ້ອຍເຊື່ອ. ຕາມຕົວຢ່າງ:

    <

  • - ລະຫັດແຍກ - ລະຫັດ ບໍ່ໄດ້ຖືກຮັບຮູ້ໂດຍ DNF ແລະບໍ່ມີທາງເລືອກ.
  • ບໍ່ມີຫຍັງຄ້າຍຄື ຄຳ ສັ່ງ“ ແກ້ໄຂບັນຫາ” ເຖິງຢ່າງໃດກໍ່ຕາມທ່ານອາດຈະ ດຳ ເນີນການ dnf ທີ່ໃຫ້.
  • ບໍ່ມີ ຄຳ ສັ່ງທີ່ເຮັດໃຫ້ເສີຍຫາຍໃນການຊອກຫາການເພິ່ງພາອາໄສແພັກເກັດ.
  • ທ່ານຍົກເວັ້ນ repo, ໝາຍ ຄວາມວ່າການຍົກເວັ້ນແມ່ນໃຊ້ໃນການປະຕິບັດງານທັງ ໝົດ, ບໍ່ຄືກັນກັບ yum ເຊິ່ງບໍ່ລວມເອົາ repos ເຫຼົ່ານັ້ນພຽງແຕ່ໃນເວລາທີ່ຕິດຕັ້ງແລະປັບປຸງ, ແລະອື່ນໆ.
  • ຜູ້ໃຊ້ Linux ຈຳ ນວນ ໜຶ່ງ ບໍ່ພໍໃຈໃນວິທີທີ່ລະບົບນິເວດ Linux ກຳ ລັງເຄື່ອນຍ້າຍ. First Systemd ລົບລ້າງລະບົບ init v ແລະຕອນນີ້ DNF ຈະປ່ຽນແທນ YUM ໄວກວ່ານີ້ໃນ Fedora 22 ແລະຕໍ່ມາໃນ RHEL ແລະ CentOS.

    ທ່ານຄິດແນວໃດ? ແມ່ນການແຈກຢາຍແລະລະບົບນິເວດລະບົບ Linux ທັງ ໝົດ ບໍ່ໄດ້ໃຫ້ຄຸນຄ່າແກ່ຜູ້ຊົມໃຊ້ແລະກ້າວໄປສູ່ຄວາມປະສົງຂອງພວກເຂົາ. ນອກຈາກນີ້ມັນມັກຈະຖືກເວົ້າໃນອຸດສາຫະ ກຳ ໄອທີ -“ ເປັນຫຍັງແກ້ໄຂ, ຖ້າບໍ່ແຕກ?”, ແລະທັງລະບົບ System V ບໍ່ແຕກຫລືບໍ່.

    ດຽວນີ້ ໝົດ ແລ້ວ. ກະລຸນາແຈ້ງໃຫ້ຂ້ອຍຮູ້ຄວາມຄິດທີ່ມີຄ່າຂອງເຈົ້າໃນ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້. ມັກແລະແບ່ງປັນພວກເຮົາແລະຊ່ວຍພວກເຮົາໃຫ້ເຜີຍແຜ່.