web-dev-qa-db-ja.com

/ usr / bin / realpathがCentos6.5に見つかりません

CentOS6.5で「realpath」と入力しようとしています。しかし、インストールされていないようです。 coreutils(archlinux)に含まれていることを確認しました。 CentOSが提供するcoreutilsパッケージを再確認します。/usr/bin/realpathがありません。 ' http://pkgs.org/centos-6/repoforge-x86_64/realpath-1.17-1.el6.rf.x86_64.rpm.html のようなサードパーティのrpmをインストールしたくない'。

私はyumを検索しましたrealpath、それを見つけることができません。ユーティリティは他のパッケージに含まれていますか?または、セキュリティ上の理由で削除されますか?

10
Daniel YC Lin

realpathは非常に便利なツールですが、その機能のほとんどはすでにreadlinkに含まれていました。 realpathman page は次のように述べています:

Readlink(1)コマンドの「-e」オプションによってほぼ同じ機能が提供されることに注意してください。

そして、readlinkmanページ は次のように述べています。

-e、-canonicalize-existing:指定された名前のすべてのコンポーネントのすべてのシンボリックリンクを再帰的にたどることによってcanonicalizeします。すべてのコンポーネントが存在する必要があります。

readlinkコマンドは2008年にcoreutils、AFAIKに追加されました:それは buntu Hardy 8.04で確実に利用可能 です。したがって、リアルパスがない場合、readlinkをすぐに使用できる可能性があります。

10
MariusMatutiae

realpathツールは、2012年にリリースされたGNU coreutils in version 8.15(commit 77ea441f79aa ))に追加されました。CentOSリリースにはcoreutils v8.4が含まれている可能性があります。ツールは削除されませんでした;それはまだ追加されていませんそもそも。

3
user1686

通常、realpathcoreutilsパッケージによって提供されるため、次の方法でインストールする必要があります。

yum install coreutils

または、readlinkを試すか、次のような独自の関数を定義します。

realpath () { [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}" }

またはいくつかを参照してください ここに他の例

CentOS 7でコマンドをテストしましたVM via Vagrant

vagrant init bento/centos-7.1 && vagrant up --provider virtualbox && vagrant ssh

realpathがデフォルトでインストールされているようです。

1
kenorb