Linux kernel, kernel modulları, kernelin repozitoriya və mənbə kodundan istifadə edərək yüklənməsi 2-ci hissə
Salam dostlar, bu gün biz linux kernel mövzusunda olan məqaləmizin ikinci hissəsinə baxacağıq. Kernellə bağlı məqalənin birinci hissəsində dediyimiz kimi, ikinci hissə linux kernelin müxtəlif üsullardan istifadə edərək yenilənməsi, manual və avtomatik olaraq silinməsindən ibarət olacaqdır. Elə isə başlayaq. Siz linux kerneli upgrade(update) edərkən kernelin yeni versiyasını yükləmiş olursunuz və susmaya görə yeni yüklənmiş kernel istifadə olunur amma kernelin əvvəkli versiyası hələdə qalır. İstəsəniz manual olaraq sistemdə istifadə olunmayan kerneli silə bilərsiniz və həmçinində bunu avtomatik də edə bilərsiniz. Bu gün biz dediklərimizi Linuxun Red Hat 7 distributivində baxacağıq.
Kerneli 2 üsuldan istifadə edərək yeni versiyaya keçirdə bilərik.
- ElRepo repozitoriyasından istifadə edərək yeniləmək
- Mənbə kodundan istifadə edərək yükləmək
Ümümiyyətlə ağlınızda belə bir sual yaransaki, yumdan və mənbə kodundan istifadə edərək paketi yükləməyin fərqi nədir? Əsas fərq mənbə kodundan istifadə edərkən siz paketin en sonuncu versiyasını yükləyə bilərsiniz, ikinci fərq mənbə kodundan istifadə edərək istədiyiniz modulun olub-olmamasını təyin edə bilərsiz, bir sözlə mənbə kodundan istifadə edərək yükləmək daha yaxşıdır.
Elrepodan istifadə edərək yükləmək
Bunun üçün biz əvvəla sistemin kernel versiyasını öyrənməmiz lazımdır, elreponun GPG açarını yükləmək daha sonra Elrepo repozitoriyasının rpm faylını və ən sonda isə yum əmrindən yararlanaraq kerneli yeniləyəcəyik
# uname –r
# rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
# yum –enablerepo=elrepo-kernel install kernel-ml
Bunları yüklədikdən sonra sistemə reboot əmrini verib yenidən uname –r komandasını yazsaq sistemin ugurla kernelin yeni versiyasına keçdiyini görəcəksiniz.
# systemctl reboot
# uname -r
4.8.0-1.el7.elrepo.x86_64
2. Mənbə kodundan istifadə edərək yükləmək
1. Linux kernelin mənbədən yüklənməsi üçün ilk öncə hazırki sisetmdə olan kernel versiyasını öyrənməliyik və yumdan istifadə edərək dependensiyaları yükləməliyik.
# uname -r // yazaraq sistemin hazırda istifadə etdiyi kernel versiyasına baxırıq
3.10.0-327.36.1.el7.x86_64
# yum install gcc ncurses ncurses-devel wget make
2. Bütün sistemi yeniləməliyik
# yum update
3.Wget komandasından istifadə edərək linux kernelin öz rəsmi repozitoriyasından linux kernelin ən axrıncı və stabil versiyasını /tmp direktoriyasının daxilinə yükləyəcəyik. Bunu linux kernelin öz saytına daxil olub da yükləyə bilərsiniz. Hal hazırki, stabil versiya linux-4.7.6 olduğuna görə, bu versiyanı yükləyəcəyik.
# cd /tmp ; wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.7.6.tar.gz
4. Paket yüklənəndən sonra # ls əmrinin yazib kernel faylının tmp direktoriyası içərisində olduğunu görə bilərsiniz. Paketi arxivdən çıxarıb /usr/src/ direktoriyası içərisinə atmaq və həmin direktoriyaya keçid etmək lazımdır.
# tar -xf linux-4.7.6.tar.xz -C /usr/src/
# cd /usr/src/linux-4.7.6/
5. Yeni kernelin konfiqurasiyası.
İndi biz yeni kerneli konfiqurasiya etmək üşün terminaldan make menuconfig komandasını icra edəcəyik. Bu komandaı yazan kimi dərhal yeni pəncər açılacaq və biz burdan istədiyimi konfiqurasiyanı seçə bilərik əgər bu size tanış deyilsə o zaman iki dəfə ECS klavişini vurubmaqla çıxış edə bilərsiniz.
# make menuconfig
Burada siz quraşdıracağınız yeni kerneldə istədiyiniz xüsüsiyyəti seçə bilərsiniz , hansı ki bü xüsüsiyyət sizin .config faylına yazılacaq və yaxud istəmədiyiniz xüsüsiyyəti deaktiv edə bilərsiniz. Sadəcə üstünə gəlib select vurmaqla seçim edirsiniz. Bu seçimləri etdikdən sonra Exit edib sonra Yes edəndən sonra bütün konfiqurasiya .config faylına yazılacaq. Ətraflı məlumat almaq istəsəniz Helpdən istifadə edə bilərsiniz. Sonra bu direktoriya içərisində #cat .config yazib confiqurasiya etdiyiniz kernel faylının daxilinə baxa bilərsiniz.
Əgər siz sonuncu kerneli köhnə konfiqurasiya ilə konfiqurasiya etmək istəsəniz onda aşağıdakı əmri yazmağınız kifayətdir.
# make oldconfig
6. İcra etmə mərhələsi
Növbəti mərhələdə biz make əmrindən istifadə edərək, kernel 4.7.6 icra edəcəyik. Sizin kerneli konfiqurasiyanızdan asılı olaraq icraetmə mərhələsi ən azı 20-25 dəyqə olacaqdır.Əgər icra etmə mərhələsində kernel “bc command not found” və “ya openssl not found” kimi xətalar ilə qarşılaşsanız, onda siz #yum install bc və #yum install openssl openssl-devel komandalarından istifadə edərək ilə xətanı bərpa edə bilərsiniz.
7. İcra etmə mərhələsi tamamlandıqdan sonra, nəhayət sonuncu mərhələ kerneli bizim sistemimizə yəni linuxa yükləmə mərhələsdir.Aşağıdakı komanda /boot direktoriyası altında fayllar yaradacaqdır və həmçinin yeni kernellə əlaqadar konfiqruasiyaları grub.conf faylına əlavə edəcəkdir.
# make modules_install install
Bununla da yeni kernel yüklənmiş olacaq, bunu doğrulugunu yoxlamaq üçün
# uname –r komandasını yazib baxa bilərsiniz.
Siz zaman keçdikdə hər dəfə kerneli yeniləyəndə sizin /boot direktoriyaız istifadə olunmayan köhnə kernel versiyaları ilə dolmuş olacaq. Bunu # df –h komandasını yazmaqla /boot direktoriyasının nə qədər dolduğunu görmüş olaraq. Bunu həll etmək üçün isə sistemdə olan kernellərə baxmaq və istifadə olunayanları silmək lazımdır.
# yum list kernel.*
Burada diqqət yerilməsi məqam isə hansı kernelin silinməsindən ibarətdir.Köhnədən yeni kernelə doğru ardıcıllıq kernelin versiyalarının rəqəmlərinin artması ilə gedir.Yəni hal-hazırda istifadə olunan kernel versiyası 3.10.0-327.36.1.el7 –dır.
İndi isə burada istifadə olunmayan kerneli manual olaraq silmək istəsəniz , o zaman aşağıdakı komandalardan öz sisteminəzə uygun istifadə etməlisiniz. Mən sistemdə istifadə olunmayan iki kerneli siləcəm.
# yum remove kernel-3.10.0-229.el7
# yum remove kernel-3.10.0-327.18.2.el7
Yenidən # yum list kernel.* əmrini yazsanız, sistemdə olan köhnə kernellərin silindiyini görəcəksiniz.
Bayaqdan biz istifadə olunmayan kernelləri manual olaraq sildik. Məgərsə biz bunu avtomatik olaraqda edə bilərik, misal üçün yeni kernel yükləndikcə könhə kernellərdən yanlız ikisini saxlasın qalan köhnə kernelləri silinsin. Bunu etmək üçün /etc/yum/pluginconf.d/installonlyn.conf faylından dəyişiklik etmək lazımdır.
Əgər yoxdusa #touch /etc/yum/pluginconf.d/installonlyn.conf komandasından istifadə edərək faylı yarada biləsiniz. Və daxilinə aşağıdakıları əlavə etməlisiniz.
Burada enabled=1 avtomatik silinmə funksiyasını aktivləşdirir, tokeep=3 isə sistemdə hal-hazırda işləyən kernel daxil olmaqla, hər dəfə 3 kernel versiyasını saxlayır və qalanlarını siləcək.
Bu qədər dostlar, bu movzuda çalışdımkı Red hat 7’də kernel haqqında,kernel modulların daxil edilməsi, kernel müxtəlif usullardan istifadə edərək yenilənməsi və s kimi məsələlərə baxdıq. Ümid edirem ki, faydalı olacaqdır.
http://linoxide.com/linux-how-to/upgrade-linux-kernel-stable-3-18-4-centos/
https://www.howtoforge.com/community/threads/safely-removing-unneeded-linux-kernels.19788/
https://www.kernel.org/category/releases.html
Gələn görüşlərədək…