SSH接続時に使用できるように、sudo権限なしでリモートサーバーにFishシェルをインストールしたいと思います。
答え1
ホームディレクトリにインストールしてください。
これを行うには、fish
GitHubでシェルのソースコードストアを表示し、「ビルド」セクションの下のインストール手順に従う必要があります。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/local
fish
$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
プロセスがあります。fish
bash
1Linux以外の一部のシステムでは、ヘッダーを含めるように手動でパッチを適用する必要があります。そうしないと、ファイルが宣言されず、コンパイルされない可能性があります。これはsrc/fallback.cpp
locale.h
uselocale()
コードの確認エラーこの問題により、バージョン3.1.0で修正される予定です。
いつものように、別のオプションはシステム管理者に連絡してください。それらプリコンパイル済みパッケージからインストールします。その後、システムで利用可能な同様のコマンドをfish
使用するようにログインシェルを変更できます。chsh
答え2
ルートなしでソフトウェアをインストールすることは、多くのソリューションで典型的な問題です。
カーネルバージョン<3.Xの場合のみ推奨Linuxブルー、brew install fish
cmakeなどの依存関係を処理するだけです。
より高いものについては参照素晴らしいLinuxコンテナ