ວິທີການຕິດຕັ້ງແລະໃຊ້ yum-utils ເພື່ອຮັກສາ Yum ແລະເພີ່ມປະສິດທິພາບຂອງມັນ


ໂດຍບໍ່ສົນເລື່ອງກັບ Fedora ເລີ່ມຕົ້ນຮັບຮອງເອົາຜູ້ຈັດການຊຸດ yum ເພື່ອໃຫ້ດີໃນການແຈກຢາຍ spinoff ອື່ນໆ (ເຊັ່ນ Red Hat Enterprise Linux (RHEL) ແລະ CentOS) ຈົນກວ່າມັນໄດ້ພິສູດໃຫ້ເຫັນວ່າມີຄວາມ ໜ້າ ເຊື່ອຖືຄືກັບ yum ແລະແຂງກວ່າເກົ່າ (ອີງຕາມ Fedora Project wiki, ຂອງເດືອນພະຈິກ 15, 2015, dnf ແມ່ນຍັງຢູ່ໃນສະພາບການທົດສອບ). ດັ່ງນັ້ນ, ທັກສະການຄຸ້ມຄອງ yum ຂອງທ່ານຈະຮັບໃຊ້ທ່ານໄດ້ດີພໍສົມຄວນໃນບາງເວລາ.

ດ້ວຍເຫດຜົນດັ່ງກ່າວ, ໃນຄູ່ມືນີ້ພວກເຮົາຈະແນະ ນຳ ທ່ານກ່ຽວກັບ yum-utils, ການລວບລວມສິ່ງ ອຳ ນວຍຄວາມສະດວກຕ່າງໆທີ່ປະສົມປະສານກັບ yum ເພື່ອຂະຫຍາຍລັກສະນະພື້ນເມືອງຂອງມັນໃນຫລາຍໆວິທີ, ດັ່ງນັ້ນຈຶ່ງເຮັດໃຫ້ມັນມີປະສິດທິພາບສູງແລະງ່າຍຕໍ່ການໃຊ້.

ການຕິດຕັ້ງອຸປະກອນ yum-ut ໃນ RHEL/CentOS

ເຄື່ອງໃຊ້ Yum-ut ລວມຢູ່ໃນ repo ພື້ນຖານ (ເຊິ່ງສາມາດເປີດໃຊ້ໄດ້ໂດຍຄ່າເລີ່ມຕົ້ນ) ດັ່ງນັ້ນການຕິດຕັ້ງມັນໃນການແຈກຈ່າຍທີ່ອີງໃສ່ Fedora ແມ່ນງ່າຍຄືກັບການເຮັດ:

# yum update && yum install yum-utils

ທຸກໆອຸປະກອນທີ່ສະ ໜອງ ໂດຍ yum-utils ຖືກຕິດຕັ້ງໂດຍອັດຕະໂນມັດດ້ວຍຊຸດຕົ້ນຕໍ, ເຊິ່ງພວກເຮົາຈະອະທິບາຍໃນພາກຕໍ່ໄປ.

ສຳ ຫຼວດສິ່ງ ອຳ ນວຍຄວາມສະດວກທີ່ສະ ໜອງ ໃຫ້ໂດຍຊຸດ yum-utils

ເຄື່ອງມືທີ່ສະ ໜອງ ໂດຍອຸປະກອນ ຍຳ ຍຳ ແມ່ນໄດ້ລະບຸຢູ່ໃນ ໜ້າ ຜູ້ຊາຍ:

# man yum-utils

ນີ້ແມ່ນ 10 ອັນດັບຂອງສິ່ງ ອຳ ນວຍຄວາມສະດວກທີ່ພວກເຮົາຄິດວ່າທ່ານຈະສົນໃຈ:

debuginfo-install ຕິດຕັ້ງແພັກເກັດ debuginfo (ແລະຄວາມເພິ່ງພາອາໄສຂອງພວກມັນ) ທີ່ຕ້ອງການເພື່ອແກ້ໄຂ <ຊື່ແພັກເກດ> ໃນກໍລະນີເກີດອຸປະຕິເຫດຫຼືໃນຂະນະທີ່ ກຳ ລັງພັດທະນາໂປແກຼມທີ່ໃຊ້ແພັກເກັດທີ່ແນ່ນອນ.

ເພື່ອຈະສາມາດແກ້ໄຂແພັກເກັດ (ຫລືໃຊ້ງານອື່ນໆ), ພວກເຮົາຍັງຈະຕ້ອງຕິດຕັ້ງ gdb (GNU debugger) ແລະໃຊ້ມັນເພື່ອເລີ່ມຕົ້ນໂປແກຼມໃນຮູບແບບ debugging.

ຍົກຕົວຢ່າງ:

# gdb $(which postfix)

ຄຳ ສັ່ງຂ້າງເທິງນີ້ຈະເລີ່ມແກະ gdb ເຊິ່ງພວກເຮົາສາມາດພິມການກະ ທຳ ທີ່ຕ້ອງຖືກ ດຳ ເນີນການ. ຍົກຕົວຢ່າງ, ການ ດຳ ເນີນງານ (ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບຂ້າງລຸ່ມນີ້) ຈະເລີ່ມຕົ້ນໂປແກມ, ໃນຂະນະທີ່ bt (ບໍ່ສະແດງ) ຈະສະແດງຮ່ອງຮອຍ stack (ຍັງເອີ້ນວ່າ backtrace) ຂອງໂປແກມ, ເຊິ່ງຈະສະ ໜອງ ລາຍຊື່ຂອງການໂທທີ່ເຮັດໃຫ້ ຈຸດທີ່ແນ່ນອນໃນການປະຕິບັດງານຂອງໂປແກຼມ (ການ ນຳ ໃຊ້ຂໍ້ມູນນີ້, ທັງນັກພັດທະນາແລະຜູ້ບໍລິຫານລະບົບສາມາດເຂົ້າໃຈວ່າມີຫຍັງຜິດພາດໃນກໍລະນີເກີດອຸປະຕິເຫດ).

ການກະ ທຳ ອື່ນໆທີ່ມີຢູ່ແລະຜົນໄດ້ຮັບທີ່ຄາດວ່າຈະຖືກລະບຸໄວ້ໃນ man gdb.

ຄຳ ສັ່ງຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນວ່າບ່ອນເກັບມ້ຽນທີ່ບັນຈຸຊຸດທີ່ຕິດຕັ້ງຢູ່ <ຊຸດ 1> <ຊຸດ 2> <ຊຸດ n> ໄດ້ຕິດຕັ້ງຈາກ:

# find-repos-of-install httpd postfix dovecot

ຖ້າແລ່ນໂດຍບໍ່ມີການໂຕ້ຖຽງ, find-repos-of-install ຈະສົ່ງຄືນລາຍຊື່ທັງ ໝົດ ຂອງແພັກເກດທີ່ຕິດຕັ້ງໃນປະຈຸບັນ.

package-cleanup ຄຸ້ມຄອງການ ທຳ ຄວາມສະອາດຊຸດ, ຊໍ້າຊ້ອນ, ຫຼືຊຸດເດັກ ກຳ ພ້າ (ໂປຣແກຣມທີ່ຕິດຕັ້ງຈາກແຫລ່ງອື່ນທີ່ບໍ່ແມ່ນບ່ອນເກັບມ້ຽນທີ່ ກຳ ນົດໄວ້ໃນປະຈຸບັນ) ແລະຄວາມບໍ່ສອດຄ່ອງກັບຄວາມເພິ່ງພາອາໄສອື່ນໆ, ລວມທັງການ ນຳ ເອົາແກ່ນເກົ່າອອກມາຕາມທີ່ສະແດງໃນຕົວຢ່າງຕໍ່ໄປນີ້:

# package-cleanup --orphans
# package-cleanup --oldkernels

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

repo-graph ສົ່ງຄືນລາຍຊື່ເພິ່ງພາອາໃສຊຸດເຕັມໃນຮູບແບບ dot ສຳ ລັບທຸກໆແພັກເກດທີ່ມີຢູ່ໃນຫໍສະມຸດສະຖານທີ່ ກຳ ນົດ. ອີກທາງເລືອກ, repo-graph ສາມາດສົ່ງຄືນຂໍ້ມູນດຽວກັນໂດຍຫໍໄຕຖ້າໃຊ້ກັບຕົວເລືອກ --repoid= .

ຍົກຕົວຢ່າງ, ໃຫ້ເບິ່ງຄວາມເພິ່ງພາອາໄສ ສຳ ລັບແຕ່ລະແພັກເກດໃນຫໍສະມຸດທີ່ປັບປຸງ:

# repo-graph --repoid=updates | less

ໃນ ຄຳ ສັ່ງຂ້າງເທິງນີ້ພວກເຮົາ ກຳ ລັງສົ່ງຜົນຜະລິດຂອງ repo-graph ໃຫ້ນ້ອຍລົງເພື່ອເບິ່ງເຫັນງ່າຍຂຶ້ນ, ແຕ່ທ່ານສາມາດປ່ຽນເສັ້ນທາງນີ້ໄປຫາແຟ້ມທ້ອງຖິ່ນເພື່ອກວດກາຕໍ່ມາ:

# repo-graph --repoid=updates > updates-dependencies.txt

ບໍ່ວ່າໃນກໍລະນີໃດກໍ່ຕາມ, ພວກເຮົາສາມາດເຫັນໄດ້ວ່າຊຸດ iputils ແມ່ນຂື້ນກັບລະບົບ systemd ແລະ opensl-libs.

repoclosure ອ່ານຂໍ້ມູນ metadata ຂອງຫໍໄຕທີ່ມີການຕັ້ງຄ່າ, ກວດສອບຄວາມເພິ່ງພາອາໄສຂອງແພັກເກດລວມຢູ່ໃນພວກມັນແລະສະແດງລາຍຊື່ຄວາມເພິ່ງພາອາໃສທີ່ບໍ່ໄດ້ຮັບການແກ້ໄຂ ສຳ ລັບແຕ່ລະຊຸດ:

# repoclosure

repomanage ສອບຖາມລາຍຊື່ໄດເລກະທໍລີທີ່ມີແພັກເກດ rpm ແລະສົ່ງຄືນບັນຊີຂອງຊຸດເກົ່າຫລືເກົ່າແກ່ທີ່ສຸດໃນໄດເລກະທໍລີ. ເຄື່ອງມືນີ້ສາມາດໃຊ້ໄດ້ງ່າຍຖ້າທ່ານມີໄດເລກະທໍລີບ່ອນທີ່ທ່ານເກັບ .rpm ຫຼາຍໆໂປຣແກຣມທີ່ແຕກຕ່າງກັນ.

ໃນເວລາທີ່ຖືກປະຕິບັດໂດຍບໍ່ມີການໂຕ້ຖຽງ, repomanage ສົ່ງຄືນຊຸດໃຫມ່. ຖ້າແລ່ນກັບທຸງ - ທີ່ຢູ່ ມັນຈະສົ່ງຄືນຊຸດເກົ່າແກ່ທີ່ສຸດ:

# ls -l
# cd rpms
# ls -l rpms
# repomanage rpms

ກະລຸນາຮັບຊາບວ່າການປ່ຽນຊື່ຂອງແພັກເກັດ rpm ຈະບໍ່ມີຜົນຕໍ່ການປ່ຽນແປງຂອງການໃຊ້ງານຂອງຄົນລາວ.

repoquery queries yum repositories ແລະໄດ້ຮັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການຫຸ້ມຫໍ່, ບໍ່ວ່າຈະຖືກຕິດຕັ້ງຫຼືບໍ່ (ເອື່ອຍອີງ, ເອກະສານລວມຢູ່ໃນຊຸດແລະອື່ນໆ).

ຕົວຢ່າງ, htop (Linux Process Monitoring) ບໍ່ໄດ້ຖືກຕິດຕັ້ງຢູ່ໃນລະບົບນີ້, ດັ່ງທີ່ທ່ານສາມາດເຫັນຂ້າງລຸ່ມນີ້:

# which htop
# rpm -qa | grep htop

ຕອນນີ້ສົມມຸດວ່າພວກເຮົາຕ້ອງການລາຍຊື່ຄວາມເພິ່ງພາອາໃສຂອງ htop, ພ້ອມກັບເອກະສານທີ່ປະກອບເຂົ້າໃນການຕິດຕັ້ງແບບເລີ່ມຕົ້ນ. ເພື່ອເຮັດແນວນັ້ນ, ໃຫ້ປະຕິບັດສອງ ຄຳ ສັ່ງຕໍ່ໄປນີ້, ຕາມ ລຳ ດັບ:

# repoquery --requires htop
# repoquery --list htop

yum-debug-dump ຊ່ວຍໃຫ້ທ່ານສາມາດຖີ້ມບັນຊີຂອງທຸກໆຊຸດທີ່ທ່ານໄດ້ຕິດຕັ້ງໄວ້, ທຸກໆຊຸດທີ່ມີຢູ່ໃນຫໍສະມຸດແຫ່ງໃດກໍ່ຕາມ, ການຕັ້ງຄ່າທີ່ ສຳ ຄັນແລະຂໍ້ມູນຂອງລະບົບລົງໃນແຟ້ມ zipped.

ສິ່ງນີ້ສາມາດໃຊ້ໄດ້ໃນກໍລະນີທີ່ທ່ານຕ້ອງການແກ້ໄຂບັນຫາທີ່ເກີດຂື້ນ. ເພື່ອຄວາມສະດວກສະບາຍຂອງພວກເຮົາ, yum-debug-dump ຊື່ໄຟລ໌ດັ່ງກ່າວເປັນ yum_debug_dump- - <ເວລາ> .txt.gz, ເຊິ່ງຊ່ວຍໃຫ້ພວກເຮົາຕິດຕາມການປ່ຽນແປງໃນແຕ່ລະໄລຍະ.

# yum-debug-dump

ເຊັ່ນດຽວກັນກັບເອກະສານຂໍ້ຄວາມທີ່ບີບອັດ, ພວກເຮົາສາມາດເບິ່ງເນື້ອໃນຂອງມັນໂດຍໃຊ້ ຄຳ ສັ່ງທີ່ບໍ່ມີຕົວຕົນ:

# zless yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

ທ່ານຄວນ ຈຳ ເປັນຕ້ອງຟື້ນຟູຂໍ້ມູນການຕັ້ງຄ່າທີ່ສະ ໜອງ ໂດຍ yum-debug-dump, ທ່ານສາມາດໃຊ້ yum-debug-restore ເພື່ອເຮັດເຊັ່ນນັ້ນ:

# yum-debug-restore yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

yumdownloader ດາວໂຫລດໄຟລ໌ RPM ຈາກບ່ອນເກັບມ້ຽນ, ລວມທັງການເພິ່ງພາອາໄສຂອງພວກມັນ. ມີປະໂຫຍດໃນການສ້າງຫໍເຄືອຂ່າຍທີ່ສາມາດເຂົ້າເຖິງໄດ້ຈາກເຄື່ອງອື່ນທີ່ມີການເຂົ້າເຖິງອິນເຕີເນັດ.

Yumdownloader ອະນຸຍາດໃຫ້ທ່ານບໍ່ພຽງແຕ່ດາວໂຫລດຖານຂໍ້ມູນ RPMs ເທົ່ານັ້ນແຕ່ຍັງເປັນແຫຼ່ງທີ່ມາ (ຖ້າໃຊ້ກັບຕົວເລືອກ - ແຫຼ່ງຂໍ້ມູນ ).

ຍົກຕົວຢ່າງ, ໃຫ້ສ້າງລະບົບທີ່ມີຊື່ວ່າ htop-files ເຊິ່ງພວກເຮົາຈະເກັບ RPM (s) ທີ່ ຈຳ ເປັນໃນການຕິດຕັ້ງໂປແກມໂດຍໃຊ້ rpm. ເພື່ອເຮັດແນວນັ້ນ, ພວກເຮົາ ຈຳ ເປັນຕ້ອງໃຊ້ປຸ່ມ - ແກ້ໄຂ ພ້ອມກັບ yumdownloader:

# mkdir htop-files
# cd htop-files
# yumdownloader --resolve htop
# rpm -Uvh 

reposync ແມ່ນກ່ຽວຂ້ອງຢ່າງໃກ້ຊິດກັບ yumdownloader (ໃນຄວາມເປັນຈິງ, ພວກເຂົາສະຫນັບສະຫນູນທາງເລືອກເກືອບດຽວກັນ) ແຕ່ສະເຫນີຂໍ້ໄດ້ປຽບຫຼາຍ. ແທນທີ່ຈະດາວໂລດໄຟລ໌ RPM ຖານຂໍ້ມູນຫລືແຫຼ່ງຂໍ້ມູນ, ມັນຈະປະສົມປະສານຫໍເກັບຂໍ້ມູນຫ່າງໄກສອກຫຼີກໃຫ້ກັບໄດເລກະທໍລີທ້ອງຖິ່ນ.

ໃຫ້ຊິ້ງຂໍ້ມູນຂອງຫໍສະມຸດ EPEL ທີ່ມີຊື່ສຽງໄປຫາແຟ້ມເອກະສານຍ່ອຍທີ່ເອີ້ນວ່າ epel-local ຢູ່ໃນບ່ອນເຮັດວຽກ:

# man reposync
# mkdir epel-local
# reposync --repoid=epel --download_path=epel-local

ໃຫ້ສັງເກດວ່າຂະບວນການນີ້ຈະໃຊ້ເວລາໃນຂະນະທີ່ ກຳ ລັງດາວໂຫລດ 8867 ແພັກເກດ:

ເມື່ອການປະສົມປະສານ ສຳ ເລັດແລ້ວ, ໃຫ້ກວດເບິ່ງ ຈຳ ນວນພື້ນທີ່ດິດທີ່ໃຊ້ໂດຍບ່ອນແລກປ່ຽນຂອງ EPEL ທີ່ສ້າງຂື້ນ ໃໝ່ ຂອງພວກເຮົາໂດຍໃຊ້ ຄຳ ສັ່ງ du:

# du -sch epel-local/*

ດຽວນີ້ມັນຂຶ້ນກັບທ່ານຖ້າທ່ານຕ້ອງການຮັກສາກະຈົກ EPEL ນີ້ຫຼືໃຊ້ມັນເພື່ອຕິດຕັ້ງແພັກເກັດແທນທີ່ຈະໃຊ້ແວ່ນຫ່າງໄກ. ໃນກໍລະນີ ທຳ ອິດ, ກະລຸນາຈື່ໄວ້ວ່າທ່ານ ຈຳ ເປັນຕ້ອງດັດແປງ /etc/yum.repos.d/epel.repo ຕາມນັ້ນ.

yum-complete-transaction ແມ່ນສ່ວນ ໜຶ່ງ ຂອງໂປຣແກຣມ yum-utils ເຊິ່ງຈັບການເຮັດທຸລະ ກຳ yum ທີ່ຍັງບໍ່ ສຳ ເລັດຫຼືລົບລ້າງໃນລະບົບແລະພະຍາຍາມເຮັດ ສຳ ເລັດ.

ຕົວຢ່າງ: ເມື່ອພວກເຮົາປັບປຸງເຄື່ອງແມ່ຂ່າຍ Linux ຜ່ານຜູ້ຈັດການຊຸດ yum ບາງຄັ້ງມັນຖິ້ມຂໍ້ຄວາມເຕືອນເຊິ່ງອ່ານຕໍ່ໄປນີ້:

ມີການເຮັດທຸລະ ກຳ ທີ່ຍັງບໍ່ແລ້ວ. ທ່ານອາດຈະພິຈາລະນາ ດຳ ເນີນການເຮັດທຸລະ ກຳ ຢ່າງສົມບູນເພື່ອໃຫ້ ສຳ ເລັດ.

ເພື່ອແກ້ໄຂຂໍ້ຄວາມເຕືອນແລະການແກ້ໄຂບັນຫາດັ່ງກ່າວ, ຄຳ ສັ່ງການເຮັດທຸລະ ກຳ ທີ່ສົມບູນໄດ້ມາເປັນຮູບພາບເພື່ອ ສຳ ເລັດການເຮັດທຸລະ ກຳ ທີ່ຍັງບໍ່ແລ້ວ, ມັນພົບວ່າການໂອນເງິນທີ່ບໍ່ຄົບຖ້ວນຫລືລົບລ້າງໃນການ ດຳ ເນີນທຸລະ ກຳ - ທັງ ໝົດ * ແລະແຟ້ມການເຮັດທຸລະ ກຳ * ທີ່ສາມາດພົບໄດ້ໃນ/ໄດເລກະທໍລີ var/lib/yum.

ດໍາເນີນການຄໍາສັ່ງການເຮັດທຸລະກໍາທີ່ສົມບູນ, ເພື່ອເຮັດທຸລະກໍາ yum ທີ່ບໍ່ຄົບຖ້ວນ:

# yum-complete-transaction --cleanup-only

ໃນປັດຈຸບັນຄໍາສັ່ງ yum ຈະດໍາເນີນການໂດຍບໍ່ມີການເຕືອນກ່ຽວກັບການເຮັດທຸລະກໍາທີ່ບໍ່ຄົບຖ້ວນ.

# yum update

ໝາຍ ເຫດ: ຄຳ ແນະ ນຳ ນີ້ແມ່ນແນະ ນຳ ໂດຍ ໜຶ່ງ ໃນບັນດາທ່ານຜູ້ອ່ານປະ ຈຳ ຂອງພວກເຮົາທ່ານ Tomas ໃນພາກ ຄຳ ເຫັນທີ່ນີ້.

ບົດສະຫຼຸບ

ໃນບົດຂຽນນີ້ພວກເຮົາໄດ້ກວມເອົາບາງສ່ວນຂອງການ ນຳ ໃຊ້ທີ່ເປັນປະໂຫຍດທີ່ສຸດທີ່ສະ ໜອງ ໃຫ້ຜ່ານອຸປະກອນໂຍຄະ. ສຳ ລັບບັນຊີລາຍຊື່ທີ່ສົມບູນ, ທ່ານສາມາດອ້າງອີງໃສ່ ໜ້າ ຜູ້ຊາຍ ( man yum-utils ).

ນອກຈາກນັ້ນ, ແຕ່ລະເຄື່ອງມືເຫຼົ່ານີ້ມີ ໜ້າ ຜູ້ຊາຍແຍກຕ່າງຫາກ (ເບິ່ງ man reposync, ຍົກຕົວຢ່າງ), ເຊິ່ງແມ່ນແຫຼ່ງເອກະສານຫຼັກທີ່ທ່ານຄວນອ້າງອີງຖ້າທ່ານຕ້ອງການຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບພວກມັນ.

ຖ້າທ່ານໃຊ້ເວລາ ໜຶ່ງ ນາທີເພື່ອກວດເບິ່ງ ໜ້າ man ຂອງ yum-utils, ທ່ານອາດຈະພົບເຄື່ອງມືອື່ນທີ່ທ່ານຢາກໃຫ້ພວກເຮົາເອົາໃຈໃສ່ໃນຄວາມເລິກຫຼາຍກວ່າເກົ່າໃນບົດຄວາມແຍກຕ່າງຫາກ. ຖ້າເປັນດັ່ງນັ້ນ, ຫຼືຖ້າທ່ານມີ ຄຳ ຖາມ, ຄຳ ເຫັນ, ຫຼື ຄຳ ແນະ ນຳ ກ່ຽວກັບບົດຂຽນນີ້, ຮູ້ສຶກບໍ່ເສຍຄ່າທີ່ຈະແຈ້ງໃຫ້ພວກເຮົາຊາບວ່າທ່ານຈະເອົາຈົດ ໝາຍ ສະບັບໃດ ໜຶ່ງ ມາລົງໂດຍໃຊ້ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມ