FreeBSD: Setting a user’s locale and charset via a login class.

One way to set a user’s locale and charset is to:

  1. create a new login class,
  2. set the login class’s locale and
  3. set the user’s login class as the newly created class.

Example: Setting petur‘s locale and charset to en_GB.UTF-8 and UTF-8, respectivly.

Append the following to /etc/login.conf

danishKeyboard|Users with a Danish Keyboard:\
        :charset=UTF-8:\
        :lang=en_GB.UTF-8:\
        :tc=default:

Update the capability database by executing cap_mkdb /etc/login.conf.

Set danishKeyboard as petur‘s login class by executing pw user mod petur -L danishKeyboard.

Finally, log in as petur and confirm that the locale has been correctly set as well as that the console correctly displays UTF8 characters.

Mapping Caps Lock to ESC in XFCE

I prefer the Caps Lock key over ESC because the travel to that key is shorter.

To map Caps Lock to ESC add the following to a script and ensure it executes shortly after logging into X.

#!/bin/sh
/usr/local/bin/xmodmap -e "clear Lock"
/usr/local/bin/xmodmap -e "keysym Caps_Lock = Escape"

In my case, I use XFCE so I auto start it by adding /home/<user>/bin/capsToEsc.sh under Settings -> Session and Startup -> Application Autostart -> Add -> Command.

Installing BitBucket on FreeBSD 11.1

Step by step instructions on installing BitBucket on FreeBSD 11.1.

Install OpenJDK

pkg install openjdk8

Mount filesystems on boot

Add the two following lines to /etc/fstab:

fdesc   /dev/fd         fdescfs         rw      0       0
proc    /proc           procfs          rw      0       0
Mount the two filesystems so you don’t have to reboot.
mount -t fdescfs fdesc /dev/fd
mount -t procfs proc /proc

Install Perl

pkg install perl5

Install Git

pkg install git

Install bash

pkg install bash
cd /bin
ln -s /usr/local/bin/bash

Install PostgreSQL

pkg install postgresql96-server
echo 'postgresql_enable="YES"' >> /etc/rc.conf
/usr/local/etc/rc.d/postgresql initdb
/usr/local/etc/rc.d/postgresql start

Configure PostgreSQL

su - postgres
createuser -sdrP dba
psql
CREATEROLE bitbucketuser WITHLOGIN PASSWORD'foobar'VALID UNTIL 'infinity';
CREATEDATABASEbitbucket WITHENCODING='UTF8'OWNER=bitbucketuser CONNECTIONLIMIT=-1;

Create a user for BitBucket

adduser #default values for all but Shell; set bash as the shell.

Install BitBucket

Download bitbucket from Atlassian’s website. Thoose the “TAR.GZ Archive” version.
tar xzf atlassian-bitbucket-5.8.1.tar.gz -C /usr/local
cd /usr/local
mv atlassian-bitbucket-5.8.1/ bitbucket
chown -R bitbucket:bitbucket bitbucket
cd /usr/local/etc
mkdir bitbucket
chown -R bitbucket:bitbucket bitbucket
su - bitbucket
Edit bitbucket’s .profile file:
  • Add and export JAVA_HOME.
  • Append JAVA_HOME/bin to PATH (uncomment PATH if commented out)
  • Add BITBUCKET_HOME=/usr/local/etc/bitbucket; export BITBUCKET_HOME 

Start BitBucket

cd /usr/local/bitbucket/bin
./start-bitbucket.sh

Validating /etc/crontab

cron parses crontab every minute. In order to check crontab for syntax errors, check the logs output:

sleep 60; grep crontab /var/log/syslog | tail

FreeBSD bhyve guest networking stopped working after configuring host NIC aggregation.

Problem

A bhyve guest is unable to connect to the network after it’s host was configured to use NIC aggregation.

Analysis

The guest’s vm switch was configured to use one of the NIC aggregation’s ports instead of the interface itself.

This was evident by:

[root@T20][~]# vm switch list
NAME    TYPE    IDENT    VLAN    NAT    PORTS
public  auto    bridge0  -       -      em0

In the above listing, public should be using lagg0.

Solution

Remove the em0 port from public and add lagg0 to it:

vm switch remove public em0

vm switch add public lagg0

At this step I choose to simply restart the guest after which it was back on the network.