Introducción
Hallo, hier is nog een bericht, als je "vergelijkbaar" wilt met degene die ik eerder deed archlinux, deze keer gaan we iets soortgelijks doen, met het verschil dat hoewel ik het onder doe chakra linux, Het is van toepassing op alle distributies die gebruik pacman als pakketbeheerder
Eisen
- Te compileren pakketten zijn meestal groepen die eindigen op ontwikkelen (voor boog zou base-devel zijn)
Bouwen aan de repository-structuur
Hiervoor is het noodzakelijk om 2 mappen aan te maken (te bestellen) binnen onze repository, in mijn geval zal ik mijn repo aanmaken x11tete11x in: /home/x11tete11x/.repo/x11tete11x en de mappen die het zal bevatten zijn: pkgbuilds y pkgs-x86_64
Onze repository toevoegen aan Pacman
We bewerken het bestand /etc/pacman.conf en we voegen onze repo toe met de volgende informatie:
[RepoName] SigLevel = Server =
Voorbeeld van hoe ik mijn repo heb geconfigureerd:
[x11tete11x] SigLevel = Optionele TrustAll Server = file: ///home/x11tete11x/.repo/x11tete11x/pkgs-x86_64
Handmatige methode
De database voor de repository maken
Hier gebruiken we de instructie repo-toevoegen om de repository-database te genereren
repo-add / pad / naar / repo / Depkgs map / /path/to/repo/Depkgsfolder/*.pkg.tar.xz
Pakketten samenstellen
Hier meer dan de stappen, ben ik geïnteresseerd in het geven van meer "richtlijnen" of advies, de stappen zijn:
- Download of monteer de PKGBUILD van het gewenste pakket in de map pkgbuilds, en voer hetzelfde in
- Pas de PKGBUILD aan zodat deze past bij de afhankelijkheidsnamen van uw distro
- lopen makepkg
- Kopieer het binaire bestand naar de map pkg's
- Genereer de DB opnieuw met repo-toevoegen
- Ververs de pacman-repositories met pacman-Sy
Overwegingen bij het compileren
Voordat u begint met compileren voor dwazen en gek controleer of ze alle afhankelijkheden in hun repositories hebben officieren, want als we beginnen dubbele pakketten in onze repositories en systeem kunnen we bijvoorbeeld inconsistentie genereren.
Later zal ik dit bericht begeleiden, met een video-tutorial die alles laat zien wat hier wordt getoond, met name in chakra is het pakket «toluapp" en in boog is genaamd "tolua ++»Dus als we een pakket willen compileren in chakra (die we bijvoorbeeld hebben meegenomen boog) die als afhankelijkheid heeft tolua ++, NO we moeten compileren tolua ++ we wijzigen eenvoudig de PKGBOUW, zodat afhankelijkheid van hetzelfde gebeurt toluapp.
Dat moet de grootste overweging zijn om over na te denken, later is het een kwestie van vóór elke gebeurtenis een beetje googelen om de PKGBUILD aan te passen zodat deze compileert (in het voorbeeld dat ik in de video laat zien, zijn er al deze vragen, zelfs een compilatiefout, later opgelost)
Automatische methode
De "automatische" methode bestaat uit een eenvoudig script, dat ik deed om de taak van het compileren en toevoegen van pakketten aan de repository te automatiseren (het is lang niet zo compleet als de lokale repo de boog maar het vervult zijn missie) de code ervan is als volgt:
#! / bin / bash REPONAME = x11tete11x PATHPKG = / home / x11tete11x / .repo / x11tete11x / pkgs-x86_64 / makepkg && cp * .pkg.tar.xz $ {PATHPKG} && rm * .pkg.tar.xz & & repo -add $ {PATHPKG} / $ {REPARE ME} .db.tar.gz $ {PATHPKG} *. pkg.tar.xz
zoals u zult zien, is het uiterst eenvoudig en om het te gebruiken moet u het volgende doen:
- Ze slaan die code op met de naam die ze willen (in mijn geval noemde ik het chakra-opslag)
- Stel de variabelen in VERVANG MIJ, met de naam van uw repository, moet deze dezelfde zijn als in de pacman.conf, en de variabele PATHPKG met de directory waar alle pkg's
- Ze geven u uitvoeringsrechten:
chmod + x scriptnaam
- Ze kopiëren het naar / usr / bin /
Om het te gebruiken, nadat ze hun PKGBUILD hebben gedownload of ingeschakeld, in plaats van uit te voeren makepkg ze voeren uit het script (in mijn geval chakra-repo) Dit compileert automatisch het programma, kopieert het binaire bestand naar de map met binaire bestanden en werkt de database bij met repo-toevoegen, dus na het uitvoeren van het script, maak gewoon een pacman -Sy om het betreffende pakket te installeren.
Vervolgens laat ik je een instructievideo achter waarin je dit alles wat ik heb blootgelegd, in actie kunt zien (PS: als je naar AC / DC luistert, compileert de machine beter xD haha)
Interessant 😀
Heel interessant!
Het ziet er interessant uit, ik vraag me af waarom Arch en Ubuntu alle pakketten in het universum kunnen hebben en de andere distributies niet.
Zeer goed thema, behalve dat alles gedetailleerd is bij het maken van de configuratie,
En het beste detail, dat naar mijn mening het beste was, was toen je zocht naar de oplossing voor de fout die naar voren kwam bij het voltooien, omdat je niet weet wat er gebeurt als je dit soort fouten tegenkomt en hoe je het kunt oplossen, en hier demonstreer je met de simpele echo van het zoeken naar dingen komt uit wat er gedaan moet worden.
Buenisimo
wat een manier om GNU / Linux te leren op deze pagina. bedankt..
Zeer goede vermelding, om te zien of iemand wordt aangemoedigd om een soortgelijke voor de debianadictos te plaatsen.
Over de muziek…. AC / CD is erg goed, maar hetzelfde met Marilyn Manson is een beetje beter ...: - /
Kan een cloudhosting als server worden gebruikt? specifiek Dropbox
helemaal van jou: http://i.imgur.com/5DVzCXm.png
Ja inderdaad, toen ik op Pardus en Pisi Linux zat, hadden we de community-repository op Dropbox.
Perfect! 😀
Nu ik UniDistro ben, gaan we kijken of ik het in KaOS durf te proberen
Uitstekende bijdrage 😉
probeer zonder angst, dat aanvankelijk de "handmatige" lokale repo, ik deed het onder KaOS xD
Een heel nuttig werk voor nieuwelingen zoals ik, en daarvoor bedank ik je hartelijk voor de interesse die je had om het te publiceren.
Ok, ik denk dat ik begrijp wat je wilt verzenden, dit "lokale repo" ding, bespaart tijd, als we overwegen om archlinux of een afgeleide te installeren; omdat bijvoorbeeld de archlinux.org-server onlangs is ingesteld op 56 kb / s voor downloads. Maar als we een lokale repo hebben (lokale pakketserver, denk ik?), Zal de installatie worden uitgevoerd zonder de afhankelijkheid van verbinding met internet.