Post em Destaque

The FreeBSD Laptop Compatibility List

Para aqueles que querem comprar um notebook compatível com FreeBSD ou descobrir se o seu notebook é compatível. Esse site aqui é excelente para isso. Foi através dele que descobri porque meu notebook trava na BIOS quando tento instalar o FreeBSD 8. Esse site pode evitar muitas compras indesejadas....

Leia mais...

Árvore subversion do FreeBSD – o que nós mortais precisamos saber

Posted by gondim | Posted in Dicas, FreeBSD | Posted on 05-01-2013

Tags:, , , ,

1

Percebi ultimamente uma certa confunsão de algumas pessoas sobre a árvore subversion e resolvi fazer esse post rápido e explicativo. Quando fazemos a primeira vez o svn co, estamos escolhendo com que ramo queremos trabalhar. Podemos trocar de ramo quando quisermos mas precisamos entender o que é cada um ou pelo menos os mais importantes:

svn://svn.freebsd.org/base/release/9.1.0 -> esse seria o 9.1-RELEASE puro, sem por nada à mais. A imagem da ISO que baixamos para fazermos a instalação. Se escolhermos usar ele não teremos qualquer atualização, nem mesmo a de segurança.

svn://svn.freebsd.org/base/releng/9.1 -> esse é o mínimo que usaríamos em um servidor porque ele é o 9.1-RELEASE e sempre que houverem atualizações de segurança, elas serão adicionadas aqui e passarão à ter um sufixo no nome indicando que houve uma atualização. Ex.: 9.1-RELEASE-p5 que indicaria ser a 5ª atualização de segurança para o sistema. Nessa modalidade você só terá correções de segurança.

svn://svn.freebsd.org/base/stable/9 -> aqui encontramos o famoso STABLE que atualmente é o 9.1-STABLE, que um dia será 9.2-PRERELEASE quando tiver para sair o 9.2. Esse ramo sempre que atualizado virá com as atualizações de segurança, correção de bugs e ainda algumas coisas novas que o time do FreeBSD pode achar interessante ser adicionado. Eu pessoalmente uso esse mas com moderação conforme expliquei em post anterior.

svn://svn.freebsd.org/ports/head -> esse aqui é o nosso ports que usamos para instalar nossos pacotes optimizados. Que podemos usar ele no lugar do portsnap.

Dica: se você quer confirmar ou saber em que branch está sendo usado no releng/9.1, por exemplo. Lembra do sufixo? Você pode ver no seu navegador acessando o arquivo newvers.sh da versão que você quiser consultar. Abaixo 2 exemplos:

Ao abrirmos esses 2 arquivos encontraremos 2 variáveis no início deles:

REVISION=”9.1″
BRANCH=”RELEASE”

REVISION=”9.0″
BRANCH=”RELEASE-p5″

O primeiro significa que no 9.1 ainda não houve alguma atualização de segurança. Já no segundo consta que na versão 9.0 estamos na 5ª atualização de segurança por causa do p5. Logicamente concluímos que o 9.1 já vem com todas as atualizações do 9.0. Possivelmente em uma próxima atualização poderíamos ter:

REVISION=”9.1″
BRANCH=”RELEASE-p1″

REVISION=”9.0″
BRANCH=”RELEASE-p6″

Adicionando mais uma coisa importante: se você já está usando um ramo por exemplo releng/9.1 e quer mudar para outro, tipo o stable/9, não precisa apagar todo o seu /usr/src e fazer novamente. Você pode usar outro recurso do subversion mostrado abaixo:

# cd /usr/src
# svn switch svn://svn.freebsd.org/base/stable/9

Bem, espero ter ajudado com mais essas informações.

Grande abraço à todos

 

Share Button

Tenha mais controle do seu ports com o subversion

Posted by gondim | Posted in Dicas, FreeBSD | Posted on 04-01-2013

Tags:, ,

0

A vida é uma constante adaptação, seja no trabalho, em casa, com os amigos, nos eventos e fóruns… Estamos sempre presenciando coisas novas e tendo que nos adaptar à elas porque senão ficamos parados no tempo e espaço.  🙂

Usar o ports com subversion é uma dessas mudanças e que embora não tão recente, nos permite ter um controle maior dos pacotes e nos salvar em momentos difíceis.

Primeiramente alguns devem se perguntar: por que usar o ports? por que não usar os binários pré-compilados?

Você pode usá-los mas eu usaria eles em coisas simples que não me exigissem suportes específicos. Por exemplo: eu usaria um pkg_add -r bash para instalar o bash mas não faria isso para instalar um apache. Por que? Porque existem várias opções de compilação em determinados pacotes que você pode querer retirar ou colocar, que pode melhorar ou piorar a performance ou até mesmo ser mais suscetível à falhas de segurança. Sem falar que um pacote binário poderia vir faltando algo em sua compilação que você necessitaria usar. Outra coisa que não combina são usar pacotes pré-compilados com pacotes compilados do ports. Ou você opta por um ou pelo outro mas não use ou tente usar os 2 porque não vai ficar legal, à não ser que sejam pacotes pré-complilados simples como é o caso do bash. Um exemplo ruim de mistura seria instalar todo um ambiente de desktop por pacotes e depois querer usar o ports para atualizar as coisas. São coisas assim que me fazem usar apenas o ports.

Existem 2 formas de se ter o ports e mantê-lo atualizado:

  • Usando o programa portsnap.
  • Fazendo uso do svn (subversion).

O portsnap é a maneira mais básica e simples de se ter o ports e mantê-lo atualizado, contudo você não consegue fazer coisas como voltar um port de uma determinada versão anterior porque a atual apresentou um problema.  Você fica preso sempre na versão mais atual.

O subversion já te permite fazer tudo que o portsnap não faz e mais um pouco.  🙂 Eu posso por exemplo dizer que quero um pacote de um release do svn mais antigo e com isso uma versão daquele programa mais antigo que estou precisando. Nós veremos mais adiante um exemplo.

Para usarmos o ports pelo subversion precisaremos zerar o /usr/ports e fazer o seguinte uma vez apenas. Estou levando em consideração que você já tem o devel/subversion já instalado:

# svn co svn://svn.freebsd.org/ports/head /usr/ports

Nesse momento se a sua Internet não for das mais rápidas, sugiro você fazer uma pipoca e assistir um bom filme enquanto o download é feito.  São aproximadamente quase 1Gb.  🙂 Tudo abaixo você deverá fazer dentro de /usr/ports:

Após isso vamos baixar o arquivo INDEX-9 para que possamos fazer buscas com o make search e ele não vem no svn:

# make fetchindex

Para manter o seu ports atualizado basta fazer:

# svn up

Para ver informações como revisão do seu ports:

# svn info
Path: .
Working Copy Root Path: /usr/ports
URL: svn://svn.freebsd.org/ports/head
Repository Root: svn://svn.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 309926
Node Kind: directory
Schedule: normal
Last Changed Author: rm
Last Changed Rev: 309926
Last Changed Date: 2013-01-04 09:14:36 -0200 (Fri, 04 Jan 2013)

Agora vamos pegar um exemplo com o programa nmap. Vamos ver a revisão dele especificamente:

# svn info /usr/ports/security/nmap
Path: security/nmap
Working Copy Root Path: /usr/ports
URL: svn://svn.freebsd.org/ports/head/security/nmap
Repository Root: svn://svn.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 309926
Node Kind: directory
Schedule: normal
Last Changed Author: mm
Last Changed Rev: 308630
Last Changed Date: 2012-12-10 17:11:11 -0200 (Mon, 10 Dec 2012)

Percebemos que a revisão dele ainda é a mais atual do ports, 309926. Vamos olhar qual versão de arquivo ele vai baixar:

# cat /usr/ports/security/nmap/distinfo
SHA256 (nmap-6.01.tar.bz2) = 77f6635b677d28b546cbef97e4ead6c2d4a5aebcaa108fe3a3c135db6448617a
SIZE (nmap-6.01.tar.bz2) = 21640157

Percebemos que vai ser usado a versão 6.01 se eu for instalar esse pacote. Vamos dizer que eu queira uma versão bem mais antiga, por algum motivo. Nesse caso vou ter mudar a revisão desse port em específico para algo muito mais antigo. Então vamos fazer o seguinte:

# svn up -r200000 /usr/ports/security/nmap
Updating ‘security/nmap’:
A    security/nmap/pkg-descr.fe
UU   security/nmap/pkg-plist
UU   security/nmap/Makefile
UU   security/nmap/distinfo
UU   security/nmap/pkg-descr
D    security/nmap/files/patch-libnetutil__netutil.cc
D    security/nmap/files/patch-libdnet-stripped__configure
D    security/nmap/files/patch-nmap.cc
A    security/nmap/files/patch-nmapfe::Makefile.in
A    security/nmap/files/patch-nbase::configure
UU   security/nmap/files/patch-configure
UU   security/nmap/files/patch-Makefile.in
UU   security/nmap/files/patch-tcpip.cc
A    security/nmap/files/patch-nmapfe::nmapfe_sig.c
UU   security/nmap/files/patch-output.cc
UU   security/nmap/files/patch-libdnet-stripped__src__eth-bsd.c
A    security/nmap/pkg-plist.fe
Updated to revision 200000.

Nesse momento mudei a revisão apenas do nmap para 200000. Vamos olhar novamente o distinfo?

# cat /usr/ports/security/nmap/distinfo
MD5 (nmap-4.20.tar.bz2) = ea50419f99472200c4184a304e3831ea
SHA256 (nmap-4.20.tar.bz2) = c923a6cfa6d3683dc7ee27a721c19d15fd66f264f8ca6dbc9cfac710591f32a8
SIZE (nmap-4.20.tar.bz2) = 2156077

Opa! Agora se eu for instalar o nmap, será a versão 4.20!

Para voltar ao normal as revisões alteradas basta fazer novamente: svn up e todos estarão novamente na revisão mais atual.

É isso pessoal, espero que esse post tenha sido útil e mais uma vez demonstrar o quanto é simples usar FreeBSD e o ports.

Qualquer outra dúvida sobre subversion estudem ele, porque é bem legal. Mais pode ser lido aqui.

 

Share Button

FreeBSD 9.1-STABLE: o FreeBSD 9 com esteróides

Posted by gondim | Posted in FreeBSD, Software Livre, Tecnologia | Posted on 03-01-2013

Tags:

9

esteroides

Para aqueles que gostam de estabilidade + correção de bugs + correção de segurança + algumas features novas então esse é o caso de se usar o STABLE. Mas também é algo como a bebida, use com moderação. Um choppinho de vez em quando e nesse calor vai bem mas todos os dias vai acabar te matando.  🙂

Desculpem a imagem mal feita mas editoração gráfica não é minha praia HAAhAhAhaH

Eu costumo atualizar meu STABLE quando:

  • Muda a release, que nesse caso mudou de 9.0 para 9.1.
  • Tem alguma atualização de segurança.
  • Algo deveria funcionar de um jeito mas está apresentando problemas.
  • Preciso usar algum dispositivo cujo driver só saiu no STABLE e na RELEASE ainda não.

Se tudo está funcionando certinho no seu servidor então vale a frase: “Time que tá ganhando não se mexe”

Outra coisa: leia sempre o /usr/src/UPDATING após fazer o svn e checar as mudanças. Isso é uma boa prática.  😀

Bem, vamos por a mão na massa. Para quem ainda não está usando o subversion e ainda usa o cvs só digo o seguinte: esqueça o CVS, um dia ele foi bom, já deu o que tinha que dar. No momento ele encontra-se tetraplégico e sem função cerebral. Então haja visto que não existe mais futuro para o cvs, vamos então usar o svn (subversion). É muito mais simples e com muito mais recursos que o seu antecessor.

Para quem já tem instalado e usando uma versão STABLE como o 9.1-PRERELEASE e ainda não usou o svn, então pode dar uma olhada neste post para ver como instalar o svn. Não esqueça de salvar o seu kernel e qualquer outro arquivo importante para você que esteja embaixo de /usr/src, porque iremos apagá-lo. A única diferença do post para o que vamos fazer aqui é usar o STABLE fazendo:

# cd /usr/src
# svn co svn://svn.freebsd.org/base/stable/9 /usr/src

No post que citei estaríamos usando o 9.1-RELEASE e não é o nosso objetivo aqui.

Se você está usando o svn e o releng/9.1 que hoje é o 9.1-RELEASE e deseja mudar para 9.1-STABLE, isso é muito simples fazendo o seguinte:

# svn switch svn://svn.freebsd.org/base/stable/9

Para saber qual árvore está usando também é simples:

# svn info
Path: .
Working Copy Root Path: /usr/src
URL: svn://svn.freebsd.org/base/releng/9.1
Repository Root: svn://svn.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 244268
Node Kind: directory
Schedule: normal
Last Changed Author: kensmith
Last Changed Rev: 243710
Last Changed Date: 2012-11-30 17:36:20 -0200 (Fri, 30 Nov 2012)

Repare que segundo a info acima eu ainda estou usando o releng/9.1 que não é o stable. Fazendo tudo certinho sua info deverá ser algo assim:

Path: .
Working Copy Root Path: /usr/src
URL: svn://svn.freebsd.org/base/stable/9
Repository Root: svn://svn.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 244917
Node Kind: directory
Schedule: normal
Last Changed Author: kensmith
Last Changed Rev: 244911
Last Changed Date: 2012-12-31 14:52:52 -0200 (Mon, 31 Dec 2012)

Agora que em /usr/src estamos com os fontes que queremos podemos prosseguir:

# make buildworld && make buildkernel KERNCONF=SEU_KERNEL

Após a compilação acima e se em atualizações anteriores você ainda não criou ou não foi exigido a criação do user auditdistd, esse será o momento fazendo o comando abaixo:

# mergemaster -p

Depois desse processo o restante será o mesmo de sempre:

# make installkernel KERNCONF=SEU_KERNEL
# make installworld
# mergemaster -i -F
# make delete-old
# make delete-old-libs

É sempre bom checar se após apagarmos alguma lib antiga se algum pacote ficou quebrado e podemos fazer isso usando o pkg_libchk. Você pode ver mais sobre ele neste post.

Depois disso é o reboot e checar se já está usando o 9.1-STABLE.

# uname -a
FreeBSD www.bsdinfo.com.br 9.1-STABLE FreeBSD 9.1-STABLE #39 r244917: Tue Jan  1 00:06:24 BRST 2013     [email protected]:/usr/obj/usr/src/sys/GONDIM  amd64

É isso aí pessoal.

Um grande abraço e um ótimo 2013 para todos.

Share Button