Repozitoriai - kas tai tokio ir kaip juos koreguoti

edited March 2019 in Linux pagrindai
Kad papasakoti kas tai tokio repozitoriai visu pirma reikėtu apžvelgti distribucijas, jų versijas bei taip vadinamus codename (kodinius pavadinimus).
Pagrindinės distribucijos kurios yra naudojamos serveriuose būtu:
Debian
Ubuntu
Centos
Kiekvienos iš jų versijos bei kodiniai pavadinimai (į sąrašą neįtraukiau senų ir nebepalaikomų versijų, o taip pat ir neišleistų (Turėkite omenyje, kad pamoka rašyta tam tikru laiku ir kai ją skaitote tam tikros versijos gali būti nebepalikomos arba yra išleistų naujesnių)):
Debian:
7 - Wheezy
8 - Jessie
9 - Stretch
10 - Buster
Ubuntu (Aprašiau tik LTS prailginto palaikymo versijas):
14.04 - Trusty
16.04 -  Xenial
18.04 - Bionic
Centos (centos kodinis pavadinimas gali būti RHEL 7.6):
6 - RHEL 6
7 - RHEL 7
Dabar apie tai kas yra repozitoriai. Repozisoriai tai yra paketų šaltinis iš kurių diegimo įrankiai tokie kaip apt-get (naujesnės versijos apt) ar yum siunčiasi jūsų diegiamus paketus kartu su diegimo instrukcijomis.
Repozitoriai gali būti oficialūs ir trečiųjų šalių. Visada patariu stengtis nenaudoti nepatikrintu trečiųjų šalių repozitorių nes jūs niekada nežinote ką jie gali įdiegti bei neatnaujinti paketų reikiamu metu arba sugadinti Dependency (Priklausomybę/suderinamumą) tarp jūsų kitų jau įdiegtų paketų. Trečiųjų šalių repozitorius naudojame tik tuos kurie tikrai žinome, kad geri (kelis pagrindinius išvardinsiu) ir tik tada kada be jų negalime apsieiti.
Debian bei Ubuntu aplinkose repozitoriai yra surašyti /etc/apt aplanke - Oficialūs repozitoriai būna sources.list faile ir papildomus repozitorius patariama dėti į sources.list.d aplanką sukuriant naują failą.
Apžvelkime debiam bei ubuntu oficialius repozitorius:
Ubuntu bionic:
deb http://mirror.vpsnet.com/ubuntu/ bionic main restricted universe
deb-src http://lt.archive.ubuntu.com/ubuntu/ bionic main restricted universe
deb http://mirror.vpsnet.com/ubuntu/ bionic-updates main restricted universe
Debian Stretch:
deb http://mirror.vpsnet.com/debian stretch main contrib non-free
deb http://ftp.debian.org/debian stretch main
deb http://deb.debian.org/debian stretch-backports main contrib non-free
Pažiūrėkime kas ką reiškia:
deb arba deb-src nurodo ar tai paketai ar source failai (dar galima pridėti architektūrą, bet šioje temoje apie tai nepasakosiu)
Po deb ar deb-src yra nurodomas šaltinis iš kur siunčiami failai
Po šaltinio nurodoma operacinės sistemos versija, bet ne skaičius, o codename (kodinis pavadinimas) Debian repozitoriuose specialiai pridėjau stretch-backports kas reiškia, kad pridėti paketai iš naujesnės versijos debian operacinės sistemos.
Po kodinio pavadinimo yra nurodomi šaltiniai kuriuos naudos:
main - standartiniai debian paketai
contrib - paketai kurie turi priklausomybe ne standartiniems (main) paketams dažniausiai non-free
non-free - Paketai kurie nepatenka į DFSG tai paketai kurię gali turėti tam tikrą licencijavimą tarkim EULA ir jie nėra tarp debian nemokamų paktų sąrašo
Ubuntu viskas tas pats tik pavadinimai skiriasi: restricted universe multiverse ir ubuntu tai apibūdina taip:
Restricted - Kažkas panašaus į contrib/non-free - paketai kurie nėra visiškai nemokami
Universe - Bendruomenės prižiūrimi paketai.
Multiverse - Paketai kurie nėra nemokami
Jeigu norite naudoti oficialiai nebepalikomos (EOL) operacinės sistemos repozitorius - galite nustatyt repozitorius į archyvą, pvz:
deb http://archive.debian.org/debian/ wheezy main contrib non-free
deb-src http://archive.debian.org/debian/ wheezy main contrib non-free
Centos
Pas centos viskas kitaip, repozitoriai aprašomi /etc/yum.repos.d/ aplanke atskiruose failuose ir standartiniai failai būtu tokie:
CentOS-Base.repo  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Sources.repo  CentOS-Vault.repo  CentOS-fasttrack.repo
Ką reiškia šie failai:
Base - Standartiniai repozitoriai
CR - Paketai iš sekančio centos leidinio - tai nėra stabilūs paketai
Media - Naudoti paketams iš prijungtos medijs (CD ar USB)
Source - Tas pats kaip ir Debian ar Ubuntu deb-src
Vault - Verčiant galima suprasti, kad tai yra repozitorių rinkinys (standartiškai visi išjungti)
Kiekviename faile gali būti vienas ar keli repozitoriai ir Centos aplinkoje jie gali būti išjungti ir tai yra nurodoma prie repozitoriaus esanti eilutė: enabled=0

Papildomi repozitoriai
Kiekvienoje aplinkoje galime įdiegti terčios šalies repozitorius tam, kad papildyti galimų įdiegti paketų sąrašą naudojant yum ar apt-get (naujesnės Debian/Ubuntu versijos apt) diegimo įrankį.
Tarkim jeigu norite Centos aplinkoje įdiegti htop kurio nėra standartiniuose repozitoriuose arba bet kurioje iš išvardintų aplinkų norite įdiegti naujesnę PHP versiją - Jūs galite tai atlikti įsidiegę papildomus trečiosios šalies repozitorius.
Debian papildomi repozitoriai kuriuos naudoju diegiant naujesnes php versijas:
deb https://packages.sury.org/php/ stretch main
Debian ir ubuntu repozitorius kurį dauguma naudoja įdiegti java
deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main
Ubuntu repozitorius, kad įdiegti naujausias PHP versijas
deb http://ppa.launchpad.net/ondrej/php/ubuntu bionic main
Ubuntu turi tokį repozitorių rinkinį kaip ppa. Ubuntu aplinkoje papildomus repozitorius galima aktyvuoti naudojant
add-apt-repository
Tarkime naujausias PHP versijas:
add-apt-repository ppa:ondrej/php
Debian/Ubuntu aplinkose po to kai pakoreguojate repozitorius visada juos reikia atnaujinti nes jų sąrašai yra laikomi pačioje sistemoje
apt-get update
Centos aplinkoje viskas turputi kitaip, papildomus repozitorius galima įdiegti yum pagalba arba kurti failus rankiniu būdu, bet to nepatariu.
Centos aplinkai patariu iškart įsidiegti Fedora projekto repozitoriu epel kuris iškart suteiks kur kas didesnį kiekį paketų
yum -y install epel-release
Kad įdiegti naujausias PHP versijas dažniausiai naudojamas remi repozitorius kurį galima įdiegti taip:
Šiuo atveju matome remi-release-7.rpm skaičių 7 kas reiškia, jog tai pritaikyta Centos 7 aplinkai ir jeigu norite įdiegti kitai Centos versijai - šį skaičių reikėtu pakeisti.
Centos aplinkoje įdiegus repozitorius visada sukuriami atskiri jiems failai, tarkim įdiegus epel ir remi galime matyti jog /etc/yum.repos.d/ aplanke atsirado papildomi failai
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-fasttrack.repo epel.repo remi-glpi92.repo remi-glpi94.repo remi-php54.repo remi-php71.repo remi-php73.repo remi.repo CentOS-CR.repo CentOS-Media.repo CentOS-Vault.repo epel-testing.repo remi-glpi91.repo remi-glpi93.repo remi-modular.repo remi-php70.repo remi-php72.repo remi-safe.repo
Visada galime įjungti repozitorius kurių mums reikia arba išjungti nereikalingus koreguojant šiuos failus ir pakeičiant enabled=0 į enabled=1 ar atvirkščiai arba tą patį galime atlikti ir per ssh su komanda
yum-config-manager --enable remi-php70
arba išjungti
yum-config-manager --disable remi-php70























Sign In or Register to comment.