Introdução aos pacotes RPM
- O nome completo do RPM é RedHat Package Manager.Ele era originalmente apenas o formato de pacote do Red Hat Linux. Seu nome original era Red Hat Package Manager. Desde então, o RPM passou a ser conhecido como um formato de pacote aceito por muitas outras distribuições Linux. A especificação de padronização do Linux tem RPM como seu formato de pacote oficial.
As principais vantagens do RPM
- Amplamente utilizado. Muitas distribuições Linux podem pelo menos instalar pacotes RPM ou usar RPM como formato de pacote padrão.
- Capacidade de instalar pacotes com apenas um comando. Da mesma forma, remover ou atualizar um pacote requer apenas um comando.
- Apenas um arquivo precisa ser processado. Um pacote RPM é armazenado em um único arquivo, o que facilita muito a transferência de pacotes entre diferentes sistemas.
- O RPM lida automaticamente com a verificação de dependência entre os pacotes. O sistema RPM contém um banco de dados que registra informações sobre todos os pacotes que foram instalados, incluindo o que cada pacote fornece e os requisitos para instalação de cada pacote.
- Os pacotes RPM são projetados para vir do código-fonte "mais limpo", para que possam ser recompilados. O RPM oferece suporte a ferramentas Linux, como patch, que pode corrigir o código-fonte do software durante o processo de compilação.
Estrutura do diretório do pacote RPM
- BUILD : O comando rpmbuild constrói software neste diretório
- RPMS : diretório de armazenamento RPM após a produção
- SOURCES : O diretório onde os arquivos de origem do aplicativo são armazenados
- SPECS : diretório para armazenar arquivos SPEC
- SRPMS : O comando rpmbuild colocará os pacotes de código-fonte RPM neste diretório
- BUILDROOT : Diretório de instalação virtual, instalado temporariamente neste diretório durante todo o processo de instalação, e use este diretório como raiz. Todos os arquivos neste diretório são os arquivos do diretório real, e há um estágio de limpeza no arquivo SPEC final, e o conteúdo deste diretório será excluído.
Introdução aos documentos SPEC
- O arquivo SPEC do pacote RPM contém muitas informações de configuração, incluindo: informações básicas de software, scripts executados antes e depois da instalação e desinstalação, aplicação de patches, descompactação, compilação e instalação do pacote fonte.
- Nome : nome do software
- Resumo : Conteúdo da embalagem
- Versão : número da versão do software
- Lançamento : número de série do lançamento, 1 significa a primeira criação
- Grupo : agrupamento de software, é recomendável usar: Aplicativos/Sistema
- Licença : Método de autorização de software GPLv2
- Fonte : pacote de código-fonte, pode trazer várias fontes, como Source1, Source2, etc., e também pode ser referenciado posteriormente por %{source1}, %{source2}
- BuildRoot : Este é o diretório temporário usado durante a instalação ou compilação, ou seja, o diretório de arquivo gerado após a instalação simulada: %_topdir/BUILDROOT pode ser referenciado posteriormente por $RPM_BUILD_ROOT.
- URL : URI do software
- Fornecedor : organização de embalagem ou pessoal
- %description : Descrição detalhada do software
- %define : Variáveis predefinidas, como definir o caminho do log: _logpath /var/log/weblog
- %prep : Preparando parâmetros, geralmente %setup -q
- %build : Compilar parâmetros./configure --user=nginx --group=nginx --prefix=/usr/local/nginx/…
- %install : etapa de instalação, você precisa especificar o caminho de instalação neste momento, criar um diretório que é gerado automaticamente ao compilar e copiar o arquivo de configuração para o diretório correspondente
- %pre : tarefas que precisam ser feitas antes da instalação, como: criar um usuário
- %post : tarefas que precisam ser executadas após a instalação, como: tarefas iniciadas automaticamente
- %preun : tarefas que precisam ser feitas antes da desinstalação, como: parar a tarefa
- %postun : tarefas a serem executadas após a desinstalação, como: excluir usuários, excluir/fazer backup de dados comerciais
- %clean : Limpa os arquivos temporários gerados pela última compilação, que é o diretório virtual mencionado acima
- %files : Defina os atributos do arquivo, incluindo os diretórios, arquivos e permissões correspondentes às atribuições que precisam ser geradas para os arquivos compilados
Fazer pacote RPM
-
Criar um diretório
- Crie a seguinte estrutura de diretórios
- Crie a seguinte estrutura de diretórios
-
Faça um arquivo spec.
- Crie um arquivo de especificação diretamente em SPECS, o modelo a seguir pode ser usado sem requisitos especiais
-
Name: smallwolf Version: 1.0.0 Release: 1%{ ?dist} Summary: this is small gray wolf Buildroot: %{ _tmppath}/%{ name}-%{ version}-root License: GPL URL: http://www.csdn.net Source0: %{ name}-%{ version}.tar.gz %description This package is small gray wolf %prep %setup -q %install rm -rf %{ buildroot} mkdir -p %{ buildroot}/opt/smallwolfres cp -r %{ _builddir}/smallwolf-1.0.0/opt/smallwolfres/* %{ buildroot}/opt/smallwolfres %post mkdir -p /opt/smallwolfres chmod 0755 /opt/smallwolfres %files /opt/smallwolfres %postun rm -rf /opt/smallwolf echo "clean /opt/smallwolf" %changelog * Wed Jul 4 2018 VBird Tsai <[email protected]> 0.1 - Build the program
-
Faça um arquivo de pacote
- Compacte o diretório smallwolf-1.0.0 no diretório SOURCES tar -zcvf smallwolf-1.0.0.tar.gz smallwolf-1.0.0/
- Copie SOURCES/smallwolf-1.0.0.tar.gz para rpmbuild/BUILD
-
Execute rpmbuild -bb SPECS/smallwolf.spec no diretório rpmbuild
- Depois de executar este comando, se for bem-sucedido, um pacote de instalação com o sufixo rpm será gerado no diretório rpmbuild/RPMS/x86_64
Instalação e desinstalação do pacote RPM
- Instalar
- rpm -ivh smallwolf-1.0.0-1.el8.x86_64.rpm
-
Depois que a instalação for bem-sucedida, haverá nosso programa no diretório correspondente
-
Desinstalar
- rpm -e --nodeps smallwolf