Por que 'make install' não produz um rpm?

0

Um pequeno prefácio:
Não consigo copiar + colar entre o meu PC Windows e uma máquina Linux que estou visualizando no VNC Viewer e sim a opção Share Clipboard está ativada nas Configurações VNC.
Assim me deparei com o autocutsel.

Eu fiz o download de aqui .
Extraído o arquivo e conforme o arquivo leia-me, executei os seguintes comandos:

./configure  
make  
make install

Minha expectativa era que isso me apresentasse um arquivo rpm instalável.
No entanto, isso não acontece e, em vez disso, recebo esta mensagem:

[root@linuxpc autocutsel-0.9.1]# make install  
make[1]: Entering directory '/root/Desktop/autocutsel-0.9.1'  
 /bin/mkdir -p '/usr/local/bin'  
/bin/sh ./libtool   --mode=install /usr/bin/install -c autocutsel cutsel '/usr/local/bin'  
libtool: install: /usr/bin/install -c autocutsel /usr/local/bin/autocutsel  
libtool: install: /usr/bin/install -c cutsel /usr/local/bin/cutsel  
make[1]: Nothing to be done for 'install-data-am'.  
make[1]: Leaving directory '/root/Desktop/autocutsel-0.9.1'   

Alguém por favor pode me ajudar. Isso é algo que nunca encontrei antes.
P.S Estou usando o Oracle Linux.

    
por Gh0sT 31.01.2014 / 09:46

3 respostas

2

make install não fará de você um pacote rpm, apenas moverá os executáveis compilados para os locais apropriados (como / usr / bin / local). Você nunca precisa usar make install ; é apenas uma conveniência que coloca seus executáveis em um local central em vez de deixá-los onde eles foram construídos em qualquer diretório que você colocar a fonte. Os lugares para os quais ele move coisas também estão provavelmente em seu PATH , então você não precisa digitar um caminho completo quando quiser executar suas coisas.

Não há realmente nenhum conceito como a instalação no Linux, na medida em que envolve entradas de registro e arquivos ocultos escondidos em cantos do sistema operacional como no Windows. É apenas colocar arquivos em lugares mais convenientes e organizáveis. Geralmente, os próprios programas lidam com a criação de diretórios de configuração e armazenamento. Fazer pacotes rpm é um pouco mais complicado e requer, entre outras coisas, que você escreva um arquivo .spec que especifique coisas como nome, versão e descrição, bem como instruções para o que o gerenciador de pacotes deve fazer para construir e instalar as entranhas cruas.

Se você olhar para essa saída:

libtool: install: /usr/bin/install -c autocutsel /usr/local/bin/autocutsel  
libtool: install: /usr/bin/install -c cutsel /usr/local/bin/cutsel 

install apenas copia arquivos e define as permissões adequadas nesses arquivos. autocutsel e cutsel já foram copiados para /usr/local/bin .

E as duas últimas linhas:

make[1]: Nothing to be done for 'install-data-am'.  
make[1]: Leaving directory '/root/Desktop/autocutsel-0.9.1'   

install-data-am é um destino de fabricação separado e, por qualquer motivo, não há nada a fazer em seu sistema. Não é um erro, apenas uma notificação.

Nesse ponto, se você digitar apenas autocutsel ou cutsel , o programa adequado deverá ser executado. Consulte a documentação do autocutsel para tudo a partir de então.

    
por 31.01.2014 / 10:15
1

Alguns (alguns!) pacotes de código-fonte oferecem make-rpm ou meta semelhante, mas não acredito que o resultado seja bom em relação às suas diretrizes de empacotamento de distribuição. As diretrizes do RPM do Fedora são talvez as mais extensas, e provavelmente aplicáveis com pouca mudança no RHEL.

Veja se o pacote está disponível para o RHEL ou verifique EPEL para ele. Se você quer uma versão um pouco mais nova que a disponível, você pode começar pegando o RPM de origem, descompactá-lo e editá-lo a gosto. Mas as distribuições enterprisey (RHEL, SLES, Oracle Linux, CentOS, etc) preferem não aumentar os números de versão (seus usuários são extremamente contra pequenas mudanças de interface!), Então se você ver uma versão antiga de algo em que metade da Internet gritos são incrivelmente inseguros e citam uma dúzia de CVEs e histórias de terror, mais do que não a distribuição tem corrigido os problemas por backporting os patches para suas antiguidades.

De qualquer forma, o uso de um RPM homebrew torna você responsável pela integração com o sistema, rastreando (e corrigindo) bugs, seguindo upstream, ... é muito de trabalho, e a menos que você tenha necessidades muito especializadas eu ficaria longe disso.

    
por 01.02.2014 / 02:32
1

make executa um script, chamado apropriadamente, um makefile. O argumento que você dá a make especifica um destino nesse makefile.

Os alvos podem fazer qualquer coisa, embora sua finalidade original e mais comum seja executar uma lista de comandos usados para compilar o código-fonte. Você não precisa saber esses comandos, tudo que você faz é mudar para o diretório correto e fazer um make - possivelmente com algumas opções, se necessário. O código fonte é tipicamente dividido em muitos arquivos (milhares se você estiver falando sobre algo como o kernel Linux) - make existe para permitir a compilação de todos os arquivos com um comando ao invés de muitos.

O executável do resultado final pode estar na raiz desse diretório, em um subdiretório build ou outros - cabe a quem escreveu o makefile.

Alguns projetos / autores incluem uma meta install no makefile. Normalmente, isso colocará o executável em um diretório como /usr ou /bin e copiará todos os arquivos de biblioteca nos locais corretos, se também forem compilados. Então, depois de um make install , você geralmente pode usar o programa invocando-o na linha de comando. Essa é uma convenção, não um padrão, portanto, um comportamento específico pode ser diferente dependendo do autor ou projeto.

make install deve funcionar, não importa qual distribuição ou gerenciador de pacotes você esteja usando.

Tenho certeza de que alguns autores / projetos fornecem makefiles que criam pacotes, mas a essa taxa eles podem também construir e distribuir o pacote diretamente.

    
por 01.02.2014 / 05:28