diff options
Diffstat (limited to 'doc/rsync-repositories.txt')
-rw-r--r-- | doc/rsync-repositories.txt | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/doc/rsync-repositories.txt b/doc/rsync-repositories.txt deleted file mode 100644 index 71799e5..0000000 --- a/doc/rsync-repositories.txt +++ /dev/null @@ -1,103 +0,0 @@ -RSYNC REPOSITORIES -================================================================================= - -RSYNC repositories are simple to serve and simple to use. In the repository -directory, there needs to be a '.rsync' file that points to the remote of the -repository. This is used in order to fetch changes from the upstream. '.rsync' -file looks like this for the core repository: - - +--------------------------------------------------------------------------+ - | | - | rsync://carbslinux.org/repo/core | - | | - +--------------------------------------------------------------------------+ - - -RSYNC repositories have some few distinctions when it comes to fetching them. -Unlike GIT repositories, they don't have a defined "root" directory. When there -are multiple repositories in a shared repository (such as the Carbs Linux and -KISS Linux repositories), individual repositories need to have this '.rsync' -file. This doesn't, however, slow down operations. Fetching from rsync -repositories are still considerably faster and smaller. - - -Setting up an rsync repository ---------------------------------------------------------------------------------- - -Carbs Linux repositories automatically sync from the git repostitories and serve -it through the rsync daemon. Here is a sample shell script that I use in order to -sync repositories. Feel free to customize for your own use. - - +--------------------------------------------------------------------------+ - | | - | #!/bin/sh | - | HOSTNAME=rsync://carbslinux.org/repo | - | GITDIR=/pub/git/repo | - | SHAREDIR=/pub/share/repo | - | | - | git -C "$GITDIR" pull | - | rsync -aC --delete --include=core --exclude=.rsync \ | - | "$GITDIR/" "$SHAREDIR" | - | | - | for dir in "$SHAREDIR/"*; do | - | [ -d "$dir" ] || continue | - | [ -f "$dir/.rsync" ] || | - | printf '%s/%s\n' "$HOSTNAME" "${dir##*/}" > "$dir/.rsync" | - | done | - | | - +--------------------------------------------------------------------------+ - - -You can then create an 'rsync' user for serving the repositories. - - +--------------------------------------------------------------------------+ - | | - | $ adduser -SD rsync | - | | - +--------------------------------------------------------------------------+ - - -Create '/etc/rsyncd.conf' and a service configuration as well. - - +--------------------------------------------------------------------------+ - | /etc/rsyncd.conf | - +--------------------------------------------------------------------------+ - | | - | uid = rsync | - | gid = rsync | - | address = example.com | - | max connections = 10 | - | use chroot = yes | - | | - | [repo] | - | path = /pub/share/repo | - | comment = My Repository | - | | - +--------------------------------------------------------------------------+ - -Create a service file: - - +--------------------------------------------------------------------------+ - | /etc/sysmgr/rsync or /etc/sv/rsync/run | - +--------------------------------------------------------------------------+ - | | - | #!/bin/sh | - | exec rsync --daemon --no-detach | - | | - +--------------------------------------------------------------------------+ - - -Switching to an rsync repository ---------------------------------------------------------------------------------- - -It is considerably easy to switch to the Carbs Linux rsync repository. - - +--------------------------------------------------------------------------+ - | | - | $ mkdir -p /path/to/repo | - | $ rsync -az rsync://carbslinux.org/repo/ /path/to/repo | - | | - +--------------------------------------------------------------------------+ - -This will fetch the repository to the given location, you can then add it to your -$CPT_PATH. |