andrew Posted August 27 Report Share Posted August 27 Ze względu na słaby i limitowany dostęp do internetu pomyślałem o stworzeniu lokalnego repozytorium dla kilku kompów w sieci domowej (wszyscy korzystają z Fedory ). Oszczędziło by to czas aktualizacji na kompach i wymagało tylko jednorazowgo ściągnięcia aktualizacji z internetu, a następne kompy korzystały by z lokalego repozytorium. Aktualizuję praktycznie tylko z dnf w konsoli. A więc po kolei: 1. Stworzyłem katalog współdzielony na Synology NAS, udostępniłem dla wszystkich kompów w sieci lokalne. 2. Zamontowałem ten katalog na kompach przez NFS 3. Na wybranym komputerze zainstalowałem libdnf5 Actions plugin 4. Wykorzystując ten plugin, w pliku moja.actions: # Prints the date and time and information about the end of the transaction. # Since package_filter is empty, it executes the commands once. post_transaction::::/usr/local/bin/CreateLocalRepo.sh wywołuję skrypt CreateLocalRepo.sh: W tym pliku kopiowałem wszystkie pakiety z cache`a lokalego kompa na katalog współdzielony NAS`a i wywoływałem createrepo na tym katalogu. Niestety wiązało się to z ponownym przesyłaniem plików z NAS do kompa celem stworzenia plików repo. Trochę usprawniłem proces createrepo instalując Fedora w dockerze na NAS i wywołując zdalnie createrepo na dokerze z Fedorą na Synology NAS. Zawartość skryptu poniżej: #!/bin/sh echo "Coping packages to localRepo" > /dev/stdout cp -n /var/cache/libdnf5/*/packages/* /srv/fedoraLocalRepo/packages/ date > /dev/stdout echo "Docker Create localRepo" > /dev/stdout sshpass -p "xxxxxxxx" ssh [email protected] "/usr/local/bin/docker exec 45a498a4bdad createrepo /home/Repo" > /dev/stdout Teraz proces działa poprawnie, nie ma potrzeby ponownego przesyłania plików z NAS`a do kompa. Proszę o pomoc w usprawnieniu procesu, chciałbym przede wszystkim widzieć komunikaty ze skryptu CreateLocalRepo.sh na konsoli, z której wywołuję #dnf upgrade. Może wypadałoby korzystać z jakiś zmiennych, które wskazują cache`a libdnf5 ? Dzięki za wszelkie uwagi i pomoc. Tak na marginesie to działa . Pominąłem opis konfiguracji nowego repo na pozostałych komputerach. Link to comment Share on other sites More sharing options...
SeeM Posted August 27 Report Share Posted August 27 Dwa słowa: dnf reposync. To tworzy lokalną kopię repozytorium, którą można potem przyrostowo aktualizować. Mam kilkanaście maszyn wirtualnych z CentOS 10 i oszczędza to kupę czasu. Pobrane pliki najlepiej wystawić w sieci lokalnej po http i poprawiać konfigurację dnf przed każdą cotygodnoową aktualizacją. Ja mam do tego prace ansiblowe: podmian konfiguracji dnf na wszystkich hostach, wyczyszenie cache dnf i aktualizacja na wszystkich hostach. Na reposync Fedory będziesz potrzebował z 500 gigabajtów przetrzeni dyskowej. Może więcej. Dawno nie sprawdzałem. Link to comment Share on other sites More sharing options...
@sunrise Posted August 27 Report Share Posted August 27 Istnieje również plugin dla dnf python3-dnf-plugin-local https://blog.holtzweb.com/posts/fedora-repository-local-mirror-over-LAN/ https://fedoramagazine.org/use-the-dnf-local-plugin-to-speed-up-your-home-lab/ Link to comment Share on other sites More sharing options...
prymula Posted September 2 Report Share Posted September 2 Tak z ciekawości ile czasu potrzebowałeś @andrew aby zbudować repozytorium, przy pomocy 'createrepo' ? Pytam, gdyż budowałem jakiś czas temu lokalne repozytorium dla Arch. I skrypt z poleceniem 'repo-add', dla ~80 GiB pakietów potrzebował dla i3 8gen. ~2.5 doby na zbudowanie bazy danych. Więc przyszło mi swego czasu, zasypiać przy szumie wentylatora - co było w sumie bardzo miłe :) Link to comment Share on other sites More sharing options...
andrew Posted September 3 Author Report Share Posted September 3 @prymulaNa Synology (INTEL Celeron J4125) 2GHz, 2GB RAM: śro, 3 wrz 2025, 22:03:15 CEST Docker Create localRepo C_CREATEREPOLIB: Warning: Cannot parse repomd: /home/Repo/repodata/repomd.xml Directory walk started Directory walk done - 1110 packages Temporary output repo path: /home/Repo/.repodata/ Pool started (with 5 workers) Pool finished śro, 3 wrz 2025, 22:03:42 CEST Pakiety zajmują na razie około 4,3 GB Link to comment Share on other sites More sharing options...
prymula Posted September 4 Report Share Posted September 4 Ta powolność w moim przypadku, mogła wynikać z tego że cel znajdował się na USB HDD. Ale z drugiej strony, słyszałem glosy, że w przypadku Arch to jest po prostu powolne. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now