Je veux ajouter à 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 effectué toutes les opérations suivantes, dont aucune n'associe en permanence la commande R au répertoire de mon installation R dans ~/R/bin
.
export PATH=$PATH:$HOME/R/bin
<- Cela fonctionne dans la session Terminal dans laquelle il a été activé, mais si j'ouvre un deuxième terminal, PATH revient à ce qu'il était avant que j'y ait ajouté $ HOME/R/binLe 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 je sache, vous ne pouvez pas utiliser export
et il ne prend pas en charge le développement de variable du type $HOME
, mais des paires simplesvariable=value
. Donc, pour utiliser ce fichier, vous devez simplement ajouter 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, définir le système PATH
pour inclure le répertoire de base d'un utilisateur de cette manière est une pratique douteuse à mon humble avis: la méthode normale consiste à utiliser l'un des Les fichiers de démarrage du shell de l'utilisateur: ~/.profile
est généralement le fichier recommandé pour les variables d'environnement. Cependant, il présente l'inconvénient de n'être appelé que par les shells de connexion. Par conséquent, pour qu'il prenne effet, vous devrez vous déconnecter puis revenir en arrière, ou au moins, commencez une nouvelle connexion Shell, 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 restera probablement de leur propriétaire à 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étaire correct, par exemple.
Sudo chown username:username ~/.profile
Ensuite, vous pouvez ajouter le composant de chemin souhaité à l’aide de 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 l'ajouter en tant que
# 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