Risposte:
Controlla il tuo percorso. Non è così difficile finire con i duplicati. Esempio:
»echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:
»which -a bash
/bin/bash
/usr/bin/bash
Questo perché my / bin è un link simbolico a / usr / bin. Adesso:
»export PATH=$PATH:/usr/bin
»echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/bin
»which -a bash
/bin/bash
/usr/bin/bash
/usr/bin/bash
Dato che / usr / bin è ora nel mio $ PATH due volte, which -a
trova lo stesso bash due volte.
Come dice il suggerimento, e citando dalla pagina del manuale, "Which takes one or more arguments. For each of its arguments it prints to stdout the full path of the executables that would have been executed when this argument
had been entered at the shell prompt. It does this by searching for an executable or script in the directories listed in the environment variable PATH using the same
algorithm as bash(1)."
Come per l' -a
opzione, elenca tutti gli eseguibili con quel nome che si trovano in $ PATH.
Dai un'occhiata al tuo percorso:
echo $PATH
Ci sono voci duplicate nel tuo percorso (o ruby viene installato più volte in posizioni diverse).