web-dev-qa-db-ja.com

/ etc / environmentのbashスクリプトを使用してPATH環境変数にパスを追加する

実行可能アプリケーションのパスをPATH環境変数に追加する必要があります。 .debパッケージのインストール中にパスを追加する必要があるため、debianパッケージでは postinst script を使用する必要があります。 buntu公式ドキュメント および Askubuntuの質問 を読んだ後、システム全体のユーザーアクセスのために/etc/environmentファイルを使用してアプリケーションパスを追加することにしました。これが私のbashスクリプトです。

#! /bin/bash

cd ~
echo 'PATH="$PATH:/path/to/my/bin"' >> /etc/environment

そして、これはpostinst bashスクリプトを実行した後の/etc/environmentコンテンツです:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
PATH="$PATH:/path/to/my/bin"

ログアウトしてログインしようとすると、 ログインループが発生します!

更新1:

ホームディレクトリで.profileのアプローチをテストしましたが、うまくいきます!ただし、すべてのユーザーのパスを追加する必要があるため、/etc/environmentファイルを使用する必要があります。

システムファイルの変更は避けてください。代わりに、/etc/profile.dの値を変更するために、実行可能なスクリプトを$PATHに配置する必要があります(ここのスクリプトはすべてのユーザーに対して実行されます)。

/etc/profile.d/10-<package name>.sh

#!/bin/sh
export PATH=$PATH:/path/to/executable
4
Arch user