remove a corrupção de uma referência de comando no bash

0

How do I un-corrupt a command reference in bash?

Em um servidor do CentOS 7, estou instalando o Docker e o Docker Machine. A instalação exigiu algumas redefinições manuais das opções do BIOS e, em seguida, reinicializou o sistema operacional durante o processo de instalação. No início, o comando docker-machine foi encontrado por bash. Mas parece que algumas das referências do bash foram quebradas durante as reinicializações. Como resultado, os comandos abaixo para instalar o Docker Machine e verificar sua versão agora resultam em uma mensagem de falha, mesmo quando eu executar repetidamente o comando de instalação abaixo.

Estou seguindo as instruções para configurar o Docker Machine neste link .

Aqui está a saída do terminal após a reinicialização final:

[root@localhost ~]# base=https://github.com/docker/machine/releases/download/v0.14.0 &&  
>   curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&  
>   sudo install /tmp/docker-machine /usr/local/bin/docker-machine
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
                                 Dload  Upload   Total   Spent    Left  Speed  
100   617    0   617    0     0    836      0 --:--:-- --:--:-- --:--:--   836
100 26.7M  100 26.7M    0     0  3481k      0  0:00:07  0:00:07 --:--:-- 5962k
[root@localhost ~]# docker-machine version
-bash: docker-machine: command not found
[root@localhost ~]#

Is there some command that I can use to clean all of bash's references so that a clean install can either throw a meaningful error, or hopefully work? Or are there some diagnostic commands that someone can suggest?

Estou esperando uma solução mais elegante do que recorrer à reinstalação do sistema operacional host e reprovisionar tudo na máquina do zero.

Sugestões de usuários:

Por sugestão de @ MichaelHomer, tentei o seguinte:

[root@localhost ~]# PATH=/usr/local/bin:$PATH
[root@localhost ~]#

Por sugestão de @ roaima, tentei:

[root@localhost ~]# hash -r
[root@localhost ~]# ls -ld /usr/local/bin/docker-machine
-rwxr-xr-x. 1 root root 28034848 Apr 16 16:18 /usr/local/bin/docker-machine
[root@localhost ~]# echo "$PATH"
/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/bin:/root/bin
[root@localhost ~]#

Por sugestão de @ arcsin, digitei:

[root@localhost ~]# file /usr/local/bin/docker-machine
/usr/local/bin/docker-machine: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped
[root@localhost ~]# /usr/local/bin/docker-machine version
docker-machine version 0.14.0, build 89b8332
[root@localhost ~]#
    
por CodeMed 17.04.2018 / 01:30

1 resposta

1

Por motivos de eficiência, bash mantém uma lista dos diretórios no $PATH em que encontrou cada comando.

Se você executar um comando que não foi encontrado e adicioná-lo, será necessário informar bash para invalidar sua lista.

hash -r
    
por 17.04.2018 / 09:14