1 Customização ao Extremo Daniel Pimentel d4n1.org
Agenda 2 Introdução Tecnologias Git Portage Metro OpenVZ Xz Referências Conclusão
Introdução 3 Criado em 2008 por Daniel Robbins Fun/too, um jogo de palavras Fazer progresso é divertido (Inovação) Direcionado ao núcleo do sistema Há muito o que corrigir no 'baixo' nível do sistema Não usa pacotes binários Espírito hacker de desenvolvimento Ciclo de desenvolvimento continuo Foco, foco, foco...
Introdução 4 Funtoo X Gentoo
Introdução 5 Instalação em 13 passos Boot de qualquer LiveCD Particionamento do disco Criar e montar os filesystems Instalar o Funtoo stage Instalar a árvore do Portage Chroot para o novo sistema Atualizar a árvore do Portage Configurar seu sistema Instalar um kernel Configurar sua Rede Instalar um gerenciador de boot Ajustes finais Reboot
Sistema de Controle de Versão Distribuído (DVCS) Criado por Linus Torvalds sob a licença GPL 6 Tecnologia Git
7 Tecnologia Git $ git config global user.name "Daniel Pimentel" $ git config global user.email d4n1@d4n1.org $ mkdir hacker $ cd hacker $ git init $ touch hacker.py $ git add hacker.py $ git commit m "hacker 1.0 $ git diff $ git log
8 Tecnologia Git $ git branch experimental $ git branch $ git checkout experimental <editar hacker.py> $ git commit a m "hacker experimental" $ git checkout master <editar hacker.py> $ git commit a $ git merge experimental $ git diff
9 Tecnologia Portage Gerenciador de pacotes oficiais do Funtoo Gnu/Linux Desenvolvido em python Resolve depêndencias semelhante ao Apt do Debian Similar ao ports do FreeBSD Ebuild São shell scripts com instrunções de como obter, configurar, compilar e instalar os aplicativos Usa o gcc para a compilação +25.000 ebuilds disponíveis
10 Tecnologia Portage Emerge Coração do Portage Customização atravéz de parâmetros Calcula e gerência dependências Executa ebuilds em um ambiente sandbox (ambiente seguro de compilação) Mantém a estrutura da árvore local do Portage (/usr/portage/) e uma base de dados de pacotes instalados (/var/lib/portage/) Uso de CFLAGS (variáveis do Makefile) Uso de flags USE customizadas Mascaramento de pacotes (experimental)
11 Tecnologia Portage # emerge sync # emerge package # emerge ask verbose ( av) package # emerge search ( s) package # emerge searchdesc ( S) package # emerge unmerge ( D) package # emerge unmerge deep ( DC) package # emerge pretend ( p) package # emerge update ( u) package # emerge depclean ( c) package # emerge DaNuv world GUI: Portato/Porthole/Himerge
12 Tecnologia Metro Sistema de compilação automatizado Stage3 > stage semente > stage1 > stage2 > stage3... Local build / Remote build # emerge ac dev util/metro # install d /root/git # cd /root/git # git clone https://github.com/ funtoo/metro.git # ln s /root/git/metro/metro /usr/ bin/metro # ln s /root/git/metro /usr/lib/metro
13 Tecnologia Metro # install d /home/dani/dani/projects/ funtoo/funtoo current/x86 32bit/core2_32 # cd /home/dani/dani/projects/funtoo/ funtoo current/x86 32bit/core2_32 # install d 2011 04 08 # cd 2011 04 08 # wget c http://ftp.osuosl.org/pub/ funtoo/funtoo current/x86 32bit/core2_32/ 2011 04 08/stage3 core2_32 funtoo current 2011 04 08.tar.xz # cd.. # install d.control/version # echo "2011 04 08" >.control/version/ stage3
14 Tecnologia Metro # install d.control/strategy # echo "local" >.control/strategy/build # echo "stage3" >.control/strategy/seed # /usr/lib/metro/scripts/ezbuild.sh funtoo current core2_32 # echo "local" > /home/dani/dani/ projects/funtoo/funtoo current/x86 32bit/ core2_32/.control/strategy/build
15 Tecnologia OpenVz Servidor Privado Virtual (VPS)
16 Xz X outros... Tecnologia Xz
Referências 17 http://www.kernel.org/pub/software/scm/ git/docs/gittutorial.html http://docs.funtoo.org/wiki/funtoo_linux http://docs.funtoo.org/wiki/portage_%28 Funtoo%29 http://docs.funtoo.org/wiki/metro_quick _Start_Tutorial
Conclusão 18 http://forums.funtoo.org/ IRC #funtoo d4n1.org