Post em Destaque

Pede pra sair do Facebook último cofundador do Whatsapp

Sai do Facebook, ou pelo menos anunciou que sairá, o último cofundador do Whatsapp, Jan Koum. Ele e o sócio venderam o Whatsapp em 2014 por US$ 19 bilhões para o Facebook mas ficaram na diretoria. Brian Acton, outro cofundador do Whatsapp, já havia deixado o Facebook em novembro do ano passado. Veja...

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 – Fim do Ports no CVS em 2013

Posted by gondim | Posted in FreeBSD | Posted on 07-09-2012

Tags:, , , , ,

2

Para quem atualiza o ports através do cvs, à partir de 28 de Fevereiro de 2013 não estará mais disponível esse recurso. Aconselha-se usar o portsnap ou migrar para o svn (subversion). Abaixo a notícia na íntegra e outras explicações dos motivos que levaram à isso:

The development of FreeBSD ports is done in Subversion nowadays.
For the sake of compatibility a Subversion to CVS exporter is
in place which has some limitations. For CVSup mirroring cvsup
based on Ezm3 is used which breaks regularly especially on amd64
and with Clang and becomes more and more unmaintainable.

For those reasons by February 28th 2013 the FreeBSD ports tree will
no longer be exported to CVS. Therefore ports tree updates via CVS
or CVSup will no longer available after that date. All users who use
CVS or CVSup to update the ports tree are encouraged to switch to
portsnap(8) [1] or for users which need more control over their ports
collection checkout use Subversion directly:

% svn co https://svn0.us-west.FreeBSD.org/ports/head /usr/ports

and update a checked out repository using:

% cd /usr/ports && svn update

Advanced users, or larger sites, might consider setting up a local
svn mirror. Both for people doing direct checkouts and for people
wanting to use a local mirror, they can access one of the public
subversion servers [2].

How to set up a Subversion mirror using svnsync(1) is described in
the FreeBSD Committers Guide [3]. Initial seeds to set up a svnsync
mirror are provided on the FreeBSD FTP mirror sites under
/pub/FreeBSD/development/subversion/.

Binary packages for pkg_install are still provided via the FTP mirror
network. There is also pkgng which is a feature rich replacement tool
for pkg_install available in the ports tree under ports/ports-mgmt/pkg.
Packages for pkgng are available on pkg.FreeBSD.org.

To use pkg.FreeBSD.org at least pkgng 1.0 RC6 is needed and can be
enabled in pkg.conf like this (where ${ABI} is dependent on your
system):
PACKAGESITE         : http://pkg.freebsd.org/${ABI}/latest
SRV_MIRRORS         : YES

With pkgng 1.0 SRV_MIRRORS is enabled by default and no longer needs
to be set explicitly. If pkgng prior to 1.0 RC6 is used
http://pkgbeta.FreeBSD.org can be used as packagesite instead.

Please keep im mind that the pkgng infrastructure is still considered
as beta. More information about pkgng can be found at
http://wiki.FreeBSD.org/pkgng and https://github.com/pkgng/pkgng.

Beat, on behalf of portmgr@

[1] http://www.FreeBSD.org/doc/handbook/updating-upgrading-portsnap.html
[2] http://www.FreeBSD.org/doc/handbook/mirrors-svn.html
[3]
http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/committers-guide/subversion-primer.html
Share Button