Using NAS4Free as my centralized storage also means I use it for Git repositories. As such it would be awesome if I could do some basic stuff with Git directly from my server’s bash command line.
It’s possible to install packages on NAS4Free – just like on any FreeBSD – you can write
pkg install -y git. However, due to file system size of embedded installation that simple solution doesn’t work – it’s strange how fast those memory disks fill. Yes, one could go with the full NAS4Free install instead but there’s another way.
When it comes to file systems any BSD offers a lot of possibilities – one of which is unionfs. That one allows you to expand file system with the additional space while actually preserving stuff already present in directory.
To preserve the fleeting nature of embedded installation and due to sometime finicky nature of the united file system, I find it’s best to have a fresh directory for every boot, followed by mounting of fresh overlay file system:
rm -rf /mnt/.unionfs 2> /dev/null mkdir -p /mnt/.unionfs/usr/local mount_unionfs /mnt/.unionfs/usr/local /usr/local
Now installing Git actually works:
pkg install -y git
One could optionally also set Git configuration, especially user name and e-mail:
cat <<EOF > /root/.gitconfig [system] autocrlf = false [core] pager = less whitespace = cr-at-eol [user] name = Charlie Root email = email@example.com EOF
If all this is placed in
Command scripts, it’ll get preserved with reboots.