Introduccion:
Vamos a sincronizar y/o actualizar las fuentes de FreeBSD (Kernel + World) con csup, con esto podemos tener un FreeBSD con las ultimas actualizacion dentro de RELEASE o para pasar de una version a otra.
Requerimientos:
* FreeBSD instalado
* Conexion a Internet
Chapter 24 Updating and Upgrading FreeBSD
25.7 Rebuilding “world”
25.8 Deleting Obsolete Files, Directories and Libraries
Proceso:
Como root ejecutamos los siguientes comandos y esperamos a que terminen:
# csup -h cvsup15.us.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/standard-supfile
# csup -h cvsup16.us.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/ports-supfile
# csup -h cvsup17.us.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/doc-supfile
FreeBSD Updating Upgrading
Rebuilding “world”
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
Nota:
Buen momento para poner sopurte de CUPS en /etc/make.conf
# edit /etc/make.conf
agregar las siguientes lineas:
# 7 Fine Tuning CUPS-Related Ports
# http://www.freebsd.org/doc/en/articles/cups/article.html
#
WITH_CUPS=YES
CUPS_OVERWRITE_BASE=YES
WITHOUT_LPR=YES
#
# Qt 4 can be built with optional support for:
# - Common UNIX Printing System (CUPS)
# - Network Audio System (NAS)
# - Qt style that renders using GTK (QGTKSTYLE)
QT4_OPTIONS= CUPS NAS QGTKSTYLE
En este punto nos encontramos con dos opciones, podemos construir un kernel GENERIC o uno Custom (personalizado) en donde podemos adicionarle o quitarle modulos al kernel. Mire que hay comandos que son comunes para ambos y otros que estan separados en columnas, ejecute segun lo que este compilando.
1. # cd /usr/src
2. # make buildworld
Building a
GENERIC Kernel or Custom Kernel (comandos extras o diferentes)
# cd /usr/src/sys/amd64/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/MYKERNEL
# ln -s /root/kernels/MYKERNEL
# cd /usr/src
# edit /root/kernels/MYKERNEL
cambie la linea:
ident GENERIC
por:
ident MYKERNEL
(agrege sus opciones, ejemplo: options QUOTA)
3. # make buildkernel # make buildkernel KERNCONF=MYKERNEL
Installing a
GENERIC Kernel or Custom Kernel (comandos extras o diferentes)
4. # make installkernel # make installkernel KERNCONF=MYKERNEL
5. # shutdown -r now <- Opcional, si no reinicia continue en el paso 6.
After installkernel finishes successfully, you should boot in single user mode
(i.e., using boot -s from the loader prompt). Then run:
# fsck -p
# mount -u /
# mount -a -t ufs
# swapon -a
# adjkerntz -i
6. # mergemaster -p
How should I deal with this? [Leave it for later]
(i upgrade lo recomendado, d mantener archivo viejito si le hice cambios)
...
*** Comparison complete
Do you wish to delete what is left of /var/tmp/temproot? [no] (enter)
How should I deal with this? [Leave it for later] (enter)
(i upgrade lo recomendado, d mantener archivo viejito si le hice cambios)
7. # make installworld
8. # mergemaster
How should I deal with this? [Use the existing /var/tmp/temproot] (enter)
...
*** Comparison complete
Do you wish to delete what is left of /var/tmp/temproot? [no] (enter)
...
*** You installed a new aliases file, so make sure that you run
Would you like to run it now? y or n [n] (enter)
9. # reboot
25.8 Deleting Obsolete Files, Directories and Libraries
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/make-delete-old.html
10. # cd /usr/src
11. # make check-old
12. # yes|make delete-old
13. # make delete-old-libs
---------------------------------------
Si algo sale mal y el nuevo kernel no funciona bien, puedo regresar al anterior...
Al iniciar el equipo nos muestra el listado de opciones de inicio de FreeBSD
6. Escape to loader prompt
Type '?' for a list of commands, 'help' for more detailed help.
OK
(escribimos)
unload kernel (enter)
(escribimos)
boot /boot/kernel.old/kernel (enter)
Luego podemos renombrar el kernel problematico y renombrar el kernel anterior que funciona (kernel.old)
# mv /boot/kernel /boot/kernel.bad
# mv /boot/kernel.old /boot/kernel
---------------------------------------
Instalar nuestro primer port "portmaster"
Es un programa para mantener todos los ports actualizados
# whereis portmaster
portmaster: /usr/ports/ports-mgmt/portmaster
# cd /usr/ports/ports-mgmt/portmaster
# make install clean
Suele pasar que luego de instalar algun port, al ejecutar el comando, nos muestre
"Command not found."
Para que detecte el nuevo port instalado ejecutamos:
# rehash
Comandos basicos de portmaster:
# portmaster -L <- Lista los ports y las actualizaciones disponibles
# portmaster -a <- Actualiza todos los ports instalados
# portmaster -af <- Actualiza y recompila todos los ports instalados
# portmaster -a -x nombreport <- Actualiza todos los port excepto
nombreport, para agregar otros ports -x nombreport -x nombreport2
Una opcion muy util es "-d always clean distfiles" con eso simpre mantendra nuestro directorio distfiles con los fuentes de las versiones de los ports instalados y borrara los fuentes de ports viejos. Lo contrario (mantener los fuentes de los ports viejos y nuevos) seria "-D no cleaning of distfiles".
Nota:
En el comando
# csup -h cvsup15.us.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/standard-supfile
Estamos usando el archivo standard-supfile que nos mantiene en la misma version, si queremos cambiar a otra, por ejemplo de 8.2 RELEASE a 8.3 RELEASE, debemos compiar ese archivo y modificar la linea "tag=RELENG_8_2", se haria asi:
# cp /usr/share/examples/cvsup/ports-supfile /root
# edit /root/ports-supfile
Cambiar la linea:
*default release=cvs tag=RELENG_8_2
por
*default release=cvs tag=RELENG_8_3
Salir del editor y guardar los cambios (en edit, con "Esc" main menu, "a" leave editor, "a" save changes)
Ejecutar el comando usando el nuevo archivo
# csup -h cvsup15.us.FreeBSD.org -g -L 2 /root/ports-supfile
Para ver el listado de servidores desde donde podemos descargar las fuentes entre a:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html#CVSUP-MIRRORS
Para mantenernos en FreeBSD 8.2 RELEASE usamos el tag=RELENG_8_2
Para cambiarnos a FreeBSD 8.3 usariamos el tag=RELENG_8_3
Para ver el listado de tags entre a:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvs-tags.html
Cuando se hace un cambio entre versiones de FreeBSD (por ejemplo de 8.2 a 8.3) es necesario recompilar e instalar todos los ports que ya teniamos instalados, para hacer esto usamos el comando:
# portmaster -af
Ejemplos utiles:
Buscar informacion de varios ports
# pkg_info | egrep 'hal|cdrtools|dvd\+rw-tools'
cdrtools-3.00_2 CD/DVD/BluRay and ISO-9660 image creation and extraction to
dvd+rw-tools-7.1 DVD burning software
hal-0.5.14_20 Hardware Abstraction Layer for simplifying device access
Reinstalar un port
# portmaster hal-0.5.14_20
Limpiar los fuentes descargados en /usr/ports/distfiles de ports que ya no tenemos instalados
# portmaster -y --clean-distfiles
No comments:
Post a Comment