CentOS 7-ൽ ലോക്കൽ HTTP Yum റിപ്പോസിറ്ററി എങ്ങനെ സജ്ജീകരിക്കാം


സോഫ്uറ്റ്uവെയർ ശേഖരം (ചുരുക്കത്തിൽ \repo) സോഫ്റ്റ്uവെയർ പാക്കേജുകൾ സൂക്ഷിക്കുന്നതിനും പരിപാലിക്കുന്നതിനുമുള്ള ഒരു സെൻട്രൽ ഫയൽ സ്റ്റോറേജ് ലൊക്കേഷനാണ്, അതിൽ നിന്ന് ഉപയോക്താക്കൾക്ക് പാക്കേജുകൾ വീണ്ടെടുക്കാനും കമ്പ്യൂട്ടറുകളിൽ ഇൻസ്റ്റാൾ ചെയ്യാനും കഴിയും.

റിപ്പോസിറ്ററികൾ പലപ്പോഴും ഒരു നെറ്റ്uവർക്കിലെ സെർവറുകളിൽ സംഭരിക്കുന്നു, ഉദാഹരണത്തിന് ഇന്റർനെറ്റ്, ഒന്നിലധികം ഉപയോക്താക്കൾക്ക് ആക്uസസ് ചെയ്യാൻ കഴിയും. എന്നിരുന്നാലും, നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ ഒരു ലോക്കൽ റിപ്പോസിറ്ററി സൃഷ്uടിക്കാനും കോൺഫിഗർ ചെയ്യാനും അത് ഒരൊറ്റ ഉപയോക്താവായി ആക്uസസ് ചെയ്യാനും അല്ലെങ്കിൽ നിങ്ങളുടെ LAN-ലെ (ലോക്കൽ ഏരിയ നെറ്റ്uവർക്ക്) മറ്റ് മെഷീനുകളിലേക്ക് ആക്uസസ് അനുവദിക്കാനും കഴിയും.

ഒരു പ്രാദേശിക ശേഖരം സജ്ജീകരിക്കുന്നതിന്റെ ഒരു നേട്ടം, സോഫ്റ്റ്uവെയർ പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ നിങ്ങൾക്ക് ഇന്റർനെറ്റ് കണക്ഷൻ ആവശ്യമില്ല എന്നതാണ്.

Red Hat/CentOS Linux-ൽ സോഫ്റ്റ്uവെയർ ഇൻസ്റ്റാളേഷൻ എളുപ്പമാക്കുന്ന Linux സിസ്റ്റങ്ങളെ അടിസ്ഥാനമാക്കിയുള്ള RPM (RedHat പാക്കേജ് മാനേജർ)-നായി വ്യാപകമായി ഉപയോഗിക്കുന്ന ഒരു പാക്കേജ് മാനേജ്uമെന്റ് ടൂളാണ് YUM (യെല്ലോഡോഗ് അപ്uഡേറ്റർ മോഡിഫൈഡ്).

ഈ ലേഖനത്തിൽ, CentOS 7 VPS-ൽ HTTP (Nginx) വെബ് സെർവറിലൂടെ ഒരു പ്രാദേശിക YUM ശേഖരണം എങ്ങനെ സജ്ജീകരിക്കാമെന്നും ക്ലയന്റ് CentOS 7 മെഷീനുകളിൽ സോഫ്റ്റ്uവെയർ പാക്കേജുകൾ എങ്ങനെ കണ്ടെത്താമെന്നും ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും ഞങ്ങൾ വിശദീകരിക്കും.

Yum HTTP Repository Server:	CentOS 7 [192.168.0.100]
Client Machine:		CentOS 7 [192.168.0.101]

ഘട്ടം 1: Nginx വെബ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുക

1. ഇനിപ്പറയുന്ന രീതിയിൽ YUM പാക്കേജ് മാനേജർ ഉപയോഗിച്ച് EPEL റിപ്പോസിറ്ററിയിൽ നിന്ന് Nginx HTTP സെർവർ ഇൻസ്റ്റാൾ ചെയ്തുകൊണ്ട് ആദ്യം ആരംഭിക്കുക.

# yum install epel-release
# yum install nginx 

2. നിങ്ങൾ Nginx വെബ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്തുകഴിഞ്ഞാൽ, നിങ്ങൾക്കത് ആദ്യമായി ആരംഭിക്കുകയും സിസ്റ്റം ബൂട്ടിൽ യാന്ത്രികമായി ആരംഭിക്കാൻ പ്രാപ്തമാക്കുകയും ചെയ്യാം.

 
# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx

3. അടുത്തതായി, Nginx സേവനത്തിലേക്ക് വെബ് ട്രാഫിക് അനുവദിക്കുന്നതിന് നിങ്ങൾ പോർട്ട് 80, 443 എന്നിവ തുറക്കേണ്ടതുണ്ട്, ചുവടെയുള്ള കമാൻഡുകൾ ഉപയോഗിച്ച് HTTP, HTTPS എന്നിവയിൽ ഇൻബൗണ്ട് പാക്കറ്റുകൾ അനുവദിക്കുന്നതിന് സിസ്റ്റം ഫയർവാൾ നിയമങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക.

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

4. ഇനിപ്പറയുന്ന URL ഉപയോഗിച്ച് നിങ്ങളുടെ Nginx സെർവർ പ്രവർത്തനക്ഷമമാണെന്നും പ്രവർത്തിക്കുന്നുണ്ടെന്നും ഇപ്പോൾ നിങ്ങൾക്ക് സ്ഥിരീകരിക്കാനാകും; നിങ്ങൾ സ്ഥിരസ്ഥിതി Nginx വെബ് പേജ് കാണുകയാണെങ്കിൽ, എല്ലാം ശരിയാണ്.

http://SERVER_DOMAIN_NAME_OR_IP 

ഘട്ടം 2: ഒരു യം ലോക്കൽ റിപ്പോസിറ്ററി സൃഷ്uടിക്കുക

5. ഈ ഘട്ടത്തിൽ, നിങ്ങളുടെ പ്രാദേശിക ശേഖരം സൃഷ്ടിക്കുന്നതിനും ക്രമീകരിക്കുന്നതിനും നിയന്ത്രിക്കുന്നതിനും ആവശ്യമായ പാക്കേജുകൾ നിങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്.

# yum install createrepo  yum-utils

6. അടുത്തതായി, പാക്കേജുകളും അനുബന്ധ വിവരങ്ങളും സംഭരിക്കുന്ന ആവശ്യമായ ഡയറക്ടറികൾ (yum റിപ്പോസിറ്ററികൾ) സൃഷ്ടിക്കുക.

# mkdir -p /var/www/html/repos/{base,centosplus,extras,updates}

7. തുടർന്ന് CentOS YUM റിപ്പോസിറ്ററികൾ കാണിച്ചിരിക്കുന്നത് പോലെ ലോക്കൽ ഡയറക്ടറികളിലേക്ക് സമന്വയിപ്പിക്കാൻ reposync ടൂൾ ഉപയോഗിക്കുക.

# reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/var/www/html/repos/
# reposync -g -l -d -m --repoid=centosplus --newest-only --download-metadata --download_path=/var/www/html/repos/
# reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/var/www/html/repos/
# reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/var/www/html/repos/
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.fibergrid.in
 * epel: mirror.xeonbd.com
 * extras: mirrors.fibergrid.in
 * updates: mirrors.fibergrid.in
base/7/x86_64/group                                                    | 891 kB  00:00:02     
No Presto metadata available for base
(1/9911): 389-ds-base-snmp-1.3.7.5-18.el7.x86_64.rpm                   | 163 kB  00:00:02     
(2/9911): 389-ds-base-devel-1.3.7.5-18.el7.x86_64.rpm                  | 267 kB  00:00:02     
(3/9911): ElectricFence-2.2.2-39.el7.i686.rpm                          |  35 kB  00:00:00     
(4/9911): ElectricFence-2.2.2-39.el7.x86_64.rpm                        |  35 kB  00:00:00     
(5/9911): 389-ds-base-libs-1.3.7.5-18.el7.x86_64.rpm                   | 695 kB  00:00:04     
(6/9911): GConf2-devel-3.2.6-8.el7.i686.rpm                            | 110 kB  00:00:00     
(7/9911): GConf2-devel-3.2.6-8.el7.x86_64.rpm                          | 110 kB  00:00:00     
(8/9911): GConf2-3.2.6-8.el7.i686.rpm                                  | 1.0 MB  00:00:06     

മുകളിലുള്ള കമാൻഡുകളിൽ, ഓപ്ഷൻ:

  • -g – ഡൗൺലോഡ് ചെയ്uതതിന് ശേഷം GPG സിഗ്നേച്ചർ പരിശോധിക്കുന്നതിൽ പരാജയപ്പെടുന്ന പാക്കേജുകൾ നീക്കംചെയ്യുന്നത് പ്രവർത്തനക്ഷമമാക്കുന്നു.
  • -l – yum പ്ലഗിൻ പിന്തുണ പ്രവർത്തനക്ഷമമാക്കുന്നു.
  • -d – റിപ്പോസിറ്ററിയിൽ ഇല്ലാത്ത ലോക്കൽ പാക്കേജുകൾ ഇല്ലാതാക്കുന്നത് സാധ്യമാക്കുന്നു.
  • -m – comps.xml ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യുന്നത് പ്രാപ്തമാക്കുന്നു.
  • --repoid – റിപ്പോസിറ്ററി ഐഡി വ്യക്തമാക്കുന്നു.
  • --ഏറ്റവും പുതിയത് മാത്രം – റിപ്പോസുകളിലെ ഓരോ പാക്കേജിന്റെയും ഏറ്റവും പുതിയ പതിപ്പ് മാത്രം പിൻവലിക്കാൻ reposync-നോട് പറയുക.
  • --ഡൗൺലോഡ്-മെറ്റാഡാറ്റ – എല്ലാ സ്ഥിരമല്ലാത്ത മെറ്റാഡാറ്റയും ഡൗൺലോഡ് ചെയ്യുന്നത് പ്രവർത്തനക്ഷമമാക്കുന്നു.
  • --download_path – പാക്കേജുകൾ ഡൗൺലോഡ് ചെയ്യുന്നതിനുള്ള പാത വ്യക്തമാക്കുന്നു.

8. അടുത്തതായി, എല്ലാ പാക്കേജുകളും പ്രാദേശികമായി സമന്വയിപ്പിച്ചിട്ടുണ്ടെന്ന് ഉറപ്പാക്കാൻ നിങ്ങളുടെ ലോക്കൽ ഡയറക്ടറികളിലെ ഉള്ളടക്കങ്ങൾ പരിശോധിക്കുക.

# ls -l /var/www/html/repos/base/
# ls -l /var/www/html/repos/base/Packages/
# ls -l /var/www/html/repos/centosplus/
# ls -l /var/www/html/repos/centosplus/Packages/
# ls -l /var/www/html/repos/extras/
# ls -l /var/www/html/repos/extras/Packages/
# ls -l /var/www/html/repos/updates/
# ls -l /var/www/html/repos/updates/Packages/

9. ഇപ്പോൾ താഴെ പറയുന്ന കമാൻഡുകൾ പ്രവർത്തിപ്പിച്ച് ലോക്കൽ റിപ്പോസിറ്ററികൾക്കായി ഒരു പുതിയ റിപ്പോഡാറ്റ സൃഷ്ടിക്കുക, ഇവിടെ പറഞ്ഞിരിക്കുന്ന .xml ഫയൽ ഉപയോഗിച്ച് പാക്കേജ് ഗ്രൂപ്പ് വിവരങ്ങൾ അപ്ഡേറ്റ് ചെയ്യാൻ ഫ്ലാഗ് -g ഉപയോഗിക്കുന്നു. .

# createrepo -g comps.xml /var/www/html/repos/base/  
# createrepo -g comps.xml /var/www/html/repos/centosplus/	
# createrepo -g comps.xml /var/www/html/repos/extras/  
# createrepo -g comps.xml /var/www/html/repos/updates/  

10. ഒരു വെബ് ബ്രൗസർ വഴി അവയിലെ ശേഖരണങ്ങളും പാക്കേജുകളും കാണുന്നത് പ്രവർത്തനക്ഷമമാക്കുന്നതിന്, കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങളുടെ ശേഖരണങ്ങളുടെ റൂട്ടിലേക്ക് പോയിന്റ് ചെയ്യുന്ന ഒരു Nginx സെർവർ ബ്ലോക്ക് സൃഷ്ടിക്കുക.

# vim /etc/nginx/conf.d/repos.conf 

ഇനിപ്പറയുന്ന കോൺഫിഗറേഷൻ ഓട്ട് ഫയൽ repos.conf ചേർക്കുക.

server {
        listen   80;
        server_name  repos.test.lab;	#change  test.lab to your real domain 
        root   /var/www/html/repos;
        location / {
                index  index.php index.html index.htm;
                autoindex on;	#enable listing of directory index
        }
}

ഫയൽ സംരക്ഷിച്ച് അത് അടയ്ക്കുക.

11. തുടർന്ന് നിങ്ങളുടെ Nginx സെർവർ പുനരാരംഭിച്ച് ഇനിപ്പറയുന്ന URL ഉപയോഗിച്ച് ഒരു വെബ് ബ്രൗസറിൽ നിന്ന് ശേഖരണങ്ങൾ കാണുക.

http://repos.test.lab

ഘട്ടം 3: സമന്വയിപ്പിക്കുന്നതിനും റിപ്പോസിറ്ററികൾ സൃഷ്ടിക്കുന്നതിനും ഒരു ക്രോൺ ജോബ് സൃഷ്ടിക്കുക

12. അടുത്തതായി, അപ്uഡേറ്റുകളും സുരക്ഷാ പാച്ചുകളും നേടുന്നതിന് നിങ്ങളുടെ പ്രാദേശിക റെപ്പോകളെ ഔദ്യോഗിക CentOS റെപ്പോകളുമായി സ്വയമേവ സമന്വയിപ്പിക്കുന്ന ഒരു ക്രോൺ ജോലി ചേർക്കുക.

# vim /etc/cron.daily/update-localrepos

സ്ക്രിപ്റ്റിൽ ഈ കമാൻഡുകൾ ചേർക്കുക.

#!/bin/bash
##specify all local repositories in a single variable
LOCAL_REPOS=”base centosplus extras updates”
##a loop to update repos one at a time 
for REPO in ${LOCAL_REPOS}; do
reposync -g -l -d -m --repoid=$REPO --newest-only --download-metadata --download_path=/var/www/html/repos/
createrepo -g comps.xml /var/www/html/repos/$REPO/  
done

സ്ക്രിപ്റ്റ് സംരക്ഷിച്ച് അത് അടച്ച് ഉചിതമായ അനുമതികൾ സജ്ജമാക്കുക.

# chmod 755 /etc/cron.daily/update-localrepos

ഘട്ടം 4: ക്ലയന്റ് മെഷീനുകളിൽ ലോക്കൽ യം റിപ്പോസിറ്ററി സജ്ജീകരിക്കുക

13. ഇപ്പോൾ നിങ്ങളുടെ CentOS ക്ലയന്റ് മെഷീനുകളിൽ, YUM കോൺഫിഗറേഷനിലേക്ക് നിങ്ങളുടെ പ്രാദേശിക റിപ്പോകൾ ചേർക്കുക.

# vim /etc/yum.repos.d/local-repos.repo

താഴെയുള്ള കോൺഫിഗറേഷൻ പകർത്തി ലോക്കൽ-repos.repo ഫയലിൽ ഒട്ടിക്കുക (ആവശ്യമെങ്കിൽ മാറ്റങ്ങൾ വരുത്തുക).

[local-base]
name=CentOS Base
baseurl=http://repos.test.lab/base/
gpgcheck=0
enabled=1

[local-centosplus]
name=CentOS CentOSPlus
baseurl=http://repos.test.lab/centosplus/
gpgcheck=0
enabled=1

[local-extras]
name=CentOS Extras
baseurl=http://repos.test.lab/extras/
gpgcheck=0
enabled=1

[local-updates]
name=CentOS Updates
baseurl=http://repos.test.lab/updates/
gpgcheck=0
enabled=1

ഫയൽ സംരക്ഷിച്ച് നിങ്ങളുടെ പ്രാദേശിക YUM മിററുകൾ ഉപയോഗിക്കാൻ ആരംഭിക്കുക.

14. അടുത്തതായി, ക്ലയന്റ് മെഷീനുകളിൽ ലഭ്യമായ YUM റിപ്പോകളുടെ പട്ടികയിൽ നിങ്ങളുടെ പ്രാദേശിക റിപ്പോകൾ കാണുന്നതിന് ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.

#  yum repolist
OR
# yum repolist all

അത്രയേയുള്ളൂ! ഈ ലേഖനത്തിൽ, CentOS 7-ൽ ഒരു പ്രാദേശിക YUM റിപ്പോസിറ്ററി എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് ഞങ്ങൾ വിശദീകരിച്ചിട്ടുണ്ട്. ഈ ഗൈഡ് നിങ്ങൾക്ക് ഉപയോഗപ്രദമാണെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു. നിങ്ങൾക്ക് എന്തെങ്കിലും ചോദ്യങ്ങളോ പങ്കിടാൻ മറ്റെന്തെങ്കിലും ചിന്തകളോ ഉണ്ടെങ്കിൽ, ചുവടെയുള്ള അഭിപ്രായ ഫോം ഉപയോഗിക്കുക.