Hoe je native Linux-programma's op FreeBSD installeert

Laatste update: 16/10/2025
Auteur: Isaac
  • FreeBSD biedt binaire pakketten, ports en compatibiliteit Linux om verschillende use cases te bestrijken.
  • Door te compileren vanuit de broncode kunnen patches en opties worden toegepast; pakketten zorgen voor snelheid en eenvoud.
  • Linux-compatibiliteit is afhankelijk van de hardware: Moderne glibc vereist x86-64‑v2 in recente binaire bestanden.
  • Het configureren van rc.conf, loader.conf en fstab is de sleutel tot chauffeurs, zelfassemblage, printen en diensten.

Linux-programma's installeren op FreeBSD

Als je van GNU/Linux overstapt naar FreeBSD, is het normaal om je af te vragen hoe je native Linux-programma's kunt uitvoeren zonder gek te worden . FreeBSD biedt verschillende mogelijkheden: binaire pakketten, de befaamde Ports Collection en de Linux-compatibiliteitslaag (de zogenaamde Linuxulator). Elke methode heeft zijn voordelen, beperkingen en configuratie-eigenaardigheden.

In deze handleiding vindt u een praktisch en zeer compleet overzicht, met de nadruk op nuances die vaak over het hoofd worden gezien: van de redenen om vanuit de broncode te compileren tot het verfijnen van rc.conf, loader.conf of fstab; inclusief grafische stuurprogramma's, automatisch mounten, CUPS, lettertypen, systeemtaal en natuurlijk hoe om te gaan met moderne Linux-compatibiliteit en de bijbehorende CPU-vereisten.

Echte keuzes in FreeBSD: pakketten, poorten en Linux-compatibiliteit

FreeBSD biedt drie belangrijke manieren om software te installeren: binaire pakketten, de Ports Collection (compileren vanuit code) en Linux-ondersteuning voor het uitvoeren van Linux-binaire bestanden . De juiste methode kiezen hangt af van je behoeften op het gebied van snelheid, aanpassingsmogelijkheden en de vereisten van je applicaties.

Binaire pakketten zijn kant-en-klare programma's die direct geïnstalleerd kunnen worden, terwijl ports vanuit de broncode gecompileerd worden, waarbij patches en opties worden toegepast. En als je een app wilt uitvoeren zonder een native port, kan FreeBSD Linux-binaries laden via de compatibiliteitsomgeving (onder bepaalde voorwaarden).

Linux-compatibiliteit op FreeBSD

Waarom het soms een goed idee is om vanuit de broncode te compileren

Hoewel binaire pakketten ontzettend handig zijn, zijn er goede redenen om de broncode te gebruiken: sommige licenties verbieden de distributie van binaire bestanden en staan ​​alleen de distributie van de broncode toe . In die gevallen zijn ports de meest logische oplossing.

Er zijn ook mensen die binaire bestanden van derden niet vertrouwen. Met code kun je, in theorie althans, potentiële problemen controleren en opsporen vóór het compileren. Het is een extra controlelaag die soms loont.

Als u uw eigen patches onderhoudt of gedetailleerde buildopties wilt in- of uitschakelen, hebt u de broncode nodig om deze toe te passen. Ports is precies daarvoor ontworpen, met zeer gedetailleerde variabelen en opties.

En puur uit technische nieuwsgierigheid: door de code bij de hand te hebben, kun je delen ervan lezen, aanpassen of hergebruiken (als de licentie dat toestaat), iets wat in het BSD-ecosysteem altijd hoog gewaardeerd is.

Binaire pakketten op FreeBSD: van pkg_add naar pkg

Binaire pakketten in FreeBSD zijn vergelijkbaar met .deb-bestanden in Debian/Ubuntu of .rpm-bestanden in Fedora: vooraf gecompileerde binaire bestanden met hun configuratiebestanden en documentatie. Ze worden nu beheerd met het `pkg`-hulpprogramma , dat de oudere commando's `pkg_add`, `pkg_delete` en `pkg_info` heeft vervangen.

Essentiële commando's voor pkg: installeren, zoeken, bijwerken en opschonen . Bijvoorbeeld:

# pkg update -f
# pkg upgrade
# pkg search libre
# pkg install firefox
# pkg info firefox
# pkg remove firefox
# pkg autoremove
# pkg clean
# du -hs /var/cache/pkg/

Historisch gezien kon je met `pkg_add -r` automatisch afhankelijkheden installeren en oplossen. In bepaalde releases kon deze opdracht oudere versies van het programma downloaden; de omgevingsvariabele `PACKAGESITE` maakte het mogelijk om recentere versies af te dwingen, bijvoorbeeld:

PACKAGESITE=ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6-stable/Latest/

Als je bekend bent met Linux, zul je merken dat FreeBSD extensies zoals .tgz of .tbz gebruikt voor voorgecompileerde pakketten en dat de lokale pakketdatabase zich bevindt op /var/db/pkg . Dit is een handig detail voor controledoeleinden of scripting.

Portscollectie: compileren met opties en geen verrassingen

De Ports Collection is een mapstructuur in /usr/ports die Makefiles, patches en descriptors bevat. Wanneer je een port installeert, downloadt het systeem de broncode, past patches toe, compileert, installeert en lost afhankelijkheden op, allemaal in één proces. Dit is erg handig.

  Hoe je het scherm in Windows 11 kunt splitsen en er het maximale uit kunt halen

Om de port tree op te halen of bij te werken, kunt u klassieke methoden gebruiken zoals portsnap of csup (tegenwoordig is Git ook gangbaar, maar het concept is hetzelfde: de port tree synchroniseren met de FreeBSD-servers).

Typisch voorbeeld voor compileren en installeren, met automatisch opschonen:

# cd /usr/ports/www/apache22
# make install clean

En als je specifieke vereisten hebt, schakel dan build-opties in met behulp van make-variabelen. Bijvoorbeeld het inschakelen van mod_ldap in Apache tijdens de build:

# cd /usr/ports/www/apache22
# make WITH_LDAP="YES" install clean

Een handige truc: je kunt een port naar eigen wens compileren en vervolgens een pakket genereren om deze naar andere machines te distribueren. Zo combineer je het beste van twee werelden (aanpassingsmogelijkheden en snelle implementatie).

Zoek uit wat u moet installeren en waar het zich bevindt

Als je de exacte naam weet, maakt pkg het je gemakkelijk met pkg search . Binnen het ports-ecosysteem kun je ook rechtstreeks in de boomstructuur zoeken met behulp van querytools. Houd er rekening mee dat het systeem hoofdlettergevoelig is bij het zoeken naar paden of namen.

Om lokaal poorten te verkennen, navigeer je naar /usr/ports en gebruik je de opdracht `make search targets` of blader je door mappen op categorie (www, sysutils, multimedia, enz.). De officiële website geeft een gedetailleerd overzicht van de beschikbare poorten.

Linux-compatibiliteit (Linuxulator): Linux-binaries uitvoeren

FreeBSD kan Linux-binaries uitvoeren via zijn compatibiliteitslaag. Tegen 2025 zal het compatibiliteitsecosysteem gebruikmaken van op Rocky Linux gebaseerde repositories voor gebruikerspakketten, ter vervanging van het verouderde CentOS. Het is ook gebruikelijk om chroots te zien zoals /compat/ubuntu (bijvoorbeeld een Focal Ubuntu-installatie voor bepaalde apps ).

Om dit te activeren, installeert u de Linux-basis en configureert u services en pseudo-bestandssystemen. Een klassiek voorbeeld met de C7-basis (pas deze aan naar de nieuwste beschikbare versie met pkg-zoekfunctie):

# pkg search linux_base-c
# pkg install linux_base-c7

Activeer de runtime in rc.conf, koppel linprocfs en linsysfs en zorg ervoor dat fdesc en proc op uw systeem actief zijn:

# sysrc linux_enable="YES"
# sysrc devfs_system_ruleset="devfsrules_common"

# echo "fdesc /dev/fd fdescfs rw 0 0" >> /etc/fstab
# echo "proc /proc procfs rw 0 0" >> /etc/fstab
# echo "linprocfs /compat/linux/proc linprocfs rw 0 0" >> /etc/fstab
# echo "linsysfs /compat/linux/sys linsysfs rw 0 0" >> /etc/fstab

# mount -t linprocfs linproc /compat/linux/proc
# mount -t linsysfs linsys  /compat/linux/sys

Een belangrijk detail voor oudere hardware: moderne versies van glibc vereisen de x86-64-v2-microarchitectuur . Op oudere machines (zoals sommige ThinkPad T400's) krijg je foutmeldingen zoals "fatale fout: CPU ondersteunt geen x86-64-v2" bij het opstarten van recente Linux-binaries. FreeBSD zelf zal prima werken, maar Linux-compatibiliteit, emulatie of virtualisatie die afhankelijk zijn van moderne glibc, is onmogelijk als de CPU niet aan de vereisten voldoet.

In dat geval kunnen chroot-omgevingen zoals /compat/ubuntu (Focal) worden geïnstalleerd, maar deze lossen het probleem met de instructieset niet op als de interne C-bibliotheek van het Linux-systeem x86-64-v2 vereist. Overweeg alternatieven: gebruik WINE voor Windows- applicaties (sommige draaien Brave op deze manier), of installeer een lichtgewicht gevirtualiseerd Linux-systeem op compatibele CPU's; als deze niet compatibel zijn, moet u kiezen voor native BSD-applicaties of lichtere oplossingen.

DRM, Brave en beveiligde inhoud

Er zijn verschillende manieren om DRM-beveiligde content (zoals Prime Video) op FreeBSD af te spelen. Sommige mensen installeren de Linux-versie van browsers zoals Brave in de Linux-compatibiliteitsmodus of in een chroot-omgeving, maar als je CPU de extensies die nodig zijn voor de moderne glibc niet ondersteunt , werkt die methode niet.

Als al het bovenstaande niet werkt vanwege CPU-beperkingen, overweeg dan om native Firefox met Widevine te gebruiken zodra dit beschikbaar komt in ports/pakketten, of Wine voor Brave (afhankelijk van uw specifieke situatie). De uiteindelijke beslissing hangt af van de DRM-ondersteuning die u in uw browser kunt inschakelen en de hardware waarover u beschikt.

Een FreeBSD-desktop instellen voor comfortabel werken

Als je nog nooit met FreeBSD hebt gewerkt, kan GhostBSD een goede introductie zijn, maar het is ook prima mogelijk om FreeBSD 14 als desktopomgeving te installeren. Een stabiele en flexibele combinatie bestaat meestal uit Xorg + MATE met de juiste grafische stuurprogramma's.

  SteamOS 3.9.5: Duik in Plasma, verbeteringen in de prestaties en uitgebreidere ondersteuning

Installeer de basiscomponenten :

# pkg install xorg nano drm-510-kmod gpu-firmware-kmod

Schakel de services en stuurprogramma's in via /etc/rc.conf , afhankelijk van uw geïntegreerde GPU. Voor Intel is dit meestal:

hald_enable="YES"
dbus_enable="YES"
kld_list="i915kms"

Voor AMD Radeon/geïntegreerde AMDGPU:

hald_enable="YES"
dbus_enable="YES"
kld_list="/boot/modules/amdgpu.ko"

Herstart de grafische server en test deze met `startx` . Als de basis X-omgeving met terminals verschijnt, bent u op de goede weg.

Installeer MATE, sudo en bereid een grafische sessie voor

Wanneer het basissysteem gereed is, installeert u de MATE-omgeving en de eerste hulpprogramma's:

# pkg install mate mate-desktop firefox sudo

Verleen sudo-rechten aan uw gebruiker in /usr/local/etc/sudoers :

TU_USUARIO ALL=(ALL:ALL) ALL

Maak het bestand ~/.xinitrc aan om MATE correct te starten en sessies/DBus te beheren:

exec ck-launch-session dbus-launch mate-session

Vanuit je gebruikersaccount kun je `startx` uitvoeren om toegang te krijgen tot het bureaublad. Als je liever een displaymanager gebruikt, werkt LightDM met een GTK-greeter prima.

# pkg install lightdm lightdm-gtk-greeter
# sysrc lightdm_enable="YES"

Printers met CUPS en HPLIP

Voor het afdrukken installeert u CUPS en filters, schakelt u deze in en voegt u gebruikers toe aan de CUPS-groep. HPLIP maakt printen met HP-apparaten veel eenvoudiger.

# pkg install cups foomatic-filters
# sysrc cupsd_enable="YES"
# pw usermod root -G cups
# pw usermod TU_USUARIO -G cups
# pkg install hplip
# hp-setup

Als je problemen ondervindt, ga dan naar de CUPS-interface op http://localhost:631 . Vergeet niet om lpd uit te schakelen als je CUPS gebruikt.

lpd_enable="NO"

Lettertypen, lokalisatie en Firefox in het Spaans

Om het systeem er goed uit te laten zien, installeer je URW en andere lettertypefamilies (webfonts, liberation, enz.):

# pkg install urwfonts x11-fonts/webfonts comfortaa-ttf gnu-unifont gofont-ttf inconsolata-ttf liberation-fonts-ttf

Activeer Spaans ( es_ES.UTF-8 ) voor zowel de console- als de grafische sessie. Maak de juiste bestanden aan in uw $HOME-directory:

$ nano .login_conf
me:\
 :charset=UTF-8:\
 :lang=es_ES.UTF-8:\
 :tc=default:

$ nano .profile
LANG=es_ES.UTF-8; export LANG
MM_CHARSET=UTF-8; export MM_CHARSET

$ nano .xinitrc
LANG=es_ES.UTF-8; export LANG
MM_CHARSET=UTF-8; export MM_CHARSET
exec ck-launch-session dbus-launch mate-session

Om de instellingen globaal te verfijnen, voegt u het volgende toe aan /etc/profile (als root):

LANG=es_ES.UTF-8; export LANG
MM_CHARSET=UTF-8; export MM_CHARSET

Als Firefox in het Engels blijft, installeer dan het taalpakket van de officiële website en kies in Instellingen > Algemeen > Taal Spaans onder 'Alternatieven instellen'. Je kunt ook woordenboeken toevoegen voor spellingcontrole.

Automatisch koppelen, FUSE en apparaatmachtigingen

Om USB -drives en andere media automatisch te mounten, installeer je automount en herstart je devd. FUSE ondersteunt NTFS , EXT, enz. Het configureren van devfs-rechten en -regels is essentieel.

# pkg install automount fuse fuse-utils fusefs-ext2 e2fsprogs
# service devd restart
# cp /usr/local/etc/automount.conf.sample /usr/local/etc/automount.conf
# sysrc devfs_system_ruleset="devfsrules_common"

Schakel in /usr/local/etc/automount.conf het ontkoppelen voor specifieke gebruikers in:

USERUMOUNT=YES

Zorg ervoor dat het pseudo-bestandssysteem is ingeschakeld in /etc/fstab en schakel gebruikersspecifieke mount in via sysctl:

# echo "proc /proc procfs rw 0 0" >> /etc/fstab
# echo "fdesc /dev/fd fdescfs rw 0 0" >> /etc/fstab
# sysrc -f /etc/sysctl.conf vfs.usermount=1

Voeg je gebruiker toe aan wheel en operator , laad FUSE en definieer apparaatmachtigingen in devfs.conf en geavanceerde regels in devfs.rules (voorbeelden):

# pw usermod TU_USUARIO -G wheel
# pw usermod TU_USUARIO -G operator
# kldload fuse.ko
/etc/devfs.conf:
perm devstat 0444
own /dev/acd0 root:operator
perm /dev/acd0 0666
perm /dev/cd0 0660
perm /dev/da0 0666
...

/etc/devfs.rules:
[devfsrules_common=7]
add path 'ada[0-9]*' mode 666 group operator
add path 'da[0-9]*' mode 666
add path 'cd[0-9]*' mode 666
add path 'mmcsd[0-9]*' mode 666
add path 'usb/*' mode 666 group operator
add path 'video[0-9]*' mode 666
...

Voor Java in oudere browsers of apps, stel shm_allow_removed in en voeg runtimes zoals icedtea-web en openjdk8-jre toe :

# sysrc -f /etc/sysctl.conf kern.ipc.shm_allow_removed=1
# pkg install icedtea-web openjdk8-jre

Grafische drivers, acceleratie en testen

Installeer op NVIDIA GPU's het stuurprogramma en laad het bij het opstarten ; als X geen xorg.conf aanmaakt, genereer er dan een met X -configure. NVIDIA is in veel gevallen plug-and-play.

# pkg install nvidia-driver
# kldload nvidia
# sysrc -f /boot/loader.conf nvidia_load="YES"
# X -configure
# cp /root/xorg.conf.new /etc/X11/xorg.conf

Gebruik op moderne AMD/ATI-systemen drm-510-kmod en firmware; schakel amdgpu in via rc.conf:

# pkg install drm-510-kmod gpu-firmware-kmod
# sysrc kld_list+="amdgpu"

Om de OpenGL-acceleratie te controleren, start u glxinfo en bekijkt u de weergave:

# pkg install mesa-demos
# glxinfo | grep -i render

Als uw geïntegreerde Intel-grafische kaart wordt ondersteund, is i915kms meestal de juiste optie die wordt geladen vanuit rc.conf of loader.conf, afhankelijk van uw hardware.

  Mijn Samsung-tablet laadt niet op. Snelle en gemakkelijke oplossingen

Wi-Fi, geluid en webcam: de essentials

Configureer Wi-Fi met wpa_supplicant en definieer de interface clone. Voor sommige versleutelingsmethoden kunt u WLAN-modules vooraf laden in loader.conf en WPA en DHCP declareren in rc.conf.

# sysrc wpa_supplicant_enable="YES"
# sysrc wlans_ral0="wlan0"
# sysrc ifconfig_wlan0="WPA SYNCDHCP"

Voeg in /etc/wpa_supplicant.conf uw netwerk toe:

network {
  ssid="NOMBRE_DE_TU_WIFI"
  psk="CONTRASEÑA"
}

Controleer voor audio de apparaten en stel indien nodig de standaardgeluidskaart in. Als uw codec wordt herkend, kan snd_driver of een specifieke module (bijv. snd_emu10k1) voldoende zijn.

# cat /dev/sndstat
# sysrc -f /etc/sysctl.conf hw.snd.default_auto=0

Activeer webcamd en cuse voor UVC-cameraondersteuning en test met cheese:

# sysrc webcamd_enable="YES"
# sysrc -f /boot/loader.conf cuse_load="YES"
# service webcamd start
# pkg install cheese

Systeemhulpprogramma's en bureaubladhulpprogramma's

Voor hardware- en partitiediagnostiek installeer je usbutils, pciutils, hw-probe en gpart :

# pkg install usbutils pciutils hw-probe gpart
# lsusb
# lspci
# pciconf -lv
# hw-probe -all -upload
# gpart show

Een desktopsuite die doorgaans goed presteert, bevat multimedia-, kantoorapplicaties en grafische ontwerpsoftware. Veel gebruikers kiezen voor VLC, LibreOffice (in het Spaans), GIMP , Inkscape , evenals webbrowsers en kopieer-/compressieprogramma's.

# pkg install vlc es-libreoffice es-hunspell gimp inkscape firefox-esr chromium \
  brasero gnome-utils gnome-calculator obs-studio openshot qbittorrent \
  audacity simple-scan pinta krita peazip-gtk2 xarchiver epdfview zsync rsync

Om cloudservices naadloos te integreren, is het rclone -programma beschikbaar in de repositories, maar het wordt gebruikt via de terminal ; als je de voorkeur geeft aan eenvoud, is toegang via de browser meestal voldoende en universeel.

Praktische onderhoudsnotities

Houd er rekening mee dat BATCH niet-interactieve installaties in omgevingen met veel pakketten kan versnellen: stel BATCH="yes" in rc.conf in indien nodig. Houd het systeem up-to-date met pkg update/upgrade en verwijder caches en achtergebleven afhankelijkheden met pkg clean en pkg autoremove.

Als een regel in fstab het opstarten verhindert, start dan op in de modus voor één gebruiker en corrigeer de fout met nano; zet een "#" tussen de betreffende regels en laad vervolgens opnieuw vanuit een grafische omgeving, waarbij je de regels zorgvuldig kopieert en plakt.

Met al het bovenstaande zou je pakketten snel moeten kunnen installeren , vanuit Ports kunnen compileren wanneer je fijnafstemming nodig hebt, en, als je hardware het toelaat, Linux-binaries kunnen uitvoeren in de systeemcompatibiliteitsmodus. Op machines met oudere CPU's is de grootste hindernis glibc en de x86-64-v2-basislijn; als dit voor jou geldt, focus dan op native FreeBSD-software of alternatieven zoals WINE. De rest van het ecosysteem (stuurprogramma's, automatisch mounten, printen, lettertypen, taal, wifi, geluid, webcam en hulpprogramma's) is met een paar slimme aanpassingen binnen handbereik, waardoor je een echt solide en prettig BSD-werkstation krijgt.