Je veux append à mon PATH pour que mon ordinateur (Ubuntu) sache où interpréter la commande “R” (pour lancer R). J’ai besoin de cela pour qu’un terminal ou RStudio puisse trouver où j’ai installé R.
J’ai fait tout ce qui suit, dont aucun n’associe en permanence la commande R au répertoire de mon installation R dans ~/R/bin
.
export PATH=$PATH:$HOME/R/bin
<- Ceci fonctionne dans la session de terminal dans laquelle il a été activé, mais si j'ouvre un deuxième terminal, PATH revient à ce qu'il était avant l'ajout de $ HOME / R / bin à cela Le même comportement “Terminal local uniquement” s’est produit lorsque j’ai ajouté cette ligne à deux fichiers différents, en fonction des recommandations de différents sites Web:
sudo vim ~/.profile
export PATH=$PATH:$HOME/R/bin
sudo vim /etc/environment
export PATH=$PATH:$HOME/R/bin
Pourquoi R n’est-il pas reconnu dans les nouvelles sessions de terminal?
Le fichier /etc/environment
n’est pas un fichier de script: autant que vous puissiez en croire l’ export
, il ne prend pas en charge le développement de variable de type $HOME
, il s’agit simplement de simples paires variable=value
. Donc, pour utiliser ce fichier, vous devez simplement append votre chemin à la définition existante, comme
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/username/R/bin"
Cependant, configurer le PATH
à l’ échelle du système pour inclure le répertoire de base d’un utilisateur de cette manière est une pratique discutable à mon humble avis: la méthode normale consiste à utiliser l’un des fichiers de démarrage du shell de l’utilisateur: ~/.profile
. variables, cependant, il a l’inconvénient d’être invoqué uniquement par les shells de login, vous devez donc vous déconnecter puis vous reconnecter – ou au moins, démarrer un nouveau shell de login, par exemple en utilisant
su - username
ou
su -l username
Notez que sudo
ne doit pas être utilisé pour éditer ces fichiers personnels , car il est probable que ceux-ci restront la propriété de root
, ce qui peut causer d’autres problèmes par la suite. Si vous avez déjà utilisé sudo vim
vous devrez peut-être utiliser sudo chown
pour restaurer leur propriété correcte, par exemple:
sudo chown username:username ~/.profile
Ensuite, vous pouvez append le composant de chemin souhaité en utilisant votre éditeur préféré, par exemple
vim ~/.profile
Vous pouvez même envisager de copier le paradigme existant pour ~/bin
dans ce fichier, c’est-à-dire de l’append comme
# set PATH so it includes user's private R bin if it exists if [ -d "$HOME/R/bin" ] ; then PATH="$HOME/R/bin:$PATH" fi