Jump to content

lakalne repo na Synology NAS


Recommended Posts

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

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

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

@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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...