empacotamento deb e rpm - colab · 3 compilador introdução no princípio só existia o...
TRANSCRIPT
![Page 1: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/1.jpg)
1
Empacotamento deb
erpm
Grupo: EspeditoGrupo: Espedito Anderson Anderson Américo Américo Jean Jean
![Page 2: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/2.jpg)
2
IntroduçãoCompilaçãoPacotesGerenciadores
.deb
.rpmConclusão
Agenda
![Page 3: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/3.jpg)
3
compilador
Introdução
No princípio só existia o binário...
binário
machine code
linguagem demáquina
fonte
source code
linguagem deprogramação
interpretador
![Page 4: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/4.jpg)
4
Compilando programas
Obter o programa fonteftp://lynx.isc.org/> cd lynx2.8.6> bin> get lynx2.8.6rel.4.tar.gz> quit
89 gcc ...
Descompactartar xzvf lynx2.8.6rel.4.tar.gz
Obter informaçõescd lynx2.8.6less README
Compilargcc DHAVE_CONFIG 02 DLINUX \
c src/HTParce.c ...gcc DHAVE_CONFIG 02 DLINUX \ c src/HTAccess.c ...
Dependências !
![Page 5: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/5.jpg)
5
Dependências:
Compilando programas
Obter o programa fontewget c ftp://lynx.isc.org/lynx2.8.6/ \
lynx2.8.6rel.2.tar.gz Descompactartar xzvf lynx2.8.6rel.4.tar.gz
Adequar o makefilecd lynx281./configure
Compilarmake
Instalarmake install
configure: error: no acceptable cc found in $PATH
sudo aptget install buildessential
configure: error: no curses library found
sudo aptget install libncurses5dev
![Page 6: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/6.jpg)
6
Pacote
Arquivo, normalmente compactado, que contém todos os arquivos - binários, fontes, shell scripts, configuração, dados, copyright, documentação, etc - necessários a instalação de um software.Contém também as informações para sua remoção, configuração e manutenção pelo gerenciador de pacotes.
Binário Fonte
![Page 7: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/7.jpg)
7
Gerenciador de pacotes
Software cuja função é facilitar a instalação, remoção e configuração de pacotes.Também pode compilar e empacotar um aplicativo.
Dependências !
TGZ – Slackware
DPKG – Debian PacKaGe
RPM – RedHat Package Manager
![Page 8: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/8.jpg)
8
Gerenciador avançado de pacotes
Software que busca pacotes em repositórios locais ou remotos, se necessário resolve dependências, e utilizando um gerenciador de pacotes os instala, remove e configura.
Dependências
APT – Advanced Package Tool YUM – Yellow Dog - RedHat Enterprise – Fedora URPMI – MandrivaYOU – SuSEPorts – FreeBSDPortage – Gentoo
Repositórios
![Page 9: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/9.jpg)
9
DPKG – Debian PacKaGe
Poderoso gerenciador de pacotes- instalar- atualizar- remover- construir
Desenvolvido inicialmente para Debian (.deb)
Nome do arquivo: programa_1.0.1-1_i386.deb
Controla dependências mas não as instala
Pacote = arquivo de arquivos- configurações- binários
![Page 10: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/10.jpg)
10
Informações sobre os pacotes
Estado dos pacotes:- installed (desempacotado e configurado)- half-installed (instalação não concluída)- unpacked (desenpacotado e não configurado)- half-configured (desempacotado e configuração não
concluída)- config-files (só resta arquivos de configuração)
Estado de seleção dos pacotes:- install (marcado para instalação)- deinstall (marcado para remoção)- purge (marcado para remoção completa)
Flag dos pacotes:- hold (só pode ser manipulado com --force-hold)- reinst-required (quebrado, precisa dependências)
![Page 11: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/11.jpg)
11
Principais comandos do DPKG
Instalar o pacote# dpkg i pacote
Remover o pacote# dpkg P pacote
Informações sobre o pacote# dpkg I pacote# dpkg c pacote
Reconfigurar o pacote# dpkgreconfigure pacote
Instalar mesmos pacotes em máquinas diferentes# dpkg getselections > pacotes.txt# dpkg setselections < pacotes.txt# dselect install
![Page 12: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/12.jpg)
12
Ferramentas - dselect
Front-end texto para o DPKG
![Page 13: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/13.jpg)
13
APT – Advanced Package Tool
É uma extensão do DPKG
Gerencia dependências
Conecta o sistema a um repositório/etc/apt/sources.list
Salva os pacotes em /var/cache/apt/archives# aptget clean
![Page 14: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/14.jpg)
14
Principais comandos do APT
# aptget update
apt-cdrom (adiciona CDROMs no sources.list)# aptcdrom add
apt-get (download e instalação de pacotes)# aptget install pacote# aptget remove pacote# aptget remove purge pacote
apt-cache (manipula cache dos pacotes e faz consultas)# aptcache search pacote
Obter o programa fonte (precisa ter o deb-src habilitado)# aptget source pacote# aptget d install pacote# dpkg x e pacote diretório
![Page 15: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/15.jpg)
15
Ferramentas - aptitude
Front-end texto para o APT
![Page 16: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/16.jpg)
16
Ferramentas - synaptic
- Front-end gráfico para o APT- Criado por Alfredo Kojima com ajuda de Gustavo Niemeyer (Conectiva)
![Page 17: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/17.jpg)
17
Ferramentas - debfoster
Mantém uma lista de pacotes que foram instalados explicitamente e suas dependências
![Page 18: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/18.jpg)
18
Empacotamento .deb
dh_make:converte os fontes para o padrão Debian
dpkg-buildpackage:constrói pacotes binários, fontes e assina os arquivos .dsc e .changesdpkg-source:constrói pacotes fonte
lintian e linda:verifica e reporta bugs e violações na política dos pacotes Debian.dbuild:faz o mesmo que o dpkg-buildpackage e executa o lintian e/ou linda.uupdate:atualiza pacotes-fonte.
Estrutura para empacotamento:- .orig.tar.gz (código fonte original)
- .diff.gz (alterações feitas para empacotar)
- .dsc (arquivo com informações de controle)
- .changes (mudanças na revisão atual)
![Page 19: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/19.jpg)
19
Construindo um pacote do zero
A partir do código original:$ wget http://ftp.gnu.org/gnu/hello/hello2.1.1.tar.gz$ tar zxvf hello2.1.1.tar.gz$ cd hello2.1.1$ dh_make e [email protected] f ../hello2.1.1.tar.gz
Ou a partir do fonte do repositório:$ aptget source hello$ rm hello_2.1.1*$ cd hello2.1.1
Então gerar o pacote:$ dpkgbuildpackage rfakeroot us uc$ cd ..$ lintian i *.dsc
![Page 20: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/20.jpg)
20
Metapacotes
Nome do sistema: programa-1.0$ mkdir p programa1.0/debian/changelog$ mkdir programa1.0/debian/control$ mkdir programa1.0/debian/copyright$ mkdir programa1.0/debian/rules$ chmod 755 programa1.0/debian/rules$ debuild us uc
control:
![Page 21: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/21.jpg)
21
Recursos interessantes
svn-autoreleasedeb – Empacota direto do SVNcvs-autoreleasedeb – Empacota direto do CVS
alien – Converte pacotes de um formato de empacotamento para outro
.deb
.rpm
.tgz
.pkg
![Page 22: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/22.jpg)
22
Uso do RPM
Pacotesbinários .rpmpacotesfonte .src.rpm
Modos de operaçãoinstalação idesinstalação eatualização Uconsulta qverificação V
Freshen Fimportação de chave importAssinatura de pacotes addsignreassinatura de pacotes resignverificação de assinatura de pacotes Kinicialização initdbreconstrução do banco de dados rebuilddb
Comando rpm
Obter pacotesrepositórios
![Page 23: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/23.jpg)
23
Instalando pacotes rpm
Obtendo pacotes # su# mount /dev/cdrom /mnt/ # cd /mnt/Fedora/RPMS
Para instalar # rpm ivh mc4.6.1a26.fc5.i386.rpm
# rpm i *.rpm # rpm i test mc4.6.1a26.fc5.i386.rpm# rpm i replacepkgs mc4.6.1a26.fc5.i386.rpm# rpm i excludedocs mc4.6.1a26.fc5.i386.rpm# rpm i nodeps mc4.6.1a26.fc5.i386.rpm
/usr/bin/etc/usr/share/nome_do_programa
![Page 24: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/24.jpg)
24
Desinstalando pacotes rpm
Para desinstalar# rpm e mc# rpm e nodeps mc
![Page 25: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/25.jpg)
25
Atualizando pacotes rpm
Para atualizar# rpm Uvh mc4.6.1a26.fc5.i386.rpm
Para recarregar# rpm Fvh mc4.6.1a26.fc5.i386.rpm# rpm Fvh *.rpm
![Page 26: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/26.jpg)
26
Consultando pacotes rpm
Para consultar# rpm qa# rpm ql mc# rpm qlp mc4.6.1a26.fc5.i386.rpm# rpm qi mc# rpm qip mc4.6.1a26.fc5.i386.rpm
![Page 27: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/27.jpg)
27
Verificando pacotes rpm
Para verificar# rpm Va# rpm V mc# rpm Vp mc4.6.1a26.fc5.i386.rpm # rpm Vg alunos# rpm Vv mc# man rpm
![Page 28: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/28.jpg)
28
RPMRPM
RPM Package Manager;
Gerenciador de pacote criado pela RedHat sob licença GPL;
Usado pelas distribuições baseadas em RedHat como: Suse, OpenSuse, Fedora Core, Mandriva etc.
Funções de gerenciador de pacotes: instalar, atualizar, remover, consultar, construir e assinar pacotes.
![Page 29: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/29.jpg)
29
Arquivos do RPMArquivos do RPM
Configuração geral/usr/lib/rpm/rpmrc/home/<usuario>/.rpmrc/root/.rpmrc
Configuração de macros/usr/lib/rpm/macros/home/<usuario>/.rpmmacros/root/.rpmmacros
Banco de dados/var/lib/rpm
![Page 30: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/30.jpg)
30
.rpm.rpm
Pacotes binárioUtilizados para encapsular o software a
ser instalado
Pacotes-fonteContém o código-fonte e o
procedimento necessário para produzir os pacotes binários, tudo em um único arquivo .src.rpm
![Page 31: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/31.jpg)
31
Construção de pacote Construção de pacote .rpm.rpm
rpmbuildrpmbuild é o comando para construção de pacote .rpm, para tanto é necessário que sejam fornecidos:
arquivo-fonte do programa e seus patches no diretório /usr/src/redhat/SOURCES
arquivos spec no diretório /usr/src/redhat/SRPMS
Depois de criados os pacotes-fonte são colocados no diretório /usr/src/redhat/SRPMS
Enquanto que os pacotes binários são colocados no diretório /usr/src/RPMS/arquitetura
Requer outros pacotes instalados como por exemplo: rpm-devel, rpm-python, make, gcc,gcc-c++, gnupg, etc.
![Page 32: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/32.jpg)
32
Arquivo specO arquivo spec é o coração do processo de construção de
pacote .rpm, trata-se de arquivo bastante complexo sendo dividido em nove seções:
% c h a n g e l o g ( r e g i s t r o d a s a t u a l i z a ç õ e s q u e o p a c o t e s o f r e u d e s d e s u a c r i a ç ã o ) .
M u d a n ç a s
% f i l e s ( l i s t a d e a r q u i v o s q u e f a z p a r t e d o p a c o t e : c o n f i g u r a ç ã o e d o c u m e n t a ç ã o ) a l é m d e m a c r o s p a r a d e f i n i ç ã o a t r i b u t o s .
A r q u i v o s
% c l e a n ( l i m p a r s i s t e m a a p ó s c o n s t r u ç ã o d e p a c o t e s )L i m p e z a
% v e r i f y s c r i p t ( e x i b i d a s a o u t i l i z a r m o d o d e v e r i f i c a ç ã o R P M )V e r i f i c a ç ã o
% p r e , % p o s t , % p o s t u n ( l o c a l d e o r g a n i z a ç ã o d e s c r i p t s p a r a i n s t a l a ç ã o e o u r e m o ç ã o d e p a c o t e )
S c r i p t s
s c r i p t % i n s t a l lI n s t a l a ç ã o
s c r i p t % b u i l d ( c o m p i l a ç ã o ) s h e l l s c r i p t s e m a k eC o n s t r u ç ã o
s c r i p t % p r e p ( d e s c o m p a c t a r o s p r o g r a m a s f o n t e ) s h e l l s c r i p t s e m a c r o s
P r e p a r a ç ã oi n f o r m a ç õ e s e x i b i d a s a o u t i l i z a r m o d o d e c o n s u l t a d o R P MP r e â m b u l o
% c h a n g e l o g ( r e g i s t r o d a s a t u a l i z a ç õ e s q u e o p a c o t e s o f r e u d e s d e s u a c r i a ç ã o ) .
M u d a n ç a s
% f i l e s ( l i s t a d e a r q u i v o s q u e f a z p a r t e d o p a c o t e : c o n f i g u r a ç ã o e d o c u m e n t a ç ã o ) a l é m d e m a c r o s p a r a d e f i n i ç ã o a t r i b u t o s .
A r q u i v o s
% c l e a n ( l i m p a r s i s t e m a a p ó s c o n s t r u ç ã o d e p a c o t e s )L i m p e z a
% v e r i f y s c r i p t ( e x i b i d a s a o u t i l i z a r m o d o d e v e r i f i c a ç ã o R P M )V e r i f i c a ç ã o
% p r e , % p o s t , % p o s t u n ( l o c a l d e o r g a n i z a ç ã o d e s c r i p t s p a r a i n s t a l a ç ã o e o u r e m o ç ã o d e p a c o t e )
S c r i p t s
s c r i p t % i n s t a l lI n s t a l a ç ã o
s c r i p t % b u i l d ( c o m p i l a ç ã o ) s h e l l s c r i p t s e m a k eC o n s t r u ç ã o
s c r i p t % p r e p ( d e s c o m p a c t a r o s p r o g r a m a s f o n t e ) s h e l l s c r i p t s e m a c r o s
P r e p a r a ç ã oi n f o r m a ç õ e s e x i b i d a s a o u t i l i z a r m o d o d e c o n s u l t a d o R P MP r e â m b u l o
![Page 33: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/33.jpg)
33
.rpm
Fonte: www.ibm.com/linux
![Page 34: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/34.jpg)
34
Conclusão
E a evolução continua...
Smart Package ManagerGustavo Niemeyer - Canonical
Conary
![Page 35: Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o binário... binário machine code linguagem de máquina fonte source code linguagem de programação](https://reader031.vdocuments.pub/reader031/viewer/2022020216/5c155ff709d3f297338d2909/html5/thumbnails/35.jpg)
35
Bibliografia
João Eriberto Mota Filho, Descobrindo o Linux – Novatec Editora Ltda, 2006.Rubem E. Ferreira, Gerenciamento de Pacotes de Software no LINUX –
Novatec Editora Ltda, 2006.http://www.debian.org/doc/FAQ/ch-pkg_basicshttp://www.pcwebpedia.comhttp://www.wiggy.net/presentations/2000/PackageManagement/article/article.pdfhttp://www1.mandrivalinux.com/cooker/urpmi.htmlhttp://www.redhat.comhttp://www.vivaolinux.com.br
http://wiki.rpath.com/wiki/Conary
http://labix.org/smar
O Guia de Empacotamento no Ubuntu - Ubuntu GNU/Linux 6.06 Dapperhttp://www.wikipedia.orghttp://www.redhat.comhttp://www.ibm.com/openhttp://www.ibm.com/linux