sudo apt-get install --reinstall wget
irá substituir qualquer arquivo excluído.
Quando o manipulador de comando não encontrado no shell do bash
no Ubuntu - que é o que exibiu a mensagem que você viu quando tentou executar o wget
- informa que um programa não está instalado, mas o pacote que diz fornece é instalado, isso geralmente significa que o arquivo foi excluído . Nesse caso, você pode re instalar o pacote, e o arquivo será substituído.
Apenas executar o comando que ele diz para você executar não fará isso, porque se a reinstalação de pacotes já instalados fosse executada por padrão quando você usa apt install
ou apt-get install
, os usuários constantemente estariam reintegrando coisas não queria reinstalar.
Para reinstalar um pacote, também passa o --reinstall
flag . No seu caso, para o pacote wget
:
sudo apt-get --install reinstall wget
O comando apt
também aceita essa sintaxe, ou seja, você pode substituir apt-get
por apt
nesse comando, no Ubuntu 14.04 LTS e posterior, embora esse comando ainda funcione bem. (Não há problema em usar apt-get
, mesmo em sistemas que possuem o comando apt
também.)
A alternativa de remover e reinstalar wget
em duas etapas separadas é desaconselhável, porque se você remover wget
com a ação remove
ou purge
, então quaisquer pacotes que dependam nele também será removido. Esses pacotes não são não reinstalados automaticamente quando você instala wget
(embora se você explicitamente instalá-los , o pacote wget
é instalado se ainda não o foi, assumindo que o gerenciador de pacotes sabe que estava faltando).
Para obter informações sobre como investigar esses problemas e outras possíveis causas, veja abaixo. O que se segue é secundário e não é necessário na maioria dos casos.
Se você quiser verificar primeiro ...
Como descrito acima, um arquivo ausente é a causa mais comum do problema, mas há outras causas que a reinstalação do pacote pode resolver também - veja abaixo - então sugiro simplesmente prosseguir para faça isso. No entanto, se você sentir que verificar se o arquivo foi excluído, você poderá executar:
ls -l /usr/bin/wget
Em geral, se você não sabe qual arquivo deve fornecer o comando, você pode executar dpkg -S wget
para ver uma lista de arquivos fornecidos diretamente por qualquer pacote que tem wget
em seus nomes, ou (como waltinator sugerido ) dkpg -L wget
para listar todos os arquivos que o wget
package fornece diretamente. No entanto, sugiro usar o link para consultá-lo, já que a interface é fácil de usar e lhe dará a resposta certa, mesmo se o gerenciador de pacotes do seu sistema está quebrado ou mal configurado.
Veja também Como encontro o pacote que fornece um arquivo?
Isso não provavelmente é causado por um problema PATH
.
Existem outras causas possíveis, mas na minha experiência elas são muito menos comuns. Em particular, se o seu PATH
estiver definido incorretamente, geralmente não fará com que o manipulador de comando não encontrado sugira a instalação de um pacote:
ek@Kip:~$ nonexistent-command
nonexistent-command: command not found
ek@Kip:~$ curl
The program 'curl' is currently not installed. You can install it by typing:
sudo apt-get install curl
ek@Kip:~$ wget
wget: missing URL
Usage: wget [OPTION]... [URL]...
Try 'wget --help' for more options.
ek@Kip:~$ PATH=
ek@Kip:~$ nonexistent-command
bash: nonexistent-command: No such file or directory
ek@Kip:~$ curl
bash: curl: No such file or directory
ek@Kip:~$ wget
bash: wget: No such file or directory
Outra causa possível é um link simbólico deletado usado pelo sistema de alternativas.
Uma causa mais plausível para este tipo de problema - além do arquivo que está sendo excluído como descrito acima - seria se o sistema de alternativas manteve o comando como um link simbólico para um executável, e o próprio link simbólico foi excluído, enquanto o executável real permaneceu.
Nessa situação, você não precisaria reinstalar o pacote - mas a reinstalação ainda normalmente o corrige, porque normalmente configuraria o comando recém-instalado como padrão, refazendo o simbólico link e apontando para o executável que foi instalado.
Além disso, wget
no Ubuntu não é gerenciado pelo sistema de alternativas porque existe apenas uma implementação de wget
nos repositórios do Ubuntu. Portanto, esta não é a causa da situação descrita especificamente na questão aqui, embora seja ocasionalmente a causa de problemas que se manifestam de forma semelhante.