+++++++ FreeBSD +++++++ Upgrade ======= Check the `latest FreeBSD release `_ and compare to ``uname -a``. Upgrade the system:: sudo pkg upgrade -y sudo bash -c 'PAGER=cat freebsd-update fetch' sudo bash -c 'PAGER=cat freebsd-update install' ``PAGER=cat`` is used to ignore messages about added, removed and overriden configuration files. Minimum packages to develop on FreeBSD ====================================== Install:: pkg # first command proposes to install it pkg install sudo sudo pkg install vim-console git Misc ==== * Coredump filename: ``sudo sysctl -w 'kern.corefile =%N.%P.core'`` Configuration ============= * Rerun the installer configuration, run:: ``bsdconfig``. * Change the keyboard layout: run ``kbdmap``. Upgrade to newer FreeBSD ======================== Upgrade to FreeBSD 12.0-RC2:: sudo freebsd-update fetch sudo freebsd-update upgrade -r 12.0 sudo freebsd-update install sudo reboot # after reboot sudo freebsd-update install Repair pkg ========== Repair pkg, if needed:: sudo pkg bootstrap -f If something goes wrong, reinstall everything installed by pkg:: sudo pkg-static upgrade -f Install FreeBSD VM ================== Install VM image ---------------- * https://www.freebsd.org/where.html : Download amd64/qcow2 virtual machine image, * Uncompress the image: unxz file.qcow2.xz * Move the image to /var/lib/libvirt/images/ * Create a FreeBSD VM using this disk image * Add "freebsd" hostname to /etc/hosts Classic installer (old way) --------------------------- * Download ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/11.0/FreeBSD-11.0-RELEASE-amd64-disc1.iso.xz * Uncompress: unxz FreeBSD-11.0-RELEASE-amd64-disc1.iso.xz * Create a new VM: * Name: FreeBSD * Boot from an ISO: specify the path to the .iso file * System: select Show all, select UNIX, pick FreeBSD 11 * 1 cpu, 1 GB of RAM * Disk size: 20 GB * Select network: shared interface, br0 * FreeBSD installer: * * Keymap: French ISO-8859-1 * Hostname: freebsd * Distribution: only keep [*] ports * Partition: auto, , MBR, Finish, Commit * (choose a root password) * network: configure IPv4, use DHCP, yes, configure IPv6, auto, yes * Time Zone: 8 Europe, 14 France * Date/Time: Skip * Service started at boot: sshd * (no option) * Add a new user: username vstinner * Exit: Manual config? No * Reboot Enlarge qcow2 image ------------------- * Shutdown the VM * On the host: sudo qemu-img resize /var/lib/libvirt/images/freebsd.qcow2 40G * Boot the VM, in FreeBSD: sudo /etc/rc.d/growfs onestart Configure as root ----------------- * Log as root * ``kbdcontrol -l fr.iso`` * ``pkg install sudo bash tmux vim`` * ``visudo``: uncomment ``%whell ALL..`` without password * adduser: add user, add it to the wheel group * to add wheel group to an user: pw usermod -n vstinner -G wheel * Enable the SSH server: * Add sshd_enable="YES" to /etc/rc.conf * service sshd start * https://www.freebsd.org/doc/handbook/openssh.html * Log out Configure as your user ---------------------- * Log in as the your user * chsh -s /usr/local/bin/bash * Log out and log in again to get bash * ``sudo pkg install git`` Commands to develop Python on FreeBSD ===================================== Install:: sudo pkg install pkgconf Use ports ========= By default, ports are not installed:: vstinner@freebsd$ ls /usr/ports ls: /usr/ports: No such file or directory Install ports:: sudo git clone https://git.FreeBSD.org/ports.git /usr/ports --depth=1 Misc ==== Which package provides a file? :: vstinner@freebsd$ pkg which /usr/local/bin/git /usr/local/bin/git was installed by package git-2.41.0 FreeBSD source code: https://github.com/freebsd/freebsd-src/