Autor: Koji
Data: 01/12/2000.
Ultima revisão: 10/11/2001.

Atualização de FreeBSD a traves de Internet


Indice

1. Introdução
2. Preparando o sistema
3. Começando a atualização
4. Atualizando o diretório /etc
5. Atualização dos ports
6. Que fazer ante qualquer problema?
7. Despedida

Apêndice

A .
Liberando espaço e acelerando a atualização em outras ocasiões
B. Refuse files


1. Introduccioón

Oi a todos :-) para o que mesmo não saiba muito bem de que vai ir este documento, lhe contarei que basicamente vai tratar de explicar como se pode atualizar um FreeBSD a uma versão superior através de internet. Já que o procedimento é quase o mesmo, aproveitar este articulo para explicar como atualizar teu FreeBSD a FreeBSD-stable, FreeBSD-current e como atualizar os ports de FreeBSD.

NOTA: * Para o que seja novo neste mundillo de FreeBSD comentarei que FreeBSD tem vários ramos que estão destinadas a diferentes coisas.

O ramo FreeBSD-stable pretende prover um sistema o mas estável possível, e com o menor de bugs possíveis. Este ramo esta em contínua atualização à medida que se vão descobrindo bugs, portanto não é nada raro o ter que atualizar a -stable numa mesma versão variadas vezes

O ramo FreeBSD-current pretende prover um sistema em desenvolvimento com os últimos suportes e novas características para o sistema. Resumindo.. que se o que procuramos é estabilidade não é o mas recomendável o usar este ramo.

FreeBSD-release é a versão que vem nos CD's ou que podemos baixar como imagem ISO. Podriamos dizer que é uma 'foto' de FreeBSD-stable, que despues de ter-se provado e 'testeado' se converte em release.

Por outro lado os ports, são um conjunto de diretórios organizados por seções (mail, ftp, www, etc) nas quais residem um conjunto de arquivos (Makefiles, parches, etc) que nos proporcionassem a descarga,configuração, compilação e instalação do programa mediante comandos tão singelos como 'make install'. Cada dia saem tanto correções como novos ports, asi que também nos pode interessar atualizar nosso diretório /usr/ports que é o diretório onde estão os ports que temos atualmente disponíveis para instalar. *

Os procedimentos a seguir para atualizar teu FreeBSD podem variar dependendo da versão que estes usando antes da atualização, é por isso que se tentará contemplar as mudanças (sempre que os tenha) que se têm de realizar para levar a cabo a atualização corretamente desde qualquer versão

Bom não me enrolo mas e passemos à ação :-)

2. Preparando o sistema

Antes de começar a atualizar nosso sistema, é importante comprovar se temos instaladas algumas coisas que precisaremos posteriormente. Também comentar-vos o que sempre se costuma dizer.. backup backup backup :-) Não tem porque passar nada.. mas é recomendável ter um backup do que consideremos importante.

Dito isto.. primeiro comprovar se temos um par de programas que precisaremos. Um deles é o cvsup e outro o mergemaster. Se não me equivoco, este ultimo (mergemaster) nas versões de FreeBSD 4.X e superiores já vem incorporado, assim que vos assegurar que o tendes. Com um simples man mergemaster ou ls /usr/sbin/mergemaster deveria valer. Caso contrário, se estais usando uma versão inferior a 4.X podeis instalar o port tecleando cd /usr/ports/sysutils/mergemaster && make install (assegurai-vos que estais conectados a internet ao fazer isto. Assegurai-vos que tendes também o pacote ports instalado. Se não o tivésseis podeis instalá-lo executando /stand/sysinstall . Posteriormente ides aos Menus Configure -> Distributions onde poderás marcar o pacote "ports" para instalá-lo. Depois de fazer isto e ao eleger o meio de instalação já teremos o 'esqueleto' de ports em nosso sistema.

O programa mergemaster o usaremos para atualizar ao final o diretório /etc

O outro programa, cvsup, é o programa que nos permitirá pegar as fontes da versão de FreeBSD que queiramos atualizar. Podeis olhar se o teneis tecleando:

daemon# pkg_info|grep cvsup

cvsup-16.1e A general network file distribution system optimized for CVS

Deveria sair algo assim se o temos, ainda que o mas normal é não o ter se é a primeira vez que actualizais vosso FreeBSD por internet.
Para instalá-lo podeis empregar os ports, os packages ou inclusive o tarball (.tar.gz) de toda a vida, ainda que eu recomendo que instaleis o package se é a primeira vez que actualizais.
O package podeis obtê-lo de ftp ://ftp.freebsd.org/pub/FreeBSD/FreeBSD-stable/packages/net
e o arquivo a baixar se chama cvsup-xx.xx.tgz (xx segun a versão).Em meu caso é o cvsup-16.1e.tgz. Uma vez o tengais baixado tecleamos como root

daemon# pkg_add cvsup-xx.xx.tgz

NOTA: * Se decides instalar cvsup com os ports tens de comprovar (sobretudo se nunca ou faz muito que não os atualizas) que a version do port de cvsup seja a 16.1d ou superior. As versões inferiores à 16.1d contêm um bug e não podem ser utilizá-las para atualizar os fontes de FreeBSD. Se o tentas obtendras uma mensagem parecida a esse:

Protocol negotiation failed: See http://www.polstra.com/projects/freeware/CVSup/s1g/ for upgrading information
Pára mas detalhes confere a web anterior.

Se tens uma versão inferior atualiza teu ramo de ports ou instala o package como indicámos anteriormente. Se finalmente atualizaste os ports, a rota de cvsup é /usr/ports/net/cvsup e não /usr/ports/net/cvsup-bin como antigamente *


3. Começando a atualização

Bem.. se chegastes até aqui estais prontos para atualizar vosso sistema

Não teremos que configurar demasiadas coisas no arquivo de configuração de cvsup , já que FreeBSD traz arquivos de exemplo que nos virão muito bem e se ajustam a todas nossas necessidades.
Estes arquivos estão localizados no diretório /usr/share/examples/cvsup

Há variados, nós faremos uma cópia de um deles e o modificaremos a nosso gosto:

daemon# cp /usr/share/examples/cvsup/stable-supfile /usr/share/examples/cvsup/freebsd-supfile

Uma vez temos a cópia editamos o /usr/share/examples/cvsup/freebsd-supfile para modificá-lo a nosso gosto.
Comentarei um pouco por em cima as modificações que se têm de realizar (o que NÃO esta em negrita são comentários mios):

%[...]
# IMPORTANT: Change the next line to use one of the CVSup mirror sites
# listed at http://www.freebsd.org/handbook/mirrors.html .
*default host=CHANGE_THIS.FreeBSD.org

A linea *default host se refere à direção do servo do que pegaremos as fontes. Segun tua zona geografica pode interessar-te um ou outro. Eu resido em españa asi que pegarei o espanhol. Para saber que mirrors tens consulta a web que figura no comentário: http://www.freebsd.org/handbook/mirrors.html
Uma vez que temos o host o pomos:

*default host=cvsup.é.FreeBSD.org

As lineas *default prefix=/usr e *default base=/usr  indicam de onde se pegarão as fontes e onde se porão. Isto nós não o tocaremos

A linea *default release=cvs tag=RELENG_4 indica a que versão queremos atualizar. Tem-se de ir com cuidado com o que se põe, e ter claro a que queremos atualizar. Tal como está (com o RELENG_4) indica que obterá os fontes de FreeBSD 4.X-STABLE. O X depende de quando esteis atualizando. A data de hoje (10/11/2001) atualizaria a FreeBSD 4.4-STABLE porque a ultima release de FreeBSD que saiu foi a 4.4. Há muitas mas opções. A continuação vos ponho todos os tags referente a versões que figuram no handbook:

. Rama current (é um ponto)
RELENG_4. Rama 4-STABLE
RELENG_4_4. Rama 4.4-RELEASE COM os parches de segurança indispensáveis aplicados
RELENG_4_3. Rama 4.3-RELEASE COM os parches de segurança indispensáveis aplicados
RELENG_3. Rama 3-STABLE
RELENG_2_2. Rama 2.2-RELEASE COM os parches de segurança indispensáveis aplicados
RELENG_4_4_0_RELEASE Rama 4.4-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_4_3_0_RELEASE Rama 4.3-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_4_2_0_RELEASE Rama 4.2-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_4_1_1_RELEASE Rama 4.1.1-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_4_1_0_RELEASE Rama 4.1-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_4_0_0_RELEASE Rama 4.0-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_3_5_0_RELEASE Rama 3.5-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_3_4_0_RELEASE Rama 3.4-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_3_3_0_RELEASE Rama 3.3-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_3_2_0_RELEASE Rama 3.2-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_3_1_0_RELEASE Rama 3.1-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_3_0_0_RELEASE Rama 3.0-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_2_2_8_RELEASE Rama 2.2.8-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_2_2_7_RELEASE Rama 2.2.7-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_2_2_6_RELEASE Rama 2.2.6-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_2_2_5_RELEASE Rama 2.2.5-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_2_2_2_RELEASE Rama 2.2.2-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_2_2_1_RELEASE Rama 2.2.1-RELEASE SEM os parches de segurança indispensáveis aplicados
RELENG_2_2_0_RELEASE Rama 2.2.0-RELEASE SEM os parches de segurança indispensáveis aplicados

A linea *default compress só tendria que ser comentada se possuímos uma conexão T1 ou superior. Se a poseeis comentá-la pondo diante um #

Finalmente se mirais mas abaixo fica src-all que indica que pegaremos TODOS os fontes. O mas normal é pegá-los todos e atualizar todo o /usr/src. Se és novo recomendo que atualizes todo.
Para o que queira atualizar só algumas seções pontuais não tem mas que comentar com um # a linea src-all e descomentar (tirando o #) as lineas que correspondam às seções que queira atualizar

Uma vez gravado as mudanças nos situámos no diretório /usr/src e executámos o seguinte comando:

daemon# cvsup /usr/share/examples/cvsup/freebsd-supfile

E deveríamos ver algo ao estilo de:

Connected to cvsup.é.FreeBSD.org
Updating collection src-all/cvs
Checkout src/Makefile
Checkout src/Makefile.inc1.
Checkout src/README
Checkout src/UPDATING

...

Neste momento o sistema já esta baixando o código fonte do FreeBSD e o esta colocando em usr //src
Não vos posso dizer com exactitud o momento que leva este processo, já que depende muito da velocidade que tenhais de conexão e da versão de FreeBSD que tenhais atualmente.

Ao acabar teríeis que ver algo assim:

...
Edit src/usr.sbin/wicontrol/wicontrol.8.
Edit src/usr.sbin/wicontrol/wicontrol.c
Finished successfully

Chegados a este ponto comentar-vos algumas coisas.
Agora que já temos os fontes, podemos obtar por compilar TODO ou adecuar a compilação a nossas necessidades. Que quer dizer isto ultimo?
Vos pondre um exemplo. FreeBSD, traz em seu sistema base coisas como o servo de correio Sendmail, ou o servo de nomes BIND. Que passa se nós antigamente tínhamos instalado Qmail e já não usámos sendmail? pois que singelamente Sendmail se instalará e joderemos nosso Qmail. Como arranjar isto? Adecuando a compilação singelamente.

Temos a nossa disposição umas variáveis num arquivo que indicarão o que queremos compilar e o que não. Estas variáveis estan em etc //defaults/make.conf. Este arquivo NÃO deve ser modificado. O procedimento correto é pegar as variáveis que nos interessem e pô-las em etc //make.conf
(criá-lo se não existe)

Por exemplo, se não quisieramos instalar o BIND, Sendmail, Perl nem os jogos a configuração correta de etc //make.conf séria:

NÃO_BIND=true
NÃO_SENDMAIL=true
NOPERL=true
NOGAMES=true

Uma vez comentado todo isto só fica compilar e instalar o codigo fonte. Para o primeiro teclearemos desde /usr/src:

daemon# make buildworld

Ouna vez tecleado o buildworld o sistema começará a compilar o código fonte. Este processo demora bastante, pode inclusive demorar várias horas, assim que paciência :-)

Se todo isto a saído bem, é a hora de compilar um novo kernel. Para isso dependendo da versão de FreeBSD que tenhamos faremos o seguinte:

-Se atualizámos a FreeBSD 4.3 ou superior-

# cd /usr/src
# make buildkernel KERNCONF=nome-de-teu-kernel
# make installkernel KERNCONF=nome-de-teu-kernel

-Se atualizámos a FreeBSD 4.0, 4.1, 4.1.1 ou 4.2-

# cd /usr/src
# make buildkernel KERNEL=nome-de-teu-kernel
# make installkernel KERNEL=nome-de-teu-kernel

-Se atualizámos a FreeBSD 1.x, 2.x ou 3.x-

# cd /usr/src/sys/i386/conf
# /usr/obj/usr/src/usr.sbin/config/config nome-de-meu-kernel
# cd ../../compile/nome-de-meu-kernel
# make depend; make; make install

(Mudai nome-de-meu-kernel pelo nome que tenhais. Se não tendes nenhum pôr como nomeie GENERIC. Se não especificamos o kernel com as variáveis KERNCONF ou KERNEL FreeBSD tomará o kernel GENERIC)

Uma vez que acabou e que a coisa não deu nenhum erro reiniciaremos o sistema para instalar os ficheros compilados em seus diretórios correspondentes, assim que teclearemos:

daemon# shutdown now

Não é necessário reiniciar, mas se recomendável.
Uma vez reiniciado nos iremos ao diretório /usr/src e teclearemos:

daemon# make installworld

O processo do installworld o que faz é instalar todos os binários do sistema que compilámos a seus diretórios correspondentes. Não deveria demorar nem muito menos tanto como o passo anterior. Me gostaria dar-vos uma aproximação, mas todo depende de vosso procesador e demais :-)

Ao acabar só fica atualizar uma coisa, esta coisa é o diretório /etc

NOTA (Não aplicável ao ramo current): * A parte de ficar por atualizar o diretório /etc também fica atualizar o programa sysinstall (Leste é o programa que nos sai quando instalamos FreeBSD. Também o usámos posteriormente para configurar algumas coisas de nosso sistema. Por defeito não se atualiza automaticamente, assim que se queremos fazer um upgrade dele, teclearemos desde o diretório /usr/src/release/sysinstall :

daemon# make all install

E já o teremos atualizado :-) *


NOTA2: * Os passos make buildworld e make installworld se podem fazer num só tecleando make world desde /usr/src . Não obstante, eu recomendo fazê-lo nestes 2 passos explicados, já que à hora de detectar erros ou falhas de compilação e instalação é mas fácil de detectar em que passo a fallado a coisa. É o mesmo caso de buildkernel e installkernel que se pode simplificar com make kernel *


4. Atualizando o diretório /etc

O /etc é um diretório perigoso e importante, esta é a razão da que porque não se atualiza automaticamente como o resto do sistema. Poderíamos atualizá-lo a mão, mas se converte numa tarefa um pouco pesada. Assim que faremos uso do programa mergemaster que comentámos na seção anterior.
Seu modo de uso não é muito complicado, mas sempre recomendo que leiais sua documentação para que vejais todas suas possíveis opções e para saber como funciona (man mergemaster)

Um costume que tenho antes de lançar mergemaster é fazer uma cópia de todo o /etc por se tenho algun despite. Para isso não há mas que teclear:

daemon# cp -pr /etc /root

Agora já se que estamos prontos para executar o programa, a si que teclearemos o seguinte desde /usr/src:

daemon# mergemaster

Ao executá-lo é possível que nos faça uma pergunta de se queremos usar o diretório por defeito /var/tmp/temproot . Nós diremos que se. A partir de agora, mergemaster olhará arquivo por arquivo e comparará um arquivo do velho /etc com o do novo /etc (mergemaster só olha os arquivos que diferem com o mesmo nome).

As possíveis opções que podemos realizar sobre os arquivos do /etc são:

(d) para apagar o arquivo
(m) para unir o arquivo novo com o velho
(i) para instalar o arquivo novo e machacar o arquivo velho
(v) para ver as diferenças entre o arquivo velho e novo

Este é um dos processos mas delicados da atualização de FreeBSD, ¡PRECAUÇÃO! ;-) . Arquivos como /etc/passwd, /etc/master.passwd, /etc/hosts, /etc/group, /etc/rc.conf, etc. estão em jogo

Ao acabar o processo de comparação é muito provável que nosso mergemaster nos tenha perguntado automaticamente se queremos criar os novos devices de dev /. Se é asi lhe diremos que se e se não vos hicira ningun tipo de pergunta o tendriamos que fazer a mão tecleando:

daemon# sh /dev/MAKEDEV all

Por ultimo só fica reiniciar e fazer um uname -à ver que diz o bicho :-)

sorte!

5. Atualização dos ports

Não me estenderei muito para explicar isto já que o processo vem ser exatamente igual.O primeiro é fazer uma cópia para fazer as mudanças oportunas nela:

daemon# cp /usr/share/examples/cvsup/ports-supfile /usr/share/examples/cvsup/freebsdports-supfile

Editámos /usr/share/examples/cvsup/freebsdports-supfile

Como podeis ver este arquivo é muito parecido ao que usemos anteriormente para atualizar os fontes. Debeis especificar da mesma maneira o servo cvsup de onde cogereis os ports, em nosso caso pegaremos de novo o espanhol:

*default host=cvsup.é.freebsd.org

Assegurar-vos que teneis *default release=cvs tag=.
(com o ".")

E já para acabar, se quereis baixar-vos todo o esqueleto de ports comprovar que teneis ports-all sem comentar. Se quereis atualizar só algumas seções dos ports não teneis mas que comentar ports-all e descomentar cada uma das seções que quereis atualizar

Solo fica fazer um cvsup /usr/share/examples/cvsup/freebsdports-supfile

Ato seguido o diretório de ports se começassem a atualizar :-)

NOTA: * Forma alternativa de atualizar nossos ports:

Editámos (ou creiamos se previamente não existe) o arquivo /etc/make.conf e pomos:

SUP_UPDATE= yes
SUP= /usr/local/bin/cvsup
SUPFLAGS= -g -L 2.
SUPHOST= cvsup.é.FreeBSD.org
PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile

Desta maneira e ao teclear make update desde /usr/ports vosso esqueleto de ports se atualizará
Modificai os valores a vosso gosto e conferi /etc/defaults/make.conf para outros possíveis valores

 

6. Que fazer ante qualquer problema?

Dependendo em onde tenha fallado a atualização deveremos fazer uma ou outra coisa:

Relgla geral e obrigada
Ler o arquivo /usr/src/UPDATING que contém notas, mudanças e anotações sobre a atualização

- Tem fallado no buildworld ou installworld -
Se peta neste ponto o mas fácil e recomendável é esperar algumas horas ou inclusive algun dia para voltar a realizar o processo do cvsup
Porque esperar? Singelo, os fontes estan em contínua atualização pelos desarrolladores. Tão cedo se sabe que há algun tipo de problema se tenta corrigir os fontes, por isso quanto mas tempo deixemos passar até repetir o processo de cvsup mas possibilidades há de que o problema esteja subsanado.
Que fazer se despues de esperar o problema persiste? Se segue petando no mesmo lugar podemos obtar por comentá-lo nas listas de FreeBSD destinadas a estes temas. Se estamos tendo problemas com o ramo stable podemos dirigir-nos a freebsd [email protected] e se estamos tendo os problemas com current a freebsd [email protected]
Se peta em diferentes lugares cada vez que tentámos o buildworld ou installworld é mas que provável que se trate de um problema de hardware de nosso computador

- Tem fallado na compilacion ou instalação do kernel -
A vezes pode passar que tenhamos um kernel feito a partir do GENERIC do FreeBSD anterior à atualização. Imaginar-vos que por alguma razão nós antes da atualização temos um FreeBSD 4.3 e em nosso kernel temos configurado algumas opções que com FreeBSD 4.4 (version à que atualizámos) mudaram. Que pasaria então? singelamente que se usamos nosso kernel velho personalizado não iria a coisa. Eu recomendo que partais da base do novo GENERIC e que vos mireis /sys/i386/conf/LINT ou /sys/i386/conf/NOTES (se habeis atualizado a current) para ver se a sintaxe das opções segue igual ou se essas opções mesmo seguem suportadas por essa versão de FreeBSD.

- Me tenho liado com mergemaster e me carreguei algun arquivo de etc / -
Fizeste a cópia de todo o /etc que propus? Espero que se
Aqui não posso dar-te uma solução exata. Paciência e a comprovar a cópia de root //etc com /etc a ver o que se te colou

7. Despedida

Espero ter-me explicado o mas claro possível. Quiçá a primeira vez que se faz isto pode resultar um pouco complicado, mas já vereis que à que o hagáis 2 ou 3 vezes o vereis como uma coisa singela.

E como sempre pois dizer que qualquer critica constructiva será bienvenida, e se há algum erro ou me equivoquei em algo pois também ;-)

saudações

koji@jet.é


Apêndice

A. Liberando espaço e acelerando a atualização em outras ocasiões

O processo de atualização tem dois inconvenientes a destacar. O primeiro e mas notável é o da lentidão do compilado de fontes e o segundo é o espaço em disco que diminui em cada atualização. A continuação vos propomos alguns conselhos e soluções para estes dois inconvenientes:

Quanto a libertação de espaço se refere podemos apagar calmamente o diretório /usr/obj. Este diretório contém todos os arquivos objeto (object files) que se criaram durante a compilação. Ao apagá-lo liberaremos bastante espaço. Se não o apagámos e se fazemos uma compilação dos fontes em futuras ocasiões nosso sistema apagará esse diretório automaticamente para compilar as novas fontes. Se o que queremos é acelerar a compilação, uma solução é não apagar /usr/obj e passar-lhe o parâmetro -NOCLEAN ao make: make -DNOCLEAN buildworld ou make -DNOCLEAN world desde /usr/src como sempre.

O parametro -DNOCLEAN também nos serve para reanudar a compilação no ponto que se parou se não finalizou o processo exitosamente

Para outras possíveis ligeiras optimizaciones quanto a velocidade se refere à hora de compilação e instalação do sistema podemos olhar-nos os parâmetros CFLAGS explicados em etc //defaults/make.conf . Se nos interessa algum só teremos que os pôr em etc //make.conf antes da compilação e instalação dos fontes. Se estais interessados em obter mas informação sobre estas opções e sobre como optimizar mesmo mas nosso FreeBSD nas compilações te recomendo que leias o articulo: Optimizando FreeBSD mediante compilações (totalmente em castelhano)

Já para acabar, e como ultima idéia para acelerar a velocidade de acesso a disco, podemos configurar softupdates ou montar a partición que contenha /usr/src ou/e /usr/obj com o parâmetro noatime ou async. Pára mas info man mount

B. Refuse files

Imaginai-vos que estamos dispostos a atualizar nosso sistema (a -stable), mas por alguma razão não nos interessa atualizar a seção games ( usr/src/games). Nesta situação o mas lógico séria editar o arquivo /usr/share/examples/cvsup/freebsd-supfile (ou o arquivo que usemos para atualizar) e comentar a seção src-all descomentando posteriormente todas as outras seções excluindo a src -games por suposto. Com isto já teríamos acabado, mas o tratar por seções a todos os pacotes nos dá pouca liberdade. Que passaria se por alguma estranha razão eu quisesse atualizar todo o sistema menos qualquer arquivo chamado Makefile ? Isto não é possível com todo o que vimos, no entanto obrigado aos refuse files é possível.

Não vos posso assegurar até que versão do cvsup funciona esta característica, o que se vos confirmo é que o provei na versão cvsup-bin-16.1 e funciona.

O arquivo no qual especificaremos que não queremos atualizar nenhum Makefile se chama refuse e tal como temos configurados os exemplos de usr //share/examples/cvsup deve estar situado em usr //sup, isto pode mudar-se por suposto.

Não esta de mas que vos olheis o readme do refuse situado em usr //share/examples/cvsup/refuse.README e um exemplo que traz o cvsup situado em usr //share/examples/cvsup/refuse . Ponhamo-lo aqui para comentá-lo:

src/etc/sendmail/freebsd.mc*
ports/chinese
ports/french
ports/german
ports/hebrew
ports/japanese
ports/korean
ports/russian
ports/ukrainian
ports/vietnamese

Como veis é fácil de interpretar. Com este exemplo não se atualizam todas as coleções de ports que veis listadas e ademais, à hora de atualizar o sistema o ou os arquivos sendmail/freebsd.mc* também não se atualiza/n. A sintaxe do arquivo não permite comentários e as linhas têm de estar uma debaixo de outra ou bem separando os patronos com um espaço em alvo.

Continuando com nosso exemplo do Makefile vamos a usr //sup e cremos o refuse para que fique asi:

src/*Makefile*

Isto impede baixar qualquer arquivo Makefile que este ao menos em src . O primeiro * indica todos os diretórios de src (/, games, etc, sbin etc.), o segundo indica que seguirá o patrono Makefile + o que seja (Makefile, Makefile.inc etc

Se quiséssemos só não atualizar os Makefile de usr //src com src/Makefile* bastaria. Se pelo contrário só quiséssemos indicar que não baixasse os Makefile de games poríamos: src/games/Makefile*.
Como veis possibilidades há muitas.

Para acabar vejamos como podemos mudar a rota de localização de refuse .

Para mudar a configuração temos que editar o arquivo que usemos para atualizar o que queiramos atualizar nesse momento (ports-supfile , standard-supfile, stable-supfile, freebsd-supfile etc.) e tocar a configuração da linha *default base=/usr. Mudaremos /usr pelo diretório root que queiramos que tenha nossa configuração de cvsup. Lembrai que se especificais por exemplo /etc o arquivo refuse sempre tem de estar em sup portanto o ubicaríamos em etc //sup. Não vos preocupeis se nesse momento /etc/sup não existe, cvsup o criará. A parte também criará uma espécie de "base de dados" com todos os arquivos que olhou, especificando se os editou só, se os atualizou etc. Este arquivo estará ubicado dentro do diretório sup e dentro de outro diretório com o nome da seção que especificámos a atualizar. Por exemplo, se estabamos atualizando todos os ports (apartado ports-all descomentado) e tínhamos configurado a rota asi *default base=/etc deveríamos ter-nos criado o arquivo /etc/sup/ports-all/checkouts.cvs:. contendo todo tipo de informação sobre nossos ports. Ej:

-...-
Ou ports/archivers/nulib 2#861#11#01#0.
D ports/archivers/p5-Arquive-Tar
C ports/archivers/p5-Arquive-Tar/Makefile,v . . 2#871#19#9875403784#15253#444 1.
3 2001.03.01.06.36.56 2#871#16#4347393#6593#644.
C ports/archivers/p5-Arquive-Tar/distinfo,v . . 2#871#19#9875403783#3933#444 1.1
2000.12.19.09.48.13 2#871#19#9772192932#653#644.
C ports/archivers/p5-Arquive-Tar/pkg-comment,v . . 2#871#19#9875403783#3833#444.
1.1 2000.12.19.09.48.13 2#871#19#9772192932#553#644.
C ports/archivers/p5-Arquive-Tar/pkg-descr,v . . 2#871#19#9875403783#8433#444 1.
1 2000.12.19.09.48.13 2#871#19#9772192933#5143#644.
C ports/archivers/p5-Arquive-Tar/pkg-plist,v . . 2#871#19#9875403783#7083#444 1.
1 2000.12.19.09.48.13 2#871#19#9772192933#3773#644.
-...-

Como veis se indica a data, o estado (Ou=Oupgrade, D =Delete etc) e outras coisas

NOTA: * Ao especificar uma rota nos refuse files sempre omitimos /usr devido a que já fica especificado na configuração mediante a linea *default prefix=/usr *

Se pelo contrário tendes descomentado por exemplo as seções ports-base , ports-archivers e ports-astro tereis três diretórios com três checkouts.cvs correspondentes a cada seção de ports atualizada (/etc/sup/ports-base/checkouts.cvs:. , /etc/sup/ports-archivers/checkouts.cvs:. e /etc/sup/ports-astro/checkouts.cvs:.)

As rotas e configuração também se podem mudar desde o interprete de comandos. Para isso vos aconselho um man cvsup onde vos dará todo tipo de informação sobre todas suas características e opções


by Koji

Hosted by www.Geocities.ws

1