• Skip to main content
  • Skip to primary sidebar

BSDFreaks.nl

For starters and advanced *BSD users

Tags

brand dmi enschede FreeBSD harddisk Hardware Howto's Howto's move new ports server serverruimte universiteit utwente

Rob

Samba howto

September 27, 2001 by Rob

SAMBA

Wat is SAMBA?
Samba is een netwerk-protocol waarbij o.a. files en printers van een server via het SMB (Server Message Block) protocol te benaderen zijn.
Samba bestaat voor Unix, OS/2, Windows en Novell. Dit betekent dat al deze OS-en in een Samba netwerk opgenomen kunnen worden.
Samba is de ‘open-source’ implementatie van SMB en valt onder de GNU bepalingen; elke ontwikkelaar is vrij de sourcecode van Samba aan te passen naar eigen wensen.
Resultaat is dat Samba dat bovenop Unix draait, krachtiger en sneller is dan de SMB-server van W95 en Windows NT, dankzij de superieure multi-user architectuur, de stabiliteit, veiligheid en snelheid van Unix.
[pagebreak]
Samba is een public-domain file sharing systeem op basis van het binnen windows95 en NT toegepaste standaard SMB protocol. Met Samba kunnen bestanden en printers worden gedeeld tussen Unix, NT, windows95, OS/2 en novell systemen. Het SMB protocol (Server Message Block) is eind jaren 80 door Intel en Microsoft ontwikkeld voor Lanmanager, nu is SMB het onderliggende protocol binnen de Windows95 en NT services “Client for microsoft windows” en “File en porinter sharing for Microsoft networks” Samba is de public-domain Unix server implementatie van SMB en alle bijbehorende services.

Iedere gebruiker heeft bijv. een eigen windows netwerk logon, en een eigen home directory die correspondeert met de Unix home directory: zo komt de kracht van de combinatie van Unix en windows 95 volledig tot z’n recht.

Eigenschappen

File sharing
NT-style /HOME home directories
>Printer sharing
Authenticatie op basis van Unix login of NT-style encrypted passwords
Delegeren van authenticatie naar andere (NT) server
Windows95 Network logon scripts
Uitgebreide Logging
Browse lists met remote announce
WINS name server
Winpopup messaging
Windows password change, inclusief Unix password synchronisatie
Installeren

Installatie

FreeBSD bezit van zichzelf al een port voor samba dus deze kan simpel geinstalleerd worden door het volgende te doen :
[shell]cd /usr/ports/net/samba
make install
[/shell]

nu nog ff een filetje renamen
[shell]mv /usr/local/etc/rc.d/samba.sh.sample /usr/local/etc/rc.d/samba.sh[/shell]

Configuratie en start files

Samba bestaat uit een 2-tal servers en een aantal client- en support programmas. De servers zijn:

smbd de Samba file en print server
nmbd is de samba WINS name server
Smbd en Nmbd kennen slechts 1 configuratie file: /usr/local/etc/smb.conf Alle instellingen worden in dat file aangebracht. Samba kent een groot aantal opties & settings, die worden uitgelegd in de smb.conf manual page. Gelukkig zijn er groepen parameters, die logisch bij elkaar horen – zodat eea overzichtelijk blijft.

Smbd en Nmbd zijn daemons die je vanuit system startup (rc) of via inetd kan laten starten. Nmbd gebruikt poort 137 (netbios-ns), smbd registreert zich op poort 138( netbios-dgm) en 139 (netbios-ssn). Maak daartoe de volgende aanpassing in /etc/services:

[shell]netbios-ns 137/tcp # NETBIOS Name Service
netbios-ns 137/udp # NETBIOS Name Service
netbios-dgm 138/tcp # NETBIOS Datagram Service
netbios-dgm 138/udp # NETBIOS Datagram Service
netbios-ssn 139/tcp # NETBIOS Session Service
netbios-ssn 139/udp # NETBIOS Session Service
[/shell]

De aanbevolen methode voor kleine netwerken is starten vanuit een rc script:

[shell]/us/local/etc/rc.d/samba.sh[/shell]

Configureren

Voor configuratie gaan we naar smb.conf.default dat door samba in /usr/local/etc/ wordt geinstalleerd. Kopieer dat naar smb.conf(cp /usr/local/etc/smb.conf.default /usr/local/etc/smb.conf), en pas het dan aan. Het smb.conf file is ingedeeld in secties:

Een [global] sectie die algemene parameters bevat voor het systeem
Andere [shares] secties, 1 per share met de naam van elke file of printer share.
Een speciale share is [homes], uitleg volgt later

De besproken configuratieopties gebruik ik zelf in mijn home netwerk met Solaris en windows95. UItgelegd worden:

Global configuratie
Browse master
WINS server
File shares
Domain controller & netwerk logon
Password change & synchronisatie vanuit windows
1. Global configuratie

Een aantal van de [global] settings zijn defaults, die in per individuele share weer kunnen worden gewijzigd.

[shell][global]
; Naam van je eigen workgroup naar keuze (die van mij is HOME)
workgroup = HOME
; Alle shares zijn als default te zien in Networkk Neighborhood
browseable = yes
; Unix “,” files zijn default hidden.
hide dot files = yes
; Samba standard defaults voor locking & checking
status = yes
strict locking = yes
; Windows95 is niet case sensitive
case sensitive = no
preserve case = yes
short preserve case = yes
; Samba maakt een logfile aan voor elke PC en user.
log file = /usr/local/samba/var/log.%m
; Laat alleen trusted hosts toe Zie manual page
; Dit in combinatie met andere security opties zoals firewall, etc.
hosts allow = 150.203. EXCEPT 150.203.6.66
;
; Helaas zijn unix passwords case-sesitive, en windows niet. Password level
; is nodig als mixed case in het Unix password wordt gebruikt. Dit geeft het
; maksimaal aantal upper-case karakters in het user password aan dat
; tegen Unix moet worden geprobeerd.
password level = 1
[/shell]

2. Browse master

Om Samba een browse master te laten worden moet je nmbd vertellen dat hij onderhandelingen hierover moet winnen met andere hosts. De global sectie bevat daartoe de volgende opties:

[shell]local master = yes
preferred master = yes
os level = 65
[/shell]
3. Wins server

Handig is het als windows name resolutie door Samba kan worden afgehandeld. WINS is complementair aan DNS. Op zich zou WINS niet nodig hoeven zijn als je al DNS hebt geconfigureerd. Als jouw machine de enige server in het net is, moet je dit aanzetten.

Let op!! Een complicatie is bij kabelgebruik het feit dat er meerdere WINS servers op het segment kunnen zitten! Dat leidt tot conflicten en broadcast storms! Het verdient dan ook met name bij deze setting aanbeveling om de poorten 137 en 138 van de kabel af te sluiten met een tcp wrapper of firewall!!

4. File shares

Maak voor elke windows user een Unix account aan met een home directory. Let op de rechten van de home directory. Voorbeeld: user “myuser”, home dir /home/myuser.
In elk geval moet de [homes] sectie aanwezig zijn in smb.conf. Default is de unix user’s home directory = Homes share. Als je een ander path wilt, kun je dat wijzigen door bijv iets als

path=/data/pchomes/%S
OF
path=/data/users/%U

In je smb.conf [homes] sectie op te nemen.

[shell][homes]
comment = Home Directories
browseable = no
read only = no
; Create mode 750 maakt deze directory non-writable voor group,
; en gesloten voor world.
;
create mode = 0750
[/shell]
Om de network logons en personal profiles te laten werken moet je een share NETLOGON maken:

[shell][NETLOGON]
path = /usr/local/samba/scripts
writeable = no
guest ok = no
; Met het volgende truukje kun je bijv een automatische winpopup message
; laten verschijnen!
; PC’s moete dan wel winpopup in hun Programs-> Startup hebben staan
preexec = csh -c ‘cat /etc/motd | /usr/local/samba/bin/smbclient -M %m’ &
[/shell]

Nu kun je ook andere shared directories aanmaken & toevoegen. Voorbeelden:

[shell]; you might also want this one
[tmp]
comment = Temporary file space
path = /tmp
read only = no
public = yes

[install]
comment = Shared software
path = /home/install
; @group is iedereen in de uninx group “staff”
valid users = @staff
; Force user maakt samba SUID in die directory. root blijft dus altijd owner
; van files in die share. Let op security, doe dit NOOIT voor fileshares
; die van buitenaf zichtbaar zijn!!!
force user = root
force group = other
read only = no
create mask = 0755
directory mask = 0755

[web]
path = /home/apache/htdocs
read only = no
writeable = yes
valid users = mist,webmaster
force user = webmaster
[/shell]

5. Domain Controller & netwerk login

Dit is echt een heel fijne eigenschap van Samba. Je PC geeft je een network logon dialoog, persoonlijke settings, menus & desktop, een eigen home directory. De settings zijn de volgende:

[shell]; Users worden geverifieerd met een Unix account. Voor elke login moet
; dus een Unix account bestaan
security = user
domain master = yes
; Voor Logon scripts moet een [homes] share en een [NETLOGON] share bestaan,
; met een logon script voor elke gebruiker. zie verderop.
domain logons = yes
logon script = %U.bat
[/shell]

Zoals eerder gezegd, om de network logons te activeren moet de [homes] en [NETLOGON] share bestaan, en er moet een network logon script bestaan. Doe het volgende:

Maak de directory /usr/local/samba/scripts aan, die je in de [NETLOGON] share hebt genoemd. Zet daarin een script “myuser.bat”, “myuser” de naam van de unix login user. Dat script moet je aanmaken met windows, vanwegen de “CRLF” conversie. Dit script bevat bijvoorbeeld de volgende regels: (afhankelijk van de shares die je hebt aangemaakt)
De naam “myhost” is de naam van de unix machine zoals je die met “uname” of “hostname” ziet, dat is de naam waarmee Samba zich als default bekend maakt in WINS / browser.

Om personal profiles te laten weken moet H: als home directory worden gebruikt. Verder moet er een directory “profile” in de users’ home directory bestaan

[shell]rem
rem synchroniseer de tijd met de unix host.
rem
net time MYHOST /set /yes
net use H: /HOME /yes
rem
rem andere shares:
rem
net use X: MYHOSTINSTALL /yes
net use P: MYHOSTTMP /yes
exit
[/shell]
5. Password synchonisatie

Om passwords tussen Unix en NT te kunnen synchroniseren moet je het volgende doen:

OMdat Unix geen windows encrypted passwords ondersteunt, moet je ook een password file “smbpasswd” aanmaken met users’ encrypted windows passwords. Elke samba user moet daarom ook worden toegevoegd met het commando “smpbasswd”
Maak daartoe eerste een leeg file “touch /usr/local/samba/private/smbpasswd” aan , en voeg de users toe met het “smbpasswd” commando.
Check vervolgens het “password chat” script van je Linux box, en pas evt dit chat script aan in onderstaande regels.

[shell]encrypt passwords = yes
;
unix password sync = True
passwd program = /bin/passwd %u
passwd chat = Newspassword* %nn *newspassword* %nn *changed*
[/shell]

Aanloggen aan Linux ligt gevoelig bij Windows ’98.
Ook al heb je Samba als service draaien dan is het niet mogelijk om je home directory te benaderen. Dit komt omdat win98 passwords encrypted heeft. Om dit te verhelpen het volgende:

START REGEDIT op je workstation

Klik op + van HKey_Local_Machine
Klik op System
Klik op CurrentControlSet
Klik op Services
Klik op VxD
BROWSE naar VNETSUB
Klik vervolgens in het menu op BEWERKEN -> NIEUW-> DWORD waarde (DWord value)
Voer in (case censitive) “EnablePlainTextPassword” en druk op ENTER
Klik vervogens op de nieuwe sleutel en verander de waarde 0 (nul) in 1 (èèn)
Start win ’98 opnieuw en log aan met een username en password die ook op je linux machine bekend is met de nodige rechten. Daarna bv. in de DOS prompt intikken: “net use h: linuxhostnameusername” Bijv: net use h:simplyredbennie
That’s all for now.

——————————————————————————–
Tot slot de basisconfig van Samba…….

——————————————————————————–
[shell]
# file /etc/smb.conf

#======================= Global Settings =====================================
[global]

# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = Linux_server

# server string is the equivalent of the NT Description field
server string = Linux Samba

# This option is important for security. It allows you to restrict
# connections to machines which are on your local network. The
# following example restricts access to two C class networks and
# the “loopback” interface. For more examples of the syntax see
# the smb.conf man page
hosts allow = 192.168.1. 127.

# if you want to automatically load your printer list rather
# than setting them up individually then you’ll need this
printcap name = /etc/printcap
load printers = yes

# It should not be necessary to spell out the print system type unless
# yours is non-standard. Currently supported print systems include:
# bsd, sysv, plp, lprng, aix, hpux, qnx
printing = bsd

# Uncomment this if you want a guest account, you must add this to /etc/passwd
# otherwise the user “nobody” is used
; guest account = pcguest

# this tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/log.%m

# Put a capping on the size of the log files (in Kb).
max log size = 50

# Security mode. Most people will want user level security. See
# security_level.txt for details.
security = user

# Use password server option only with security = server
; password server =

# Password Level allows matching of _n_ characters of the password for
# all combinations of upper and lower case.
; password level = 8

# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
# Do not enable this option unless you have read those documents
; encrypt passwords = yes
; smb passwd file = /etc/smbpasswd

# Unix users can map to different SMB User names
; username map = /etc/smbusers

# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
; include = /etc/smb.conf.%m

# Most people will find that this option gives better performance.
# See speed.txt and the manual pages for details
socket options = TCP_NODELAY

# Configure Samba to use multiple interfaces
# If you have multiple network interfaces then you must list them
# here. See the man page for details.
; interfaces = 192.168.12.2/24 192.168.13.2/24

# Configure remote browse list synchronisation here
# request announcement to, or browse list sync from:
# a specific host or from / to a whole subnet (see below)
; remote browse sync = 192.168.3.25 192.168.5.255
# Cause this host to announce itself to local subnets here
; remote announce = 192.168.1.255 192.168.2.44

# Browser Control Options:
# set local master to no if you don’t want Samba to become a master
# browser on your network. Otherwise the normal election rules apply
; local master = no

# OS Level determines the precedence of this server in master browser
# elections. The default value should be reasonable
; os level = 33

# Domain Master specifies Samba to be the Domain Master Browser. This
# allows Samba to collate browse lists between subnets. Don’t use this
# if you already have a Windows NT domain controller doing this job
; domain master = yes

# Preferred Master causes Samba to force a local browser election on startup
# and gives it a slightly higher chance of winning the election
; preferred master = yes

# Use only if you have an NT server on your network that has been
# configured at install time to be a primary domain controller.
; domain controller =

# Enable this if you want Samba to be a domain logon server for
# Windows95 workstations.
; domain logons = yes

# if you enable domain logons then you may want a per-machine or
# per user logon script
# run a specific logon batch file per workstation (machine)
; logon script = %m.bat
# run a specific logon batch file per username
; logon script = %U.bat

# Where to store roving profiles (only for Win95 and WinNT)
# %L substitutes for this servers netbios name, %U is username
# You must uncomment the [Profiles] share below
; logon path = %LProfiles%U

# Windows Internet Name Serving Support Section:
# WINS Support – Tells the NMBD component of Samba to enable it’s WINS Server
; wins support = yes

# WINS Server – Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z

# WINS Proxy – Tells Samba to answer name resolution queries on
# behalf of a non WINS capable client, for this to work there must be
# at least one WINS Server on the network. The default is NO.
; wins proxy = yes

# DNS Proxy – tells Samba whether or not to try to resolve NetBIOS names
# via DNS nslookups. The built-in default for versions 1.9.17 is yes,
# this has been changed in version 1.9.18 to no.
dns proxy = no

# Case Preservation can be handy – system default is _no_
# NOTE: These can be set on a per share basis
; preserve case = no
; short preserve case = no
# Default case is normally upper case for all DOS files
; default case = lower
# Be very careful with case sensitivity – it can break things!
; case sensitive = no

#============================ Share Definitions ==============================
[homes]
comment = Home Directories
browseable = yes
writable = yes
create mode=0750

# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /home/netlogon
; guest ok = yes
; writable = no
; share modes = no

# Un-comment the following to provide a specific roving profile share
# the default is to use the user’s home directory
;[Profiles]
; path = /home/profiles
; browseable = no
; guest ok = yes

# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
# Set public = yes to allow user ‘guest account’ to print
guest ok = no
writable = no
printable = yes

# This one is useful for people to share files
[tmp]
comment = Temporary file space
path = /tmp
read only = no
public = yes

# A publicly accessible directory, but read only, except for people in
# the “staff” group
;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = @staff

# Other examples.
#
# A private printer, usable only by fred. Spool data will be placed in fred’s
# home directory. Note that fred must have write access to the spool directory,
# wherever it is.
;[fredsprn]
; comment = Fred’s Printer
; valid users = fred
; path = /homes/fred
; printer = freds_printer
; public = no
; writable = no
; printable = yes

# A private directory, usable only by fred. Note that fred requires write
# access to the directory.
;[fredsdir]
; comment = Fred’s Service
; path = /usr/somewhere/private
; valid users = fred
; public = no
; writable = yes
; printable = no

# a service which has a different directory for each machine that connects
# this allows you to tailor configurations to incoming machines. You could
# also use the %u option to tailor it by user name.
# The %m gets replaced with the machine name that is connecting.
;[pchome]
; comment = PC Directories
; path = /usr/pc/%m
; public = no
; writable = yes

# A publicly accessible directory, read/write to all users. Note that all files
# created in the directory by users will be owned by the default user, so
# any user with access can delete any other user’s files. Obviously this
# directory must be writable by the default user. Another user could of course
# be specified, in which case all files would be owned by that user instead.
;[public]
; path = /usr/somewhere/else/public
; public = yes
; only guest = yes
; writable = yes
; printable = no

# The following two entries demonstrate how to share a directory so that two
# users can place files there that will be owned by the specific users. In this
# setup, the directory should be writable by both users and should have the
# sticky bit set on it to prevent abuse. Obviously this could be extended to
# as many users as required.
;[myshare]
; comment = Mary’s and Fred’s stuff
; path = /usr/somewhere/shared
; valid users = mary fred
; public = no
; writable = yes
; printable = no
; create mask = 0765
[/shell]

Gejat en bijgewerkt (www.linux-nl.cx)

Filed Under: Networking

[FreeBSD] Hoe een kernel te bakken?

September 27, 2001 by Rob

In deze howto wordt beschreven hoe je zelf een kernel kan bakken.

Zorg ervoor dat je als root bent ingelogged 🙂
Als je denkt dat je niet veilig bent moet je dit eigenlijk allemaal in Singel User modus doen…..
maaja… nix moet 🙂
Dus neem de tijd en ga rustig zitten want dit gaat ff duren afhankelijk van de snelheid van je FreeBSD bak… (Pentium 100 -> 2:00 uur , Pentium III 500 -> 0:15 uur)

[pagebreak]
Ga dan naar /sys/i386/conf :
[shell]# cd /sys/i386/conf
[/shell]

Er staan 3 files in deze dir, 2 daarvan zijn belangrijk bij het bakken van een kernel.
GENERIC (De standaard kernel) en LINT (Alle opties die je in de kernel kan bakken).
Kopieer GENERIC naar NEWKERNEL (welke naam je maar wilt):
[shell]# cp GENERIC NEWKERNEL
[/shell]

Nu kan je NEWKERNEL openen in je favorite text editor en beginnen met aanpassen 🙂
[shell]# ee NEWKERNEL
[/shell]

Heb je veel tijd dan kan je wat gaan rondsnuffelen in LINT en in /usr/share/doc/handbook/kernel*.html

Als je denkt NEWKERNEL helemaal te hebben bijgewerkt kan je um gaan configgen:
[shell]# config NEWKERNEL
[/shell]
of
[shell]# /usr/sbin/config NEWKERNEL
[/shell]
Als alles goed gegaan is:
[shell]Don’t forget to do a “make depend”
Kernel build directory is ../../compile/NEWKERNEL
[/shell]

Nu ga je dus naar /sys/compile/NEWKERNEL:
[shell]# cd ../../compile/NEWKERNEL
[/shell]
en type je :
[shell]# make depend
[/shell]
als ie klaar is vervolg je je kookkunsten met
[shell]# make
# make install
[/shell]

nu ben je klaar met het bakken 🙂
de oude kernel kan je vinden onder de naam /kernel.old

[shell]# reboot
[/shell]

nog een linkje :
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html

Have phun 🙂

Filed Under: Kernel

[FreeBSD] CVSUP / STABLE Mini-Howto (updated)

September 27, 2001 by Rob

Deze mini-howto is bedoelt als een algemene inleiding voor updaten van een draaiende FreeBSD systeem naar de STABLE branche en het updaten van de ports.

Oké … je hebt dus een FreeBSD release geïnstalleerd en het draait prima … maar je hebt gehoord dat er allerlei bugs zijn gevonden die je systeem blootstellen aan allerlei exploits en andere enge dingen die je niet wilt meemaken …. wat nou ?
[pagebreak]
Er is een simpele oplossing om je systeem up-to-date te houden met de cvsup repository … Dat wil zeggen : elke keer als er een verandering in de systeem sources plaatsvindt word het naar een centrale cvs server geupload en daarna verspreid over allerlei mirrors‚ zo kan je de source downloaden en opnieuw compileren‚ dan zijn je binary’s en systeem up-to-date.
De CVS source tree kent 2 grote trees: de STABLE en CURRENT… de namen spreken voor zich.
CURRENT is niet bedoelt voor normale gebruiker of systemen die belangrijke dingen moeten doen… je kan het vergelijken met een beta-test systeem die bedoeld is voor de meer geavanceerde gebruiker en ontwikkelaar.
De STABLE daarentegen is de tree die je moet hebben om up-to-date blijven en voor alle laatste fixes tegen exploits e.d.
Als je gebruik maakt van de ports dan is het ook mogelijk (en verstandig) om de laatste ports op te halen‚ want die bevatten dan ook allerlei patches fixes en updates.
Hier ga ik een uitleg geven hoe je het snelst alles in een keer kan ophalen en installeren.

Hoe ga je te werk en wat heb je nodig :
1. Algemene kennis van FreeBSD zoals een port of package installeren en werken met een shells.
2. Een draaiende FreeBSD systeem met netwerk of dialup
3. cvsup-bin package

[b]De eerste stap … de cvsup package.[/b]
[b][i]Voor alle handelingen die hieronder beschreven staan heb je de rechten van de root gebruiker nodig[/b][/i]

[shell]# pkg_add -r cvsup-without-gui[/shell]

[b]Het bewerken van de config file voor cvsup[/b]

Nadat je de cvsup-bin package geinstalleerd hebt heb je een config file nodig om de sources naar je wens op te halen‚ voorbeelden zijn te vinden in /usr/share/examples/cvsup/ je hebt de stable-supfile nodig.
Kopieer die file naar /etc/
[shell]# cp /usr/share/examples/cvsup/stable-supfile /etc
[/shell]
en ga het bewerken met ee of vi of een editor naar je keuze
Ikzelf ga voor de ee editor die standaard met FreeBSD meegeinstalleerd word.
[shell]# ee /etc/stable-supfile
[/shell]
De file self bevat bijna alle informatie (in het engels) die je nodig hebt om het te bewerken‚ maar ik zal alles even kort doornemen:
Eerst moet je een mirror opgeven waar je de laatse sources wilt ophalen. De snelste mirrors voor nederland zijn cvsup.nl.freebsd.org, cvsup2.nl.freebsd.org en cvsup5.nl.freebsd.org.
Zo ziet je eerste regel uit :
[shell]*default host=cvsup.nl.FreeBSD.org[/shell]
[b]LET OP ! DE “*” VOOR DE REGELS MOET BLIJVEN STAAN!![/b]
Standaard worden de sources opgeslagen in /usr/src daar kun je ze ook het beste laten.
Dus de volgende 2 regels kun je ook onveranderd laten. Het kan wel handig zijn als je meerdere sourcetrees wilt opslaan bijvoorbeeld eentje van vandaag en eentje van vorige week dan kan je de paths veranderen. Aangezien wij het nu niet willen‚ laten we de volgende 2 regels zo eruitzien:
[shell]*default base=/usr
*default prefix=/usr[/shell]
daarna moet je aangeven welke branche je wilt ophalen CURRENT of STABLE en welke release tree je wilt. . We hebben de stable van de 4.0 releasetree nodig onze regel gaat er zo uitzien :
[shell]*default release=cvs tag=RELENG_4[/shell]
Als je iets conservatiever bent, dien je tag te veranderen in:
[shell]RELENG_4_9[/shell]
voor de security updates van 4.9.
Voor 4.8 is het natuurlijk RELENG_4_8

Deze regel kun je gewoon laten staan:
[shell]*default delete use-rel-suffix[/shell]
Deze regel zorgt ervoor dat de sources ingepakt naar je toe gestuurd worden zodat je het sneller kan ophalen. Het wordt dan vervolgens door jou machine weer uitgepakt‚ het is niet aan te raden om deze regel weg te halen behalve als je erg snelle verbinding hebt.
[shell]*default compress[/shell]
Dat waren de algemene instellingen voor het cvsup process nu moet je kiezen wat je wilt ophalen. Ik persoonlijk haal altijd de complete source op met “src-all” regeltje maar als je een trage verbinding hebt en je weet zeker wat je wel en niet nodig heb dan kan je specifieke keuzes maken. Bijvoorbeeld als je alleien de kernel source wilt ophalen. In deze voorbeeld zal ik het bij “src-all” houden‚ het is ook aan te raden voor iemand die het voor het eerst doet en als je niet zeker weet wat je wel en niet nodig hebt.
Dus nog een regel erbij (let op hier dus geen “*” ervoor):
[shell]src-all[/shell]
Met een extra regeltje kan je ook ervoor zorgen dat je de laatste ports ophalt‚ deze heb je niet per se nodig.
[shell]ports-all tag=.[/shell]
Nu we een complete file hebben‚ hier nog een overzicht van hoe het eruitziet in zijn geheel:
[shell]*default host=cvsup.nl.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_4
*default delete use-rel-suffix
*default compress
src-all
ports-all tag=.
[/shell]
Sla je bestand op en geef het volgende commando op in je shell (ik raad het niet aan om cvsup update onder X te laten verlopen‚ dit voorbeeld is bedoeld voor een normale shell)
[shell]# cvsup -g -L 2 /etc/stable-supfile
[/shell]
Hierna begint de cvsup process‚ afhankelijk van je verbinding en de drukte op de cvsup server kan het even duren.
Tip: als je alleen de ports wilt updaten dan kun je de regeltje met “src-all” wegquoten met een “#” ervoor zo word ie genegeerd. zelfde geld voor ports-all.

[b]De “Wereld” opnieuw bouwen. oftwel de sourcetree compileren … [/b]

Nadat je de laatste sources met success hebt opgehaald rest je nog een laatste taak je moet de source tree (inclusief de kernel) opnieuw compileren en in het systeem integreren. Het is makkelijker dan het klinkt maar het kan wel je systeem min of meer in een onbruikbare staat achterlaten als je het niet goed doet…. En het kan behoorlijk lang duren afhankelijk van de snelheid van je CPU en harde schijven. Gelukkig hoef je er niet de hele tijd bij te zijn.
Nadat cvsup helemaal klaar is met het ophalen van de sources doe je het volgende (let op als je remote via ssh werkt wordt zo de verbinding verbroken, dus voer deze stap niet uit als je niet fysiek bij server kan)
[shell]# init 1 [/shell]
Hiermee word je system naar de “single user mode” gebracht zodat je het compileren van je sources kan beginnen zonder dat je andere draiende services stoort en zonder dat andere gebruiker veel processor tijd gebruiken. Het is over algemeen aan te raden om het in single user mode te doen‚ maar het kan ook in multiuser mode.
Nadat je de “single user mode” shell voor je hebt doe het volgende:
[shell]# cd /usr/src/
# make -j4 buildworld [/shell]
De -j4 is snelste op single CPU systemen heb je dual, maak er dan -j8 van ofzo.

Dit gaat even duren‚ ga ondertussen een film kijken ofzo ….. 🙂
Zodra je “wereld” klaar is is er nog een laatste handeling die je moet doen voordat je terug kan naar je nieuwe up-to-date systeem …. Een nieuwe kernel maken … zie voor meer details de kernel howto‚ hieronder nog’s snel hoe je het kan doen als je al een kernel config file hebt:
[shell]# make buildkernel KERNCONF=KERNEL[/shell]
ik ga er vanuit dat je configfile KERNEL heet
[shell]# make installkernel KERNCONF=KERNEL[/shell]
Als alles goed gaat en je kernel is geinstalleerd
Hierna gaan we de nieuwe binary’s installeren:
[shell]# cd /usr/src
# make installworld[/shell]

Omdat config file’s geweest kunnen zijn dienen we deze ook nog bij te werken. Dit doen we met mergemaster.
[shell]#mergemaster[/shell]

Als laatste gaan we stand/sysinstall up to date brengen:
[shell]# cd /usr/src/release/sysinstall
# make all install[/shell]

Om de boel af te ronden dient er alleen nog gereboot te worden:
[shell]# reboot [/shell]
Nadat je systeem gerebot is is het up-to-date. Om snel te zien welke release je hebt kun je dit doen:
[shell]$ uname -a[/shell]

Nog een Tip : je kan je ports wekelijks laten verversen met cron‚ zie [i]man cron[/i] en[i] man crontab[/i]
Veel success !!!

Zie ook de hofdstuk over CVSUP in de FreeBSD Handbook:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html

P.S. Er zijn nog andere methoden om je source te cvsupen dan de cvsup-bin package
maar deze methode is wel de meest praktische in mijn ogen.

Deze howto is geschreven door Robert Vartanov (Fenix) en mag verandert worden door iedereen die denkt het beter te weten of laatste veranderingen of methodes wil toevoegen of wijzigen.
Graag onvang ik alle opmerkingen vragen en veranderingen per email op fenix@home.nl.

Ik ben niet verantwoordelijk voor de gevolgen die kunnen ontstaan tijdens het verrichten van de in deze howto genoemde handelingen.

Filed Under: Installation

  • « Go to Previous Page
  • Page 1
  • Interim pages omitted …
  • Page 81
  • Page 82
  • Page 83

Primary Sidebar

Pages

  • Howto overview
  • iPhone mail setup
  • Links

Categories

  • *BSD news from the past
  • Console
  • Firewall
  • FreeBSD
  • FTP server
  • Hardware
  • Howto's
  • Installation
  • Kernel
  • Mail server
  • Miscellaneous
  • Networking
  • News
  • News imported
  • OpenBSD
  • Operating System
  • Programming
  • Security
  • Site news
  • Software
  • Sysutils
  • Web server

Recent Comments

  • admin on Qmail FreeBSD Mail Toaster Spam en virus control addon
  • admin on [FreeBSD] Het opzetten van een Vlan
  • Jap on [FreeBSD] Installing GlFtpd
  • Jap on [FreeBSD] Installing GlFtpd
  • Crashjuh on Wireless access point met OpenBSD + VPN

Copyright © 2025 · Genesis Sample Theme on Genesis Framework · WordPress · Log in