Arch Linux Tips

Using Pacserve

Pacserve is a brilliant piece of software made by Xyne allowing you to conserve bandwidth if you all are on the same network by sharing pacman caches. The easiest way to get Pacserve up and running on your system is to add Xyne’s repo to your pacman.conf and installing pacserve directly.

[xyne-x86_64]
# A repo for Xyne's own projects: http://xyne.archlinux.ca/projects/
SigLevel = Required
Server = http://xyne.archlinux.ca/repos/xyne

Install pacserve.

# pacman -Sy pacserve

Start and enable the pacserve service via systemd.

# systemctl enable pacserve.service
# systemctl start pacserve.service

If you’re using any xfer commands in pacman, add inverted commas where needed in order for url substitution to work properly. Some examples are given below. Notice the inverted commas around ‘%o’ and ‘%u’.

XferCommand = /usr/bin/curl -C - -f '%u' > '%o'
XferCommand = /usr/bin/wget --timeout=6 --passive-ftp -c -O '%o' '%u'
XferCommand = /usr/bin/axel -n 8 -a -v -o '%o' '%u'

Now, the quickest and cleanest way to use this without interrupting your workflow is to alias pacman to pacsrv. Add the following to your .zshrc or .bashrc

alias pacman='pacsrv'
alias sudo='sudo '

This should lead to a drastic improvement in package download times and will reduce the overall internet usage.

Getting better fonts

Linux has a great collection of awesome fonts. Without getting into the nitty-gritties of font design and all, I’d suggest doing two things to get your fonts looking beautiful and sexy.

The easiest thing to do is to simply add bohoomil’s repos to your pacman.conf and enjoy the resulting awesomeness. The needed additions are:

[infinality-bundle]
Server = http://bohoomil.com/repo/$arch

[infinality-bundle-multilib]
Server = http://bohoomil.com/repo/multilib/$arch

[infinality-bundle-fonts]
Server = http://bohoomil.com/repo/fonts

Now you would need to use the following command to install the needed fonts and the rendering libraries:

# pacman -Syy {,lib32-}{fontconfig,freetype2,cairo}-infinality-ultimate ttf-droid-ib ttf-liberation-ib ttf-opensans-ib

Of course, these are the fonts I suggest. It would be a good idea to check out the contents of the infinality-bundle-fonts repo and install the fonts which catch your eye.

Making journalctl and systemctl status faster

You’ve probably noticed how the systemctl status foo.service seems to get slower and slower with each iteration. You type the command and press enter, and it take well over a minute to provide you with that information. Well, to change that, all you need to do is to enable rotation of journals based on size for systemd-journald. To do that, run the following commands:

# systemctl stop systemd-journald.{service,socket}
# mv /var/log/journal /var/log/journal.old && mkdir /var/log/journal
# rm /etc/systemd/journald.conf
# echo "[Journal]\nStorage=persistent\nSystemMaxUse=100M\nSystemMaxFileSize=10M\nMaxFileSec=1day\nForwardToSyslog=no\nMaxLevelStore=notice"  >> /etc/systemd/journald.conf
# systemctl start systemd-journald.{service,socket}

This will make your journald.conf look a bit like this:

[Journal]
Storage=persistent
SystemMaxUse=100M
SystemMaxFileSize=10M
MaxFileSec=1day
ForwardToSyslog=no
MaxLevelStore=notice

This makes your journal entries persistent (which they are, by default, that’s why your disk was getting so full), make them remain at 100M+10M in this case, limit each file to 10M, make sure that your journal is rotated after a day (this is a failsafe, the MaxFileSec option can be removed without affecting performance), not forward to a traditional syslog daemon (You probably don’t have one running anyway) and preserve only messages of level notice or higher.

Your old logs were moved to /var/log/journal.old. I doubt you’d need them now, so best is to simply delete this directory. It’ll probably be humongous if your installation is a bit old.

Get better framerates in mpv

mpv is an amazing player. Lighter than vlc, more modern than mplayer with saner defaults, you name it, it’s there. However, the default settings aren’t as sane as you’d like, especially if you’re on a modern machine. Hence, I would recommend making a .mpv/config with at least the following entries:

[default]
cache=16384
cache-min=8
vo=opengl-hq
hwdec=auto

This leads to mpv utilizing an opengl output with a few very good tweaks (hence the name opengl-hq), forces a cache of 16M, makes sure that 8% of the cache is filled before playback starts and enables hardware decoding for all codecs which support it.

Advertisements

2 thoughts on “Arch Linux Tips

  1. Hi there,

    That looks great but in case the arch boxes never move (like it’s the case in my association), what you can do is set up a NFS server (easy with Arch or *BSD) and mount your Arch’s cache to the new NFS share. This way, the cache is on a single machine (cleaner IMO), achieves space saving. https://wiki.archlinux.org/index.php/Pacman_Tips#Network_shared_pacman_cache

    The point of pacserve is IMO for moving devices.

    That’s it, thanks for sharing 😉

    1. Hello. 🙂 I agree with what you have to say, but we use pacserve on laptops. We’re around 8-10 people and we’re constantly travelling. If we also had 8-10 immobile workstations, on the other hand, we’d be doing the same.

      But thank you for the tip nonetheless. I’ll edit the page soon to reflect your views too.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s