Interested in using Linux at Bowdoin? Or you're already a fan of the free and open source operating system but could use some help using it at Bowdoin? Below are some answers to frequently asked questions concerning your current or prospective Linux journey here.
Outside of checking using your Web browser, there are only two email protocols that Bowdoin provides: Exchange and Microsoft Graph. Unfortunately, both of these protocols are proprietary, and third-party implementations of them are routinely buggy. Bowdoin does not provide IMAP, an open, secure, and industry-standard email protocol.
As of 2026, the Linux email client best supporting Exchange or Microsoft Graph is Evolution, which supports both. Evolution also has many derivatives that use the same underlying codebase and should therefore have the same level of support for these protocols. Thunderbird also is developing support for both Exchange and Microsoft Graph, but as of the time of this writing (2026) the support isn't quite there yet. When setting up your Bowdoin email account via Evolution, select "skip lookup" and configure the server type to be "Microsoft 365", which will configure Evolution to use the Microsoft Graph protocol.
To access some Bowdoin services, you must be on the Bowdoin network, either physically or virtually via a VPN. Although you can configure VPNs to reroute all traffic to a virtual network, I configure the Bowdoin VPN to only reroute traffic destined for Bowdoin networks, which enables me to access all Bowdoin services without rerouting all of my traffic through Bowdoin's virtual network.
To facilitate this, I have the following setup. Bowdoin's VPN service uses the OpenConnect protocol. I use GlobalProtect to connect to the service, which, as of 2026, appears to be the best supported client on Linux. I then use the following two shell scripts, which should be in the same directory:
#!/bin/sh set -e DIR="$(dirname "$0")" wrapper="$([ "$(id -u)" = '0' ] || echo 'sudo')" exec $wrapper gpclient connect --as-gateway --script "$DIR"/bowdoin-vpnc.sh remoteaccess-full.bowdoin.edu
#!/bin/sh
# Routes through VPN:
set -- 139.140.1.0/24 139.140.2.0/23 139.140.4.0/22 139.140.8.0/21 139.140.16.0/20 139.140.32.0/19 139.140.64.0/18 139.140.128.0/17
if [ -z "$reason" ]; then
echo "This script must be called from vpnc." 1>&2
exit 1
fi
cmd_routes() {
cmd="$1"
shift
for i in "$@"; do
ip -4 route "$cmd" "$i" dev "$TUNDEV" metric 0
done
}
add_routes() {
cmd_routes 'add' "$@"
}
del_routes() {
cmd_routes 'del' "$@"
}
case "$reason" in
pre-init)
;;
connect)
if [ -z "$INTERNAL_IP4_MTU" ]; then
INTERNAL_IP4_MTU=1412
fi
ip addr add "$INTERNAL_IP4_ADDRESS/32" peer "$INTERNAL_IP4_ADDRESS" dev "$TUNDEV"
ip link set mtu "$INTERNAL_IP4_MTU" up dev "$TUNDEV"
add_routes "$@"
;;
reconnect)
add_routes "$@"
;;
disconnect)
del_routes "$@"
;;
attempt-reconnect)
del_routes "$@"
;;
esac
To connect to the VPN, execute the bowdoin-up.sh script. Note that on line 4 of bowdoin-vpnc.sh you may configure which networks are routed through the VPN using CIDR notation.
Printing at Bowdoin is managed using "Paper Cut", a proprietary printing system named after the obnoxious injury. The best ways to print seem to involve avoiding using the Paper Cut software all together, which is not well supported on Linux.
Using Linux you can "mobile print" to the mobile print queue. If you have ever printed from your phone or tablet, printing this way will work the same way. After "printing" from your device, you will be required to go to a printer, tap your Bowdoin card, and select your job to release it for printing to that printer. You can add the mobile print "printer" by going to "Add Printer", "Enter URI", and then enter:
ipps://p-papercut-a.bowdoin.edu:9164/printers/Mobile-PrintFor the driver, select "Generic" (you may have to scroll to the top to see this option), and then select "PostScript" (if there is more than one option and one of them is "recommended" by the interface, then select the "recommended" one).
Some printers do not support mobile printing (e.g., they have no facility to tap your card or to release jobs). For these printers you can often print to them using a suitable USB-A to USB-B or USB-C to USB-B cable. Plug the USB-B side into the corresponding port on the printer, and then depending on port availability either the USB-A or USB-C side into your laptop. I carry around one of these cables in my bag.