During 2004-2006 we used FreeBSD on all our servers for security reason. They worked properly in most party. During that time Cpanel control panel did supported FreeBSD. Later Cpanel stopped supporting FreeBSD, we switched to Linux.
Since i am running Linux on my desktop, there is no reason to look back to FreeBSD. Today i decided to try FreeBSD. I almost forget most of the FreeBSD commands, i need a quick refresher.
Lets find out what version of FreeBSD we are running.
root@boby:~ # uname -a FreeBSD boby 11.0-RELEASE-p2 FreeBSD 11.0-RELEASE-p2 #0: Mon Oct 24 06:55:27 UTC 2016 [email protected]:/usr/obj/usr/src/sys/GENERIC amd64 root@boby:~ #
Installing Software
Software is installed with pkg or ports. As far as i remember, pkg use binary package like yum, apt, dnf etc.. ports compile software from source. I remember installing Apache, PHP from ports, that take like 15 to 20 minutes, then break for some reason… splitting out all PHP code to your web site visitors. Hope all of this works good now.
Installing Software with pkg
Lets install nmap with pkg
root@boby:~ # pkg install nmap Updating FreeBSD repository catalogue... Fetching meta.txz: 100% 944 B 0.9kB/s 00:01 Fetching packagesite.txz: 100% 6 MiB 1.2MB/s 00:05 Processing entries: 100% FreeBSD repository update completed. 25746 packages processed. The following 2 package(s) will be affected (of 0 checked): New packages to be INSTALLED: nmap: 7.40 pcre: 8.39_1 Number of packages to be installed: 2 The process will require 28 MiB more space. 6 MiB to be downloaded. Proceed with this action? [y/N]: y Fetching nmap-7.40.txz: 100% 5 MiB 1.1MB/s 00:05 Fetching pcre-8.39_1.txz: 100% 1 MiB 569.7kB/s 00:02 Checking integrity... done (0 conflicting) [1/2] Installing pcre-8.39_1... [1/2] Extracting pcre-8.39_1: 100% [2/2] Installing nmap-7.40... [2/2] Extracting nmap-7.40: 100% root@boby:~ #
Searching for Available Software Packages
To search for available software, use command pkg search SOFTWARE-NAME
Lets search for PHP 7.0
pkg search php7
Upgrading All Installed software
This is like apt/yum, almost exact commands.
pkg update pkg upgrade
update will update software index from repository. pkg upgrade downloads and install latest software.
root@boby:~ # pkg update Updating FreeBSD repository catalogue... FreeBSD repository is up-to-date. All repositories are up-to-date. root@boby:~ #
Lets do a pkg upgrade
root@boby:~ # pkg upgrade Updating FreeBSD repository catalogue... FreeBSD repository is up-to-date. All repositories are up-to-date. Checking for upgrades (3 candidates): 100% Processing candidates (3 candidates): 100% The following 2 package(s) will be affected (of 0 checked): Installed packages to be UPGRADED: curl: 7.52.1_1 -> 7.53.0 ca_root_nss: 3.28.1 -> 3.29.3 Number of packages to be upgraded: 2 1 MiB to be downloaded. Proceed with this action? [y/N]: y Fetching curl-7.53.0.txz: 100% 1 MiB 276.2kB/s 00:04 Fetching ca_root_nss-3.29.3.txz: 100% 335 KiB 342.9kB/s 00:01 Checking integrity... done (0 conflicting) [1/2] Upgrading ca_root_nss from 3.28.1 to 3.29.3... [1/2] Extracting ca_root_nss-3.29.3: 100% [2/2] Upgrading curl from 7.52.1_1 to 7.53.0... [2/2] Extracting curl-7.53.0: 100% Message from ca_root_nss-3.29.3: ********************************* WARNING ********************************* FreeBSD does not, and can not warrant that the certification authorities whose certificates are included in this package have in any way been audited for trustworthiness or RFC 3647 compliance. Assessment and verification of trust is the complete responsibility of the system administrator. *********************************** NOTE ********************************** This package installs symlinks to support root certificates discovery by default for software that uses OpenSSL. This enables SSL Certificate Verification by client software without manual intervention. If you prefer to do this manually, replace the following symlinks with either an empty file or your site-local certificate bundle. * /etc/ssl/cert.pem * /usr/local/etc/ssl/cert.pem * /usr/local/openssl/cert.pem *************************************************************************** root@boby:~ #
Software upgrade is done, we get a NOTE from FreeBSD after upgrade.
Getting pkg help
You can get help with command pkg help
root@boby:~ # pkg help Usage: pkg [-v] [-d] [-l] [-N] [-j|-c |-r ] [-C ] [-R ] [-o var=value] [-4|-6] [ ] Global options supported: -d Increment debug level -j Execute pkg(8) inside a jail(8) -r Execute pkg(8) using relocating installation to -c Execute pkg(8) inside a chroot(8) -C Use the specified configuration file -R Directory to search for individual repository configurations -l List available commands and exit -v Display pkg(8) version -N Test if pkg(8) is activated and avoid auto-activation -o Override configuration option from the command line -4 Only use IPv4 -6 Only use IPv6 Commands supported: add Compatibility interface to install a package alias List the command line aliases annotate Add, modify or delete tag-value style annotations on packages audit Reports vulnerable packages autoremove Removes orphan packages backup Backs-up and restores the local package database check Checks for missing dependencies and database consistency clean Cleans old packages from the cache config Display the value of the configuration options convert Convert database from/to pkgng create Creates software package distributions delete Deletes packages from the database and the system fetch Fetches packages from a remote repository help Displays help information info Displays information about installed packages install Installs packages from remote package repositories and local archives lock Locks package against modifications or deletion plugins Manages plugins and displays information about plugins query Queries information about installed packages register Registers a package into the local database remove Deletes packages from the database and the system repo Creates a package repository catalogue rquery Queries information in repository catalogues search Performs a search of package repository catalogues set Modifies information about packages in the local database ssh Package server (to be used via ssh) shell Opens a debug shell shlib Displays which packages link against a specific shared library stats Displays package database statistics unlock Unlocks a package, allowing modification or deletion update Updates package repository catalogues updating Displays UPDATING information for a package upgrade Performs upgrades of packaged software distributions version Displays the versions of installed packages which Displays which package installed a specific file Commands provided by plugins: For more information on the different commands see 'pkg help '. root@boby:~ #
List All Installed Software versions
Use pkg version command to use all installed software and its version
root@boby:~ # pkg version Updating FreeBSD repository catalogue... FreeBSD repository is up-to-date. All repositories are up-to-date. ca_root_nss-3.29.3 = curl-7.53.0 = dmidecode-3.0 = e2fsprogs-1.43.4 = gettext-runtime-0.19.8.1_1 = gpart-0.1h_2 = indexinfo-0.2.6 = jq-1.5 = libffi-3.2.1 = libiconv-1.14_10 = libnghttp2-1.18.0 = libxml2-2.9.4 = nmap-7.40 = oniguruma5-5.9.6_1 = pcre-8.39_1 = php70-7.0.16 = pkg-1.9.4_1 = py27-Babel-2.3.4 = py27-Jinja2-2.8 = py27-MarkupSafe-0.23 = py27-boto-2.45.0 = py27-cheetah-2.4.4_1 = py27-cloud-init-0.7.6 = py27-configobj-5.0.6_1 = py27-jsonpatch-1.9 = py27-jsonpointer-1.9 = py27-markdown-2.6.5 = py27-oauth-1.0.1_2 = py27-prettytable-0.7.2_2 = py27-pytz-2016.10,1 = py27-requests-2.11.1 = py27-serial-3.2.1 = py27-setuptools27-32.1.0 = py27-six-1.10.0 = py27-yaml-3.11_2 = python27-2.7.13_1 = readline-6.3.8 = rsync-3.1.2_6 = sudo-1.8.19p2 = vim-lite-8.0.0134_1 = root@boby:~ #
Continued at FreeBSD – A revisit after 10 years (part 2)