install
é um comando de cópia de arquivo versátil no Linux e macOS. É perfeito para o usuário avançado que busca eficiência. Leia esta postagem para descobrir como trabalhar de maneira mais inteligente, não mais difícil.
Esperar, Não instalar software?
a install
comando pode ter o nome mais enganador de qualquer comando do Linux. Na realidade, não instala nenhum software. Se você está tentando instalar um pacote de software da linha de comando no Ubuntu ou outra distribuição baseada em Debian, usar el apt-get
comando. Em outras distribuições Linux, use a ferramenta de gerenciamento de pacotes de sua distribuição Linux, como um exemplo, dnf
no Fedora ou zypper
e openSUSE.
Então, O que a instalação faz?
Em uma palavra install
combina itens do cp
(cópia de), chown
(Mudança de dono), chmod
(modo de mudança), mkdir
(fazer diretório), e strip
(tira símbolos) comandos. Ele permite que você use as funções de todos eles em uma única ação.
a install
comando pode:
- Copie arquivos como o
cp
comando. - Escolha se deseja sobrescrever os arquivos existentes.
- Crie o diretório de destino se ele não existir, O que
mkdir
. - Definir sinalizadores de permissão do usuário para arquivos, da mesma forma que o
chmod
comando. - Defina o proprietário dos arquivos, da mesma forma que o
chown
comando. - Remova a bagagem não essencial dos arquivos executáveis, da mesma forma que o
strip
comando.
Apesar de toda essa funcionalidade, a install
o comando não tem muito Muitas opções lidar com.
Quando você usaria
a install
O comando provavelmente não será usado todos os dias. É útil, mas apenas para certas situações. Um estágio onde install
entra em jogo é o desenvolvimento de software. Digamos que você esteja programando um novo utilitário. Você precisará testar fora do ambiente de desenvolvimento. Fazer isso, você precisa copiar os novos arquivos de programa para um diretório de teste. Pode ser necessário criar o diretório de teste e determinar as permissões e propriedade corretas para os arquivos.
Porque o desenvolvimento é uma atividade iterativa, você pode acabar fazendo essa sequência de ações, muitos, usualmente. a install
O comando faz todo o trabalho pesado para você. Em resumo, quando seu novo utilitário estiver pronto para implantar, você pode usar install
para copiá-lo com as permissões corretas para seu local de trabalho final.
Um exemplo
Um programador está trabalhando em um novo utilitário, ligar ana
. É um arquivo binário executável e um banco de dados. Depois do teste, deve ser copiado para /usr/local/bin
para torná-lo disponível para todos os usuários do sistema Linux. Você precisará substituir os nomes de arquivo e caminhos de diretório em nosso exemplo pelos arquivos e caminhos que está usando em seu computador ao usar install
.
Até que você esteja pronto para lançar, será testado em um diretório chamado ~/test/ana
. Os membros da geek
o grupo terá permissões de leitura e execução. Outros usuários também terão permissões de leitura e execução. a install
O comando usa a mesma representação numérica para permissões como chmod
faz. Nosso programador decidiu que as permissões devem ser definidas para:
- Proprietário: Leitura, escrever e executar.
- Grupo: Leia e execute.
- Outros: Apenas correr.
Como usar o install
Comando
O diretório de trabalho do nosso programador fictício é ~/work
. Escreveu o programa, compilou e produziu um binário chamado ana
. Ele já criou o arquivo de banco de dados que ana
Funciona com, Words.db
. Então ambos os arquivos estão prontos para teste. Vamos dar uma olhada neles:
ls -l ana Words.db
a ana
O utilitário que você acabou de escrever cria anagramas a partir de uma frase fornecida na linha de comando. Os testes de verificação são bastante simples.
Nosso programador invocou ana
com a frase "cookie" e tudo parece bem. Agora você deseja copiar esses dois arquivos para o ~/test/ana
diretório para ver se o novo utilitário funciona corretamente fora do ambiente de desenvolvimento. Emita o seguinte comando:
install -D -v ana Words.db -t ~/test/ana
As alternativas usadas na linha de comando foram:
- D: criar diretórios, incluindo diretórios pai, Sim é necessário.
- v: Detalhado, liste cada diretório à medida que é criado e cada cópia de arquivo à medida que é feita.
- t: diretório de destino.
nós podemos ver isso install
criar o ~/test
diretório, e depois crie o ~/test/ana
diretório. Os arquivos são listados um a um à medida que são copiados para o diretório de destino.
Lista de arquivos em ~/test/ana
confirme se eles foram copiados corretamente.
ls -l
A próxima etapa é testar o ana
utilitário, invocando-o no ~/test/ana
diretório.
O utilitário funciona conforme o esperado, o que é ótimo. Apesar disto, as permissões não estão corretas. O requisito é determinar os membros do grupo geek
ter permissões de leitura e execução, e que outros usuários acabaram de executar.
Podemos resolver ambos os problemas de forma bastante simples com o seguinte comando. Observe o uso de sudo
para executar o comando com permissões de root. a -o
e -g
e as alternativas exigem isso. Seremos solicitadas a nossa senha quando emitimos o comando.
sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana
- a
-b
Opção (copia de segurança) crie cópias de backup de arquivos antes que eles sejam sobrescritos. - a
-S
Opção (sufixo) definir sufixo para arquivos de backup. Se você não fornecer um sufixo para~
(til) se utiliza. Estamos perguntandoinstall
use um sufixo de.bak
. - Definimos o proprietário do arquivo como
dave
usando o-o
(proprietário) opção. - a
-g
Opção (grupo) preciso do nome de um grupo. Este se torna o grupo que possui os arquivos. O grupo que vamos usar é chamadogeek
. - a
-m
Opção (caminho) definir modos de arquivo para arquivos, usando o padrãochmod
sintaxe numérica.
Não precisamos mais usar o -D
(criar diretórios), porque sabemos que o diretório de teste já existe. Também omitimos o -v
opção (detalhado). Listando os arquivos em nosso ~/test/ana
diretório nos mostra os detalhes do arquivo:
ls -l
Isso confirma que todos os nossos requisitos foram atendidos..
- Os arquivos foram copiados para o diretório de teste.
- As permissões foram configuradas corretamente.
dave
é o dono dos arquivos.- a
geek
grupo é o grupo que possui os dois arquivos. - Todos os arquivos foram copiados, chamado ana.bak e Words.db.bak.
Tudo isso foi conseguido através do uso de um comando. Limpo.
Nosso programador faz algumas alterações finais no utilitário e recompila. Os arquivos que foram alterados devem ser copiados para o ~/test/ana
diretório de ~/work
diretório. Podemos fazer isso usando o -C
(comparar) opção. Se o arquivo de origem e o arquivo de destino forem iguais, o arquivo de origem não é copiado.
sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana
Listar os arquivos no diretório de destino nos mostra que o tamanho do arquivo do ana
o arquivo mudou. É maior que ele ana.bak
procedimentos. O carimbo de data / hora em ana
também mudou. Essas mudanças são devido à nova versão do arquivo que está sendo copiado aqui.
ls -l
O tamanho do arquivo e o carimbo de data / hora do Words.db
arquivo não mudou. Nenhuma mudança foi feita no Words.db
Arquivo, então não foi copiado. Em um projeto com muitos arquivos, -C
Opção (comparar) pode economizar muito tempo e perda de tempo do disco rígido, ao copiar apenas arquivos que foram modificados.
O programador testou novamente que o ana
utilitário ainda funciona.
Hora de usar install
copiar arquivos para /usr/local/bin
diretório. Isso tornará o novo utilitário disponível para todos os usuários deste computador Linux. Nós sabemos /usr/local/bin
existe, então não precisamos criar esse diretório. Podemos usar uma versão modificada do nosso último comando.
Mudamos o diretório de destino para ser /usr/local/bin
. Nós removemos o -C
(comparar) porque ainda não há cópias desses arquivos no diretório de destino, então não há nada para comparar com. Da mesma forma, não há nada para fazer backup, para que possamos remover o -b
(copia de segurança) e a -S
(sufixo) opção.
sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin
Podemos listar quais arquivos chegaram /usr/local/bin
:
ls -l
E como teste final, vamos mudar o diretório para nosso diretório inicial e ver se podemos invocar nosso novo utilitário de lá.
Observe que você não precisa preceder o ana
comando com ./
o que significa que está fugindo de /usr/local/bin
. Missão cumprida.
Mencionamos que a instalação pode remover tabelas de símbolos redundantes e outras bagagens dentro do arquivo binário., para reduzir seu tamanho. vamos fazer agora. Observe que o comando a seguir não inclui Words.db. Isso ocorre porque Words.db é um arquivo de banco de dados, não é um executável binário. Para copiar e reduzir o arquivo binário ana
podemos usar o seguinte comando. Adicionamos a opção -s (psiquiatra) com uma “s” minúsculas. Nós adicionamos novamente a opção -b (copia de segurança) e a opção -S (sufixo), com uma “S” letra maiúscula
sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t / usr / local / bin
Lista de arquivos em /usr/local/bin
nos permite comparar o tamanho do ana
arquivo com sua versão de backup. a ana
O arquivo foi reduzido a quase o 60% de seu tamanho anterior.
ls -l / usr / local / bin
Em resumo
La la install
O comando é adaptado para um uso muito específico. Para muitas pessoas, não será usado dia após dia, ou possivelmente mês a mês. Apesar disso, a install
O comando é uma boa ferramenta para se familiarizar e ter em seu arsenal de truques. Para aquelas ocasiões em que você precisa, recompensa sua curva de aprendizado com melhorias de eficiência, simplicidade e simplesmente menos toques no teclado.