Não tenho experiência em administração de sistema, no entanto, devido a alguns motivos, preciso executar algumas tarefas conforme descrito abaixo:
Preciso instalar alguns pacotes no RHEL em 4-5 nós, usando "yum" no sistema operacional RHEL 7.x. Para fazer isso, me deparei com vários termos como: yum
, .repo
, .rpm
.
Eu entendi um pouco que usando yum
podemos instalar um software, mas estou tendo dificuldades em como yum
obter o software da internet.
Alguém pode me ajudar a entender os seguintes pontos:
1) É yum
o programa que faz a instalação do software?
2) O que é .rpm
? Possui .rpm
o software real que é instalado? É .rpm
um pouco semelhante a .tar
?
3) Como faço para yum
obter/baixar o software da internet? Ele consulta o .repo
arquivo?
4) Quando escrevemos yum - y install some_program
, primeiro baixamos os binários da Internet e depois instalamos ou precisamos fazer alguns rsync
.
Estou confuso, tentei encontrar as respostas online, mas minhas dúvidas ainda permanecem. Alguém pode me ajudar com palavras simples?
Responder1
RPM é pacote. Pacote de algum software. Ele contém os arquivos no arquivo CPIO (semelhante ao tar, apenas em formato diferente) e algumas informações (por exemplo, quais outros pacotes ele precisa) e scripts que precisam ser executados quando o pacote é instalado/atualizado/removido (esses são executados automaticamente por /usr /bin/rpm).
A maioria dos softwares Linux está vinculada dinamicamente. Ou seja, para o pacote firefox você precisa do pacote libnss (e vários outros). Isso tem a vantagem de que, se houver um problema de bug/segurança, o mantenedor desta biblioteca atualiza apenas essa biblioteca e não precisa recompilar todos os programas que a utilizam (podem ser centenas deles).
distribuição típica (RHEL) é composta por milhares de pacotes RPM. Eles estão agrupados em um diretório chamado repositório. A Red Hat fornece algum repositório base. Depois, existem alguns outros repositórios com alguns produtos (por exemplo, todos os pacotes necessários para OpenStack ou Satellite ou qualquer outra coisa). Um dos repositórios mais conhecidos é o EPELhttps://fedoraproject.org/wiki/EPELque contém pacote para RHELs. Ele fornece software que falta no RHEL e é suportado pela comunidade (ou seja, sem garantia).
Embora você possa baixar o pacote RPM manualmente e instalá-lo,
/usr/bin/rpm -Uvh somepackage.rpm
você provavelmente receberá algum errosomelibrary
necessário. Se você baixar esse pacote e tentar instalá-lo, receberá o errosomeotherlibrary
necessário. Isso é chamado de cadeia de dependência. Às vezes essa dependência é até circular e você não consegue instalar uma por uma. Quando você instala algum software é bastante comum que ele exija dezenas ou até centenas de dependências. Instalá-los manualmente levaria muito tempo.YUM é um programa que resolverá automaticamente as dependências e escolherá nos repositórios os melhores pacotes para satisfazer essas dependências. Portanto, até mesmo a atualização e instalação de algum software é uma tarefa fácil. Por exemplo
yum install firefox
.Yum pode baixar os pacotes para você. Basta saber a URL desses repositórios (lembre-se que você pode ter um ou mais repositórios configurados para o seu sistema). A URL é armazenada em
.repo
arquivos. Eles residem em/etc/yum.repos.d/
. É um arquivo de texto simples (em formato INI) e contém a URL e algumas outras informações (por exemplo, se os pacotes são assinados por GPG). Se você configurar corretamente os arquivos repo, o YUM poderá instalar facilmente o software desses repositórios. Ao executá-/usr/bin/yum install firefox
lo irá baixar informações de todos os repositórios configurados, então irá informar que o firefox e X outras dependências serão instaladas. Quando você confirmar, ele fará o download desses pacotes e os instalará. Não há necessidade de executar o rsync.