Como usar o GNU Stow para gerenciar programas instalados a partir de fontes e dotfiles

Como usar o GNU Stow para gerenciar programas instalados a partir de fontes e dotfiles

Objetivo

Gerencie facilmente os programas instalados a partir da fonte e do DotFiles usando o GNU Stow

Requisitos

  • Permissões de raiz

Dificuldade

FÁCIL

Convenções

  • # - requer que os comandos Linux sejam executados com privilégios de raiz também
    diretamente como usuário root ou por uso de sudo comando
  • $ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Introdução

Às vezes, temos que instalar programas da fonte: talvez eles não estejam disponíveis através de canais padrão, ou talvez queremos uma versão específica de um software. GNU Stow é muito bom Symlinks Factory programa que nos ajuda muito mantendo os arquivos organizados de uma maneira muito limpa e fácil de manter.

Obtendo Stow

Seus repositórios de distribuição provavelmente conterão arrumar, Por exemplo, no Fedora, tudo o que você precisa fazer para instalá -lo é:

# dnf install stow

ou no Ubuntu/Debian, você pode instalar o Stow executando:

# APT Instale Stow 

Em algumas distribuições, o Stow não está disponível em repositórios padrão, mas pode ser facilmente obtido adicionando algumas fontes de software extras (por exemplo, EPEL no caso de Rhel e CentOS7) ou, como último recurso, compilando -o da fonte: ele requer muito poucas dependências.

Compilando Stow da fonte

A versão mais recente de Stow disponível é o 2.2.2: O tarball está disponível para download aqui: https: // ftp.gnu.org/gnu/stow/.

Depois de baixar as fontes, você deve extrair o tarball. Navegue até o diretório em que você baixou o pacote e simplesmente execute:

$ tar -xvpzf stow -2.2.2.alcatrão.gz

Depois que as fontes foram extraídas, navegue dentro do Stow-2.2.2 diretório, e para compilar o programa simplesmente executa:

$ ./Configure $ Make 

Finalmente, para instalar o pacote:

# faça instalar

Por padrão, o pacote será instalado no /usr/local/ diretório, mas podemos mudar isso, especificando o diretório por meio do --prefixo opção do script de configuração ou adicionando prefix = "/your/dir" Ao executar o faça instalar comando.

Neste ponto, se tudo funcionou como esperado, deveríamos ter arrumar instalado em nosso sistema

Como funciona o Stow?

O principal conceito por trás do Stow é muito bem explicado no manual do programa:

A abordagem usada pelo Stow é instalar cada pacote em sua própria árvore e depois usar links simbólicos para fazer parecer que os arquivos são instalados na árvore comum. 

Para entender melhor o funcionamento do pacote, vamos analisar seus principais conceitos:

O diretório Stow

O diretório Stow é o diretório raiz que contém todo o Pacotes Stow, cada um com sua própria subárvore privada. O diretório típico de Stow é /usr/local/stow: dentro dele, cada subdiretório representa um pacote

Pacotes Stow

Como dito acima, o diretório Stow contém "pacotes", cada um em seu próprio subdiretório separado, geralmente nomeado após o próprio programa. Um pacote nada mais é do que uma lista de arquivos e diretórios relacionados a um software específico, gerenciado como uma entidade.

O diretório de destino Stow

O diretório de destino Stow é um conceito muito simples de explicar. É o diretório no qual os arquivos do pacote devem parecer instalados. Por padrão, o diretório de destino Stow é considerado o acima do diretório em que a Stow é invocada de. Este comportamento pode ser facilmente alterado usando o -t Opção (abreviação de -Target), que nos permite especificar um diretório alternativo.

Um exemplo prático

Eu acredito que um exemplo bem feito vale 1000 palavras, então vamos mostrar como Stow funciona. Suponha que queremos compilar e instalar libx264. Vamos clonar o repositório Git contendo suas fontes:

$ git clone git: // git.videolan.org/x264.git

Poucos segundos após a execução do comando, o diretório "x264" será criado e conterá as fontes, prontas para serem compiladas. Agora navegamos dentro dele e executamos o configure script, especificando o diretório/usr/local/stow/libx264 --prefixo:

$ cd x264 && ./configure - -prefix =/usr/local/stow/libx264

Em seguida, construímos o programa e o instalamos:

$ Make # Faça a instalação 

O diretório X264 deveria ter sido criado dentro do diretório Stow: ele contém todas as coisas que normalmente teriam sido instaladas diretamente no sistema. Agora, tudo o que precisamos fazer é invocar Stow. Devemos executar o comando de dentro do diretório Stow, usando o -d opção para especificar manualmente o caminho para o diretório Stow (o padrão é o diretório atual) ou especificando o alvo com -t Como dito antes. Também devemos fornecer o nome do pacote a ser guardado como um argumento. Nesse caso, executamos o programa no diretório STOW, então tudo o que precisamos digitar é:

# Stow Libx264

Todos os arquivos e diretórios contidos no pacote Libx264 foram agora simplificados no diretório pai (/usr/local) daquele do qual Stow foi invocado, de modo que, por exemplo, binários libx264 contidos em /usr/local/stow/x264/bin agora estão simplificados em /usr/local/bin, arquivos contidos em /usr/local/stow/x264/etc agora estão simplificados em /usr/local/etc e assim por diante. Dessa forma, aparecerá ao sistema que os arquivos foram instalados normalmente, e podemos acompanhar facilmente cada programa que compilamos e instalamos. Para reverter a ação, apenas usamos o -D opção:

# Stow -d Libx264

Está feito! Os symblinks não existem mais: nós apenas "desinstalamos" um pacote Stow, mantendo nosso sistema em um estado limpo e consistente. Neste ponto, deve ficar claro por que o Stow também é usado para gerenciar o DotFiles. Uma prática comum é ter todos os arquivos de configuração específicos do usuário dentro de um repositório Git, para gerenciá-los facilmente e disponibilizá-los em todos os lugares e depois usar o Stow para colocá-los quando apropriado, no diretório inicial do usuário.

Stow também impedirá que você substitua arquivos por engano: ele se recusará a criar links simbólicos se o arquivo de destino já existir e não apontar para um pacote no diretório Stow. Esta situação é chamada de conflito na terminologia de Stow.

É isso! Para uma lista completa de opções, consulte a mangueira de Stow e não se esqueça de nos contar suas opiniões sobre isso nos comentários.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Redefinir as configurações da área de trabalho do GNOME para o padrão de fábrica no Ubuntu…
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Ubuntu 20.04 truques e coisas que você pode não saber
  • Linux pode obter vírus? Explorando a vulnerabilidade do Linux…
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Comandos Linux: os 20 comandos mais importantes que você precisa para…
  • Mastering Bash Script Loops
  • Download do Linux