More about FreeNAS jails
My first attempt to upload a large tarball to Glacier was a success as described here, but subsequent ones failed because the FreeNAS server is headless. I get shell access to its jails in a browser tab from one of the Mac clients. If I launch a slow upload and I close the browser or the client goes to sleep while the upload is in progress, the shell session terminates and the upload is aborted.
One solution is to run these shell sessions in tmux
. I have completed a second upload – pics2012.tgz, weighing in at 1.4G – in a tmux
session that persisted through two browser shutdowns and one client sleep session, returning to work as expected with tmux attach
every time.
For this I had to install tmux
on the awsboss
jail first, and I ran into a problem: pkg install tmux
would not work, and pkg install <ANYTHING>
would not have worked either, for that matter. There are two possible fixes. One is to fix pkg install
and try again pkg install tmux
. The other is to ignore the problem and try pkg_add tmux
instead. This is the old-school way of adding packages and it is discouraged with the warning that it will “cause inconsistencies in the package management database.” Whatever that means, it sounds serious, though a warning is not the same thing as an error, so I did it anyway.
While I was at it, I also ran pkg_add mosh
, because MOSH seems to be another way to get state-preserving shell connections. This is of no use to me at the moment, but it will come up later. This post is motivated by my trying – and failing – to get pkg install
to work properly on a FreeNAS 9.2.0 jail. I thought that would be easy, but I was wrong.
My googling turned up a fix that applies to FreeNAS 9.3, which allows two kinds of jails: port and standard. Port jails can run pkg install <ANYTHING>
. Standard ones by design do not, but they can be persuaded as described here. I thought that the fix would apply to FreeNAS 9.2 jails as well, but the steps outlined in this discussion rely on some source files being present at /usr/src/share/keys
so that you can run
# cd /usr/src/share/keys && make && make install
There is no such directory path in a regular FreeNAS 9.2.0 jail, so this option, as far as I can tell, is out. But some pieces of the process did work, and may have been beneficial, as follows:
# rm /usr/local/etc/pkg.conf
# pkg2ng
The first step above gets rid of a useless pkg.conf
that has one line that trips up pkg install
, so no loss there. The second is more interesting: it did something to both tmux
and mosh
. I don’t know, but I hope that whatever inconsistencies the FreeNAS documentation warns about when it discourages the use of pkg_add
are fixed if you run pkg2ng
immediately after you pkg_add
anything. The job of pkg2ng
seems to be that it converts installed packages from old-school pkg_
style to the newer pkgng
style that in theory should have worked out of the box.
That’s all I have: the hope that pkg_add
won’t screw up anything in practice, and that pkg2ng
will fix what pkg_add
could have screwed up in theory.