quinta-feira, 26 de junho de 2008

RESSALVAS... Sincronizando o Código Fonte do Sistema com o do Projeto sobre CVSUP.

Bom antes de começar as dicas sobre compilação do kernel do sistema em si,
seria bom já manter um vicio sobre a administração do sistema que é atualização do Codigo fonte.

Diferente de muitos sistemas em que para se ter que ter um sistema "livres" de bugs o maximo que se pode fazer é instalar uns updates que na maioria do caso corrige um problema e surge outro, com os sistema Open Sources uma atualização se tem como principal forma a reconstrução total ou parcial do sistema, sendo assim não degradando com a performace do sistema a longo prazo.
Bom diferente do Linux que o que se pode fazer é reinstalar o kernel e aplicar paths ou gastar horas a fio para reconstruir uma unica biblioteca do sistema com uma falha grave de seguraça, nos sistemas BSD em geral te oferece não só atualizar o Kernel como no linux mais sim todo o sistema, bom essa diferença se dá pela seguinte observação

{{ LINUX É SÓ UM KERNEL, SISTEMAS BSDs SÃO SISTEMAS OPERACIONAIS COMPLETOS }}

Mesmo o Linux possuindo creio eu a maior parte dos desenvolvedores open sources eles não consegue a qualidade de codigo nem a praticidade dos sistemas BSDs consegue com seu poucos mais dedicados e talentosos desenvolvedores, o susporte que os BSDs oferecem sobre linux é quase que esmagadora, quase todas as partes do sistema tem não uma pessoa mais um grupo de usuários destinados a orientar e resolver determinados problemas.
Bom mais saindo da filosofia, e falar de algo no momento mais interessante.

Por que atualizar o Codigo Fonte de sistema ?

Bom tem varios motivos os principais sobre meus olhos de Administrador de Sistemas "picareta"* entre os beneficios temos por prioridadde:

1= > Segurança, atualizando o codigo fonte apos o termino da compilação você terá um sistema corrigido e sem bugs, sendo esses os descobertos entre o periodo que você instalou o sistema até o momento a sincronização dos seus fontes com os disponibilizados pelo projeto.

2=> Estabilidade => Algumas atualizações são destinadas a partes do sistema que depois de liberadas se mostraram instaveis ou não testadas o suficiente, mesmo sendo raro, já que, BSDs no geral até ter uma RELEASE disponibilizada é subemetidas em laboratórios a testes que muitos sistema com raras, mais raras excessos mesmo outros sistemas suportaria, alguns até com trademark Unix no rotulo, não estou tirando aqui a qualidade desses sistemas mais é que em se tratando de BSDs, ele são estaveis muito antes de chegarem ao nivel de CURRENT na engenharia de releases. Tipo pode ter certeza BSDs no geral suporta acredito eu que entre 50% a 65% claro não são dados reais mais dentro de minha concepção e da quantidade de maquinas que já escaniei servidores para os mais diferentes ramos na internet e intranet rodam BSDs,

3=> Performace, muitas correções tem muito pouco haver em si com a segurança, pois o sistema em si já é consideravelmente bem projetado tendo poucas vunerabilidades, a maioria das atualização se refere a um driver ou outro ou rescrita de parte de um codigo que ficou lento, tais atualização saem para melhorar a performace do sistema. De vez enquando vejo pessoas dizendo que BSD é lento mais sinceramente não sei se falam que ele é lento ou se é por que tem digamos que preguiça de melhorar o desempenho... :D, quando puder darei umas dicas de tunning aqui.

4 = > Adcionamento de recursos , alguns recursos são tido estaveis apos o lançamento da RELEASE e então são liberado sobre a arvore para que já se passa a usufruir de tais recursos sem ter que esperar a proxima RELEASE a ser liberada, e olha como demora sair uma RELEASE. :D

Bom considerações aparte mãos a obra :D....

O CVSUP


O Cvsup é um utilitario disponivel no sistema para auxiliar o administrador na tarefa de sincronização das fonte do sistema com a do projeto, alem dele temos o CTM e o csup, o CTM é usado muito quando o link de conecção com a internet é muito restrito no quesito tempo, e o csup é o substituto do cvsup até onde sei.. o CTM quando puder coloco uma explicação aqui para a sua utilização quanto ao csup assim que usa-lo...

Bom primeiro um guia rapido depois destino um post para a especificação completa do cvsup.

Primeiro verifique se tem ele instalado no sistema caso contrário instalei atravez dos port. o seu diretório de compilação no ports é:
/usr/ports/net/cvsup-without-gui
ou
/usr/ports/net/cvsup
No caso o primeiro não compila e instala a parte destinada ao X11 pois o cvsup em si é um aplicativo para uso junto com o servidor X, o segundo já compila com a gui dele.
Pode usar tambem o "add_pkg" para isso basta:

add_pkg -r cvsup-without-gui ou
add_pkg -r cvsup
Se tiver o CD de instalação ele está no CD1 do FreeBSD no caso o mesmo que se encontra as distribuições base para o sistema funcionar.

Bom seguindo ...
no diretório /usr/share/examples/cvsup temos alguns exemplos, o conteudo do mesmo é:

soldier# cd /usr/share/examples/cvsup/
soldier# ls -l
total 36
-r--r--r-- 1 root wheel 1180 24 Jun 14:57 README
-r--r--r-- 1 root wheel 5225 24 Jun 14:57 cvs-supfile
-r--r--r-- 1 root wheel 2636 24 Jun 14:57 doc-supfile
-r--r--r-- 1 root wheel 2290 24 Jun 14:57 gnats-supfile
-r--r--r-- 1 root wheel 3814 24 Jun 14:57 ports-supfile
-r--r--r-- 1 root wheel 367 24 Jun 14:57 refuse
-r--r--r-- 1 root wheel 1949 24 Jun 14:57 refuse.README
-r--r--r-- 1 root wheel 3889 24 Jun 14:57 stable-supfile
-r--r--r-- 1 root wheel 3053 24 Jun 14:57 standard-supfile
-r--r--r-- 1 root wheel 2361 24 Jun 14:57 www-supfile

no caso vamos apenas fazer de momento referencia ao arquivo standart-supfile
copie-o para o /etc e adciona permição de escrita nele, basta para isso seguir o seguinte comando.

soldier# cd /usr/share/examples/cvsup/standart-supfile /etc & chmod u+w /etc/standart-supfile

Bom apos isso com um editor qualquer tipo o ee ou vi abra esse arquivo e vamos ao conteudo do mesmo.

soldier# ee /etc/standart-supfile
# $FreeBSD: src/share/examples/cvsup/standard-supfile,v 1.23.4.4.2.1 2007/11/25 06:32:51 kensmith Exp $
#
# This file contains all of the "CVSup collections" that make up the
# FreeBSD 6.x-STABLE source tree.
#
# CVSup (CVS Update Protocol) allows you to download the latest CVS
# tree (or any branch of development therefrom) to your system easily
# and efficiently (far more so than with sup, which CVSup is aimed
# at replacing). If you're running CVSup interactively, and are
# currently using an X display server, you should run CVSup as follows
# to keep your CVS tree up-to-date:
#
# cvsup standard-supfile
#
# If not running X, or invoking cvsup from a non-interactive script, then
# run it as follows:
#
# cvsup -g -L 2 standard-supfile
#
# You may wish to change some of the settings in this file to better
# suit your system:
#
# host=CHANGE_THIS.FreeBSD.org
# This specifies the server host which will supply the
# file updates. You must change it to one of the CVSup
# mirror sites listed in the FreeBSD Handbook at
# http://www.freebsd.org/doc/handbook/mirrors.html.
# You can override this setting on the command line
# with cvsup's "-h host" option.
#
# base=/var/db
# This specifies the root where CVSup will store information
# about the collections you have transferred to your system.
# A setting of "/var/db" will generate this information in
# /var/db/sup. You can override the "base" setting on the
# command line with cvsup's "-b base" option. This directory
# must exist in order to run CVSup.
#
# prefix=/usr
# This specifies where to place the requested files. A
# setting of "/usr" will place all of the files requested
# in "/usr/src" (e.g., "/usr/src/bin", "/usr/src/lib").
# The prefix directory must exist in order to run CVSup.

# Defaults that apply to all the collections
#
# IMPORTANT: Change the next line to use one of the CVSup mirror sites
# listed at http://www.freebsd.org/doc/handbook/mirrors.html.
*default host=cvsup12.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_6_3
*default delete use-rel-suffix

# If you seem to be limited by CPU rather than network or disk bandwidth, try
# commenting out the following line. (Normally, today's CPUs are fast enough
# that you want to run compression.)
*default compress

## Main Source Tree.
#
# The easiest way to get the main source tree is to use the "src-all"
# mega-collection. It includes all of the individual "src-*" collections.
#src-all

# These are the individual collections that make up "src-all". If you
# use these, be sure to comment out "src-all" above.
src-base
src-bin
src-cddl
src-contrib
src-etc
#src-games
src-gnu
src-include
#src-kerberos5
#src-kerberosIV
src-lib
src-libexec
src-release
src-rescue
src-sbin
src-share
src-sys
src-tools
src-usrbin
src-usrsbin
# These are the individual collections that make up FreeBSD's crypto
# collection. They are no longer export-restricted and are a part of
# src-all
src-crypto
src-eBones
src-secure
src-sys-crypto

###END-SUPFILE ###

Bom no caso o meu já se encontra modificado:
apenas o que temos de momento nos atentar é sobre as alterações das seguintes linhas :

*default host=cvsup12.FreeBSD.org

NO caso essa linha estará sem a parte "cvsup12" apenas coloca nesse trecho da linha o servidor cvsup do projeto que você irá se conectar para sincronizar as fontes. para mais informações por favor verifique a seguinte url contendo todos os servidores disponiveis ao redor do mundo.

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html#CVSUP-MIRRORS

Bom, apos isso a proxima linha a verificar é a seguinte:

*default release=cvs tag=RELENG_6_3

Verifique se a ultima entrada "RELENG_6_3" no caso estou sincronizando junto a release 6.3 que no caso é a atual do meus sistema, faça a modificação correta para o seu sistema, embora normalmente vai estar já corretamente configurado.

apos isso temos a linha

src-all e mais a baixo outras entradas parecidas, bom eu comento a linha src-all e descomento apenas as partes do sistema que me é interessante tipo games mesmo eu não uso então não preciso atualizar ela as linhas referentes a kerberos mesmo só atualizo quando o sistema vai servir de base para tais aplicações caso contrario tambem não atulizo tal parte assim economiso tempo, banda e dinheiro.

bom apos isso salva o arquivo e vamos atualizar os fontes do sistema.
como root rode o seguinte comando:
soldier#cvsup -g -L 2 /etc/standart-supfile
no caso o parametro "-g" é para rodar o cvsup em modo CLI e o parametro "-L 2" fala quanto ao nivel de debbuger no caso variando de 0-2..
bom se tudo ocorrer bem terá linhas parecidas com essas plotando no seu terminal:

soldier# cvsup -g -L 2 /etc/standard-supfile
Parsing supfile "/etc/standard-supfile"
Connecting to cvsup12.FreeBSD.org
Connected to cvsup12.FreeBSD.org
Server software version: SNAP_16_1h
Negotiating file attribute support
Exchanging collection information
Establishing multiplexed-mode data connection
Running
Updating collection src-all/cvs

bom quando aparecer uma mensagem colocando que a atualização foi realizada com sucesso terá acabado a atualização e você terá o prompt devolvido para uso.

Bom, agora poderemos voltar a compilação do kernel...

Mais isso ficará para outras postagens...

Nenhum comentário: