Y-Ken Studio

新しもの好きのデータエンジニアが四方山話をお届けします。

jqコマンドをsudoを使わずにインストールし、PATHを通す方法

JSONデータをコマンドラインでフィルター出来るjqコマンド、便利ですよね。 割と新しいepelリポジトリであれば、yum -y install jqで使えるようになります。 しかし次のようなケースでは大抵フルパスでバイナリを指定するのではないでしょうか。

  • root権限はないが、jqコマンドが使いたい
  • PATHの設定を変更する操作は避けたい

しかし今回紹介する方法を使うと、とても簡単にPATHが通る状態にできます。

環境

インストール方法

ユーザのホームディレクトリ以下にbinディレクトリを作り、バイナリを放り込むのみ。

$ mkdir ~/bin
$ wget http://stedolan.github.io/jq/download/linux64/jq -O ~/bin/jq
$ chmod +x ~/bin/jq

jqコマンドの在処を確認すると、この通り認識されています。

$ which jq
~/bin/jq

からくり

CentOS6では、bash_profile に次の内容が書かれているため、ホーム以下にbin/ディレクトリを作りバイナリを設置すると、自然とパスが通った状態となります。

ユーザ名がadminなら/home/admin/bin/という具合です。

$ cat ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH