Portage
Switching from a git repository hosting
For nearly 2 years I have been synchronizing settings between my Gentoo machines via a git repository that is installed system-wide via portage itself.
This actually gets a little tiresome and slow as the package that installs the configuration has to be re-installed each time we want to update the settings.
So I thought it could be cool if I can just push files around between my machines with one command. Now: we can use rsync
or scp
but /etc/portage
is owned by root so we either have to change the permissions to a user we use to ssh or a group that user is in.
Portage users
First change portage permissions of /etc/portage
, now all users in the portage
group will be able to modify the configuration
1 2 |
chown -R root:portage /etc/portage chmod -R g+w /etc/portage |
Synchronizing
We can do a rsync
from different machine with:
1 |
rsync -r /etc/portage REMOTEHOST:/etc --exclude=".git" --exclude="make.profile" --copy-unsafe-links |
Reminder that this can also be done as a cron
job!
Portage snapshots with git
Probably the best thing I got out of genlica is that I engineered a script to automatically do a git commit of the changes to the portage configuration.
Emerge git
1 |
emerge --noreplace --verbose dev-vcs/git |
Copy the file that does the snapshots
1 2 |
mkdir -p /etc/portage/postsync.d curl -o /etc/portage/postsync.d/99-degitmerge.sh "https://gitlab.com/xgqt/genlica/-/raw/master/portage/postsync.d/99-degitmerge.sh" |