Como identificar o gerenciador de pacotes usado para instalar o software no CentOS?

0

No meu servidor do CentOS 7.2:

[root@localhost data]# which php
/usr/local/bin/php
[root@localhost data]# ll /usr/local/bin/php
lrwxrwxrwx. 1 root root 29 Jun 25 08:13 /usr/local/bin/php -> /usr/local/php-7.1.16/bin/php

Existe um PHP em execução no meu CentOS 7.2, mas como posso dpkg --status o gerenciador de pacotes usado para instalar o PHP? Quero dizer, se foi instalado usando yum ou uma instalação do make?

    
por fanhualuojin154873 20.09.2018 / 12:16

3 respostas

1

Executar rpm -qf /usr/local/php-7.1.16/bin/php .

Se responder com:

file /usr/local/php-7.1.16/bin/php is not owned by any package

então você tem certeza de que o arquivo não foi instalado usando qualquer ferramenta de gerenciamento de pacotes RPM.

Como outros já disseram, o fato de ele estar instalado em /usr/local indica que definitivamente não é instalado a partir dos pacotes padrão da distribuição. Pode ser instalado usando make ou pode ser algum RPM de terceiros.

A única maneira de (um pouco) confirmar positivamente que os arquivos foram instalados com make seria encontrar uma árvore de código fonte do PHP 7.1.16 no sistema, com .o ou outros arquivos de código objeto presentes (= indicando que a fonte foi realmente compilada) e seus timestamps estão próximos dos timestamps do binário PHP em /usr/local/php-7.1.16/bin/php.

    
por 20.09.2018 / 13:35
0

Pode ou não ser possível responder a essa pergunta.

Primeiro, use yum para verificar se o binário do PHP pertence a um pacote instalado: yum whatprovides '*bin/php'

Se yum não encontrar o pacote, provavelmente ele não foi instalado via yum . Eu digo muito provavelmente no caso do banco de dados do yum estar corrompido.

Se não foi instalado via yum, então não seria possível determinar se ele foi instalado via make porque make normalmente não deixa nenhum traço de seu uso; Ele copia os arquivos para onde eles precisam ir, mas não deixa um registro de fazê-lo.

    
por 20.09.2018 / 12:32
0

Acho que o seu php foi instalado via make .

Primeiro, no CentOS não há binários php7 nos repositórios oficiais (existem binários php7 em outros repositórios como 'Remi' ou 'Webtatic'), segundo /usr/local/ is, de acordo com o ESF :

The /usr/local hierarchy is for use by the system administrator when installing software locally. It needs to be safe from being overwritten when the system software is updated. It may be used for programs and data that are shareable amongst a group of hosts, but not found in /usr.

IMHO Eu acho que o seu php foi construído localmente com make.

    
por 20.09.2018 / 13:01