Interagindo com Yum no CentOS usando Python

Interagindo com Yum no CentOS usando Python

Yum é uma utilidade para lidar com pacotes de software que são usados ​​por vários sistemas operacionais conhecidos, como Fedora e CentOS. Yum simplifica as instalações do software em uma instância do CVM e simplifica o download e a instalação dos programas que economizam tempo e esforço. Yum pode determinar, buscar e instalar todos os pacotes de dependentes disponíveis automaticamente, à medida que resolve automaticamente a dependência enquanto atualiza, adicionando ou removendo os pacotes. Vamos aprender mais sobre Yum usando o Python no sistema CentOS neste artigo.

Exemplo 1: Atualize o módulo YUM usando Python em CentOS

Como sabemos, o Yum é uma ferramenta de linha de comando que permite aos usuários instalar e baixar automaticamente os pacotes de RPM atualizados depois de verificar as atualizações.

#!/usr/bin/python
OS de importação
cmd = "yum update"
OS.sistema (CMD)

Aqui, atualizamos Yum com o arquivo python para verificar se o módulo YUM é atualizado dentro do sistema ou requer uma atualização. O script python é dado onde o yum é usado para atualizar. Nós importamos o módulo "OS" para interagir com o sistema operacional CENTOS. Em seguida, usamos "cmd" para interpretar a declaração que é atribuída a ele. Atribuímos um comando para atualizar yum.

O script é salvo no arquivo “Script.py ”aqui. Quando executamos este arquivo python, ele começa a atualizar o yum. A saída imprime a afirmação que afirma que “nenhum pacotes marcados para atualização” porque Yum já está atualizado no CentOS.

[root@linux01 kalsoom]# script python.py
Plugins carregados: RastestMirror, Langpacks
Carregando velocidades de espelho do arquivo host em cache
* Base: espelho.DC.uz
* extras: espelho.DC.uz
* Atualizações: espelho.DC.uz
Nenhum pacotes marcados para atualização

Exemplo 2: Verifique a configuração do YUM usando o Python no CentOS

A abordagem anterior é atualizar o pacote YUM usando o script python interagindo com o CentOS. Agora, o pacote Python "yum" deve ser importado para começar a usar o Yum na programação, que é pré -instalado no sistema operacional do CentOS. Yum é usado para examinar a configuração do yum neste caso.

#!/usr/bin/python
OS de importação
Importar sistemas
importar yum
yb = yum.Yumbase ()
Imprima "**** YUM CONFIG FILE ****"
Imprima yb.conf.config_file_path
Imprima "**** Caminho do arquivo de log ****"
Imprima yb.conf.arquivo de log
Imprima "**** diretórios e arquivos de repositórios ****"
para eu em yb.conf.reposdir: impressão i
Imprima "**** parâmetro pular-quebrado ****"
Imprima yb.conf.skip_broken
Imprima "**** Defina o nível de erros ****"
Imprima yb.conf.ErrorLevel

O código -fonte anterior é importado com o módulo "yum" junto com os outros módulos necessários. Depois disso, criamos a variável "yb" onde a classe base yumbase () do módulo "yum" é implantada. Usamos essa linha de código em cada um de nossos scripts de exemplo, porque a Yumbase é a classe raiz que contém os métodos e objetos necessários para realizar todas as operações de gerenciamento de pacotes usando YUM.

As declarações de impressão são dadas para verificar a configuração do yum. Primeiro, temos uma declaração de impressão que exibe o caminho do arquivo de configuração YUM. Em seguida, definimos um comando de impressão do arquivo de log usando a variável "yb" para buscar o caminho do arquivo de log de yum. Depois disso, usamos o comando "reposdir" para gerar os diretórios e arquivos do repositório. Em seguida, temos um comando yum de um parâmetro pular quebrado que retorna false por padrão quando nenhum valor booleano é especificado para ele. Quando o parâmetro Skip-Broken é dado a um comando Yumbase Configuration com um valor verdadeiro, ele permite que Yum exclua automaticamente os pacotes danificados de atualizações sem a entrada do usuário. O último comando da configuração do YUM é "ErrorLevel" para definir o nível de erro. Tem um valor que varia de zero e 10, onde 0 é apenas importante e 10 compreende depuração.

A configuração YUM imprime o arquivo de configuração do yum no terminal. Também temos o caminho do arquivo de log da configuração do YUM. Junto com isso, os diretórios e arquivos do repositório YUM são exibidos. Em seguida, obtemos o valor falso do comando Skip-Broken, pois nenhum valor é definido contra este. O nível de resultado do erro também é gerado como "2".

[root@linux01 kalsoom]# script python.py
**** Arquivo de configuração yum ****
Plugins carregados: RastestMirror, Langpacks
/etc/yum.conf
**** Caminho do arquivo de log ****
/var/log/yum.registro
**** Diretórios e arquivos de repositórios ****
/etc/yum/repositórios.d
/etc/yum.Repos.d
**** parâmetro pular-quebrado ****
Falso
**** Defina o nível de erros ****
2

Exemplo 3: Pesquise pacotes dos repositórios YUM usando Python no CentOS

Yum, neste caso, é utilizado para localizar e imprimir os repositórios YUM para os pacotes especificados. Usamos alguns métodos diferentes da classe Yumbase do seguinte pacote YUM:

OS de importação
Importar sistemas
importar yum
yb = yum.Yumbase ()
yb.setcachedir ()
Resultados = yb.pkgsack.ReturnNewestBynamearch (Padrões = ["Python", "Php"]))
Para PKG nos resultados:
imprimir "%s%s (%s) \ n \ t%s"%(pkg.Nome, Pkg.Versão, pkg.Arch, Pkg.resumo)

Depois de implantar o módulo YUM no script Python anterior, inserimos o yum.Linha yumbase () para iniciar o código. Em seguida, definimos o comando setcachedir () de Yumbase para estabelecer um novo diretório de cache YUM para executar todas as operações como usuário regular e o usuário root. A próxima linha do script é definida com a variável "resultados", onde usamos o Yumbase, que é invocado com o comando "pkgscak" para executar as consultas em todos os repositórios acessíveis. Depois disso, usamos a função "ReturnNewstbynamearch" do atributo "pkhscak" de yum. O método ReturnNewStBynamearch () recupera os objetos do pacote que correspondem às seqüências de padrings "Python" ou "Php".

As informações relacionadas aos pacotes "python" e "php" são impressas no terminal do CentOS pelo módulo YUM.

[root@linux01 kalsoom]# script python.py
Plugins carregados: RastestMirror, Langpacks
Carregando velocidades de espelho do arquivo host em cache
* Base: espelho.DC.uz
* extras: espelho.DC.uz
* Atualizações: espelho.DC.uz
Python 2.7.5 (x86_64)
Uma linguagem de programação interpretada, interativa e orientada a objetos
Php 5.4.16 (x86_64)
Linguagem de script de php para criar sites dinâmicos

Exemplo 4: Instale o pacote com o método YUM usando Python no CentOS

A instalação do pacote com yum requer a configuração e a conclusão de uma transação. A classe Yumbase do módulo YUM fornece o método para instalar os pacotes no CentOS usando Python.

OS de importação
Importar sistemas
importar yum
yb = yum.Yumbase ()
yb.instalar (name = 'php')
yb.ResolvedEps ()
yb.ProcessTransaction ()

Implantamos a classe Yumbase () na variável "YB" depois de importar os módulos YUM no script Python anterior. Então, nós utilizamos o YB.Instale o comando para simplesmente instalar o pacote especificado. O yb.o método de instalação () toma o "nome" como um argumento ao qual atribuímos o nome do pacote "php" para definir a transação. Depois disso, para iniciar a resolução das dependências, o “YB.o método resolvedps () ”é chamado. Em seguida, o método ProcessTransaction () aciona a instalação do pacote "PHP".

Podemos ver na saída que o pacote PHP é instalado com sucesso no sistema operacional CentOS, interagindo com os métodos YUM.

[root@linux01 kalsoom]# script python.py
Plugins carregados: RastestMirror, Langpacks
Carregando velocidades de espelho do arquivo host em cache
* Base: espelho.DC.uz
* extras: espelho.DC.uz
* Atualizações: espelho.DC.uz
Pacote php-5.4.16-48.EL7.x86_64 já instalado e mais recente versão
Verificação de transação em execução

Exemplo 5: Defina um repositório em um determinado local com o método YUM usando Python no CentOS

Yum pode ser configurado para recuperar um repositório em qualquer local. Ele espera aceitar um parâmetro de linha de comando que contenha o URL do repositório.

OS de importação
Importar sistemas
importar yum
url = sys.argv [1]
yb = yum.Yumbase ()
se não yb.setcachedir (force = true, reutilização = false): print >> sys.Stderr, "Ative para criar um TMP. Cachedir. "
sys.saída (1)
yb.Repos.desableRepo ('*')
yb.add_enable_repo ('newrepos', [url])

Aqui, empregamos o YB.Repos.Método DisableRepo ('*') que desativa todos os repositórios enquanto damos o símbolo de asterisco dentro dele. Depois disso, chamamos o YB.Método add_enable_repo () para ativar o repositório especificado onde o URL está definido.

O script Python anterior, ao interagir com Yum, define o repositório fornecido no local específico do CentOS, que gera os seguintes resultados:

[root@linux01 kalsoom]# script python.py url: // para/new/repos
Plugins carregados: RastestMirror, Langpacks

Conclusão

Este guia explorou maneiras de usar a API Python do pacote YUM. Simplesmente executamos o comando UM do script python para atualizar a operação. Em seguida, utilizamos o pacote YUM para a configuração de Yum em CentOS. Além disso, o pacote específico é consultado usando o módulo YUM. Depois disso, demonstramos a maneira de instalar o pacote com o método Yum de instalação. Da mesma maneira, também podemos desinstalar esse pacote usando o YB.Remover () Método. No final, definimos o repositório no local interagindo com o módulo YUM em Python.