Buonasera, dopo molti anni di inattivitá sul forum ho deciso di tornare con una guida che spero sará utile alla community.
Buona parte degli user della community probabilmente conoscerá giá i concetti ma mi sembra abbastanza comodo avere tutta la risorsa in un'unica guida.
Partiamo dunque con la creazione di una jail a 32 bit all'interno di FreeBSD per poi installare e configurare la funzionalita CCACHE che aiuterá a migliorare le performance di compilazione una volta compilata la prima volta la Source di gioco.
Nel caso la connettivitá ad internet dovesse mancare all'interno della Jail copiare il file resolv.conf all'interno dell'etc della jail:
Creare un file jail.conf per indicare le configurazioni della jail all'interno della cartella /etc/ della propria VM:
Abilitare l'avvio della jail all'avvio della virtual machine:
Per poter quindi continuare con la nostra guida sará necessario riavviare la VM ed entrare quindi nella jail per fare le prime configurazioni, avviamo quindi la jail
con il comando jexec 1 tcsh indicato sopra.
Come primi passaggi sará necessario andare quindi a impostare una password per la nostra jail e configurare gli accessi ssh.
Dopo essere usciti e aver salvato questo file sará necessario procedere ad installare tutti i pacchetti necessarii per la compilazione.
Dopo aver fatto ció potremo andare ad impostare come avvio automatico i servizi sshd e mysql:
Andiamo quindi a configurare il CCACHE che servirá a velocizzare la velocitá di compilazione della nostra sorgente una volta compilata la prima volta.
Per poter utilizare la funzione CCACHE nel Makefile dovrete indicare dove indicata la versione GCC anche CCACHE, quindi:
Una volta terminato il tutto potrete quindi riavviare la VM e collegarvi direttamente alla porta impostata, nel mio esempio la 223 in modo da accedere direttamente alla jail.
P.S. Se vorrete utilizzare il mysql all'interno della Jail dovrete disattivarlo dalla VM principale dal file /etc/rc.conf e spegnere il servizio mysql dalla VM (service mysql-server stop)
Spero di non aver saltato alcun passaggio, nel caso riscontraste un qualsiasi problema non esitate a farmelo notare.
Un cordiale saluto.
TOXZIK AkA RIOG
Buona parte degli user della community probabilmente conoscerá giá i concetti ma mi sembra abbastanza comodo avere tutta la risorsa in un'unica guida.
Partiamo dunque con la creazione di una jail a 32 bit all'interno di FreeBSD per poi installare e configurare la funzionalita CCACHE che aiuterá a migliorare le performance di compilazione una volta compilata la prima volta la Source di gioco.
mkdir -p /home/jails/jailsrc
cd /home/jails/jailsrc
fetch http://ftp.freebsd.org/pub/FreeBSD/releases/i386/i386/12.1-RELEASE/base.txz
tar xpf base.txz;rm -rf boot;rm base.txz
cd /home/jails/jailsrc
fetch http://ftp.freebsd.org/pub/FreeBSD/releases/i386/i386/12.1-RELEASE/base.txz
tar xpf base.txz;rm -rf boot;rm base.txz
cp /etc/resolv.conf /home/jails/jailsrc/etc/resolv.conf
ee /etc/jail.conf
#Incollare quindi il testo sottostante all'interno del file jail.conf dopodiche premere il tasto Esc della tastiera e quindi salvare dando invio.
allow.raw_sockets = 1;
exec.clean;
exec.system_user = "root";
exec.jail_user = "root";
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.consolelog = "/var/log/jail_${name}_console.log";
mount.devfs;
allow.mount;
allow.set_hostname = 0;
allow.sysvipc = 0;
path = "/home/jails/${name}";
jailsrc {
host.hostname = "jailsrc.freebsd.org";
ip6 = "inherit";
ip4 = "inherit";
}
#Incollare quindi il testo sottostante all'interno del file jail.conf dopodiche premere il tasto Esc della tastiera e quindi salvare dando invio.
allow.raw_sockets = 1;
exec.clean;
exec.system_user = "root";
exec.jail_user = "root";
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.consolelog = "/var/log/jail_${name}_console.log";
mount.devfs;
allow.mount;
allow.set_hostname = 0;
allow.sysvipc = 0;
path = "/home/jails/${name}";
jailsrc {
host.hostname = "jailsrc.freebsd.org";
ip6 = "inherit";
ip4 = "inherit";
}
sysrc jail_enable="YES"
# Avviare il servizio jail senza impostare enable="YES"
service jail onestart
# Avviare il servizio jail impostando enable="YES"
service jail start
# Visualizzare la lista delle jail in esecuzione
jls
# Accedere alla shell di una specifica jail <id>
jexec 1 tcsh
service jail onestart
# Avviare il servizio jail impostando enable="YES"
service jail start
# Visualizzare la lista delle jail in esecuzione
jls
# Accedere alla shell di una specifica jail <id>
jexec 1 tcsh
con il comando jexec 1 tcsh indicato sopra.
Come primi passaggi sará necessario andare quindi a impostare una password per la nostra jail e configurare gli accessi ssh.
passwd
ee /etc/ssh/sshd_config
Cambiare il parametro della porta rimuovendo il commento (#) e indicando quindi una porta a vostro piacimento per l'accesso in SSH (io utilizzo nello specifico la 223)
e in seguito permettere l'accesso come root:
Trovare
#Port 22
e renderla quindi
Port 223
Trovare in seguito:
#PermitRootLogin no
e sostituirlo con:
PermitRootLogin yes
ee /etc/ssh/sshd_config
Cambiare il parametro della porta rimuovendo il commento (#) e indicando quindi una porta a vostro piacimento per l'accesso in SSH (io utilizzo nello specifico la 223)
e in seguito permettere l'accesso come root:
Trovare
#Port 22
e renderla quindi
Port 223
Trovare in seguito:
#PermitRootLogin no
e sostituirlo con:
PermitRootLogin yes
pkg install gmake && pkg install makedepend && pkg install subversion && pkg install devil && pkg install python27 && pkg install gcc8 && pkg install mysql55-client mysql55-server && pkg install ccache && pkg install gdb
ee /etc/rc.conf
Inserire in questo file quanto segue dopo di che chiudere e salvare.
#Enable SSH
sshd_enable="YES"
#Enable Mysql
mysql_enable="YES"
Inserire in questo file quanto segue dopo di che chiudere e salvare.
#Enable SSH
sshd_enable="YES"
#Enable Mysql
mysql_enable="YES"
ee /etc/make.conf
#Inserire in questo file quanto segue: (L'if é uno screenshot perché attualmente non mi é stato possibile aggiungere la funzione nel post)
.if !defined(NO_CCACHE)
CC= /usr/local/libexec/ccache/world-cc
CXX= /usr/local/libexec/ccache/world-c++
.endif
NO_CCACHE= yes
.endif
#Salvare quindi e chiudere il file.
#Aprire in seguito CSHRC
ee /.cshrc
#Inserire all'interno del file:
# set ccache varibles
setenv PATH /usr/local/libexec/ccache:$PATH
setenv CCACHE_PATH /usr/bin:/usr/local/bin
setenv CCACHE_DIR /var/tmp/ccache
setenv CCACHE_LOGFILE /var/log/ccache.log
# set ccache temp size to 512MB (default 1GB)
if ( -x /usr/local/bin/ccache ) then
/usr/local/bin/ccache -M 512M > /dev/null
endif
#Per poter verificare l'utilizzo di memoria del CCACHE sará possibile utilizzare il comando sottostante.
ccache -s
#Inserire in questo file quanto segue: (L'if é uno screenshot perché attualmente non mi é stato possibile aggiungere la funzione nel post)
.if !defined(NO_CCACHE)
CC= /usr/local/libexec/ccache/world-cc
CXX= /usr/local/libexec/ccache/world-c++
.endif
NO_CCACHE= yes
.endif
#Salvare quindi e chiudere il file.
#Aprire in seguito CSHRC
ee /.cshrc
#Inserire all'interno del file:
# set ccache varibles
setenv PATH /usr/local/libexec/ccache:$PATH
setenv CCACHE_PATH /usr/bin:/usr/local/bin
setenv CCACHE_DIR /var/tmp/ccache
setenv CCACHE_LOGFILE /var/log/ccache.log
# set ccache temp size to 512MB (default 1GB)
if ( -x /usr/local/bin/ccache ) then
/usr/local/bin/ccache -M 512M > /dev/null
endif
#Per poter verificare l'utilizzo di memoria del CCACHE sará possibile utilizzare il comando sottostante.
ccache -s
#Stringa originale
CC = g++8
#Sostituirla con:
CC = ccache g++8
CC = g++8
#Sostituirla con:
CC = ccache g++8
P.S. Se vorrete utilizzare il mysql all'interno della Jail dovrete disattivarlo dalla VM principale dal file /etc/rc.conf e spegnere il servizio mysql dalla VM (service mysql-server stop)
Spero di non aver saltato alcun passaggio, nel caso riscontraste un qualsiasi problema non esitate a farmelo notare.
Un cordiale saluto.
TOXZIK AkA RIOG