sudoが利用できないリモートサーバーにFishをインストールする方法は?

sudoが利用できないリモートサーバーにFishをインストールする方法は?

SSH接続時に使用できるように、sudo権限なしでリモートサーバーにFishシェルをインストールしたいと思います。

ベストアンサー1

ホームディレクトリにインストールしてください。

これを行うには、fishGitHubでシェルのソースコードストアを表示し、「ビルド」セクションの下のインストール手順に従う必要があります。README.md書類また、代替インストールディレクトリを使用したいとCMakeに通知します。

git clone --depth=1 https://github.com/fish-shell/fish-shell
cd fish-shell

mkdir build
cd build

cmake -DCMAKE_INSTALL_PREFIX=$HOME/local ..

make
make install

ここに.executableがありますfish(これをあなたのファイルに追加することもできます)。$HOME/localfish$HOME/local/bin$PATH

これは、すべての必須ツール(gitなどmake)がcmake利用可能であり、ビルドシステムがすべての必須依存関係を見つけると仮定します1。

たとえば、特定のバージョンタグ3.0.2(作成時の最新バージョン)を確認したい場合は、git clone --branch=3.0.2 --depth=1 ...リポジトリの複製に使用します。リリースタグを指定しないと、不安定な最新の開発バージョンのコードが表示されます。

その後、インタラクティブシェルを起動するときに通常のシェルを起動する必要があります(手動で起動しfishたくない場合)。fishシェルがある場合は、以下をbash追加してこれを実行できます。

if [ -x "$HOME/local/bin/fish" ]; then
    exec "$HOME/local/bin/fish"
fi

またはそのようなもの$HOME/.bashrc。この特別なアプローチは変えるインタラクティブシェルを起動するたびにbashプロセスがあります。fishbash

1Linux以外の一部のシステムでは、ヘッダーを含めるように手動でパッチを適用する必要があります。そうしないと、ファイルが宣言されず、コンパイルされない可能性があります。これはsrc/fallback.cpplocale.huselocale()コードの確認エラーこの問題により、バージョン3.1.0で修正される予定です。


いつものように、別のオプションはシステム管理者に連絡してください。それらプリコンパイル済みパッケージからインストールします。その後、システムで利用可能な同様のコマンドをfish使用するようにログインシェルを変更できます。chsh

おすすめ記事