レンタルサーバー、例えばエックスサーバーやロリポップレンタルサーバーなどでroot権限sudoコマンド・sudo apt installコマンドが使えない場合、パッケージ化されたファイル、ubuntu系であれば.debファイル、centos系であれば.rpmパッケージを使用し、パッケージをマニュアルインストールすることができます。
.debファイルや.rpmファイルなどは通常、Githubのリリースページなどに置かれている場合が多いです。Windowsでいう.exeや.msiなどのインストール系実行ファイルのようなものと捉えていいでしょう。
aptなどのパッケージ管理システムに登録されているパッケージはsudo
を使わずにインストールすることは難しいので、そのようなパッケージファイルを直接使用してインストールを行います。
alienでパッケージ変換を行う。ダウンロードしたdebパッケージをrpmパッケージへ変換する
例として、以下にオープンソースのファイル転送プログラムである”croc”をCentOSのサーバーであるレンタルサーバー、エックスサーバーへインストールするステップを示します。
以下より、リリースされている実行ファイルやソースファイルを確認できます。.debや.rpmファイルを探します。
CentOSのための.rpmファイルを探します。ここにはリストされていないようです。
“croc_8.6.7_Linux-64bit.deb”ファイルがubuntu系のためのパッケージファイルです。.debファイル、.rpmファイルなどのパッケージファイルは後述の”alien”というプログラムを使用することで相互変換が可能です。適当なパッケージファイルをダウンロードしましょう。
今回の場合alienを使用してパッケージファイルを変換する必要がありますので、この作業はローカルの環境で行います。その後、生成された.rpmファイルをレンタルサーバーへ転送します。
レンタルサーバーにalienがインストールできる場合、インストールされている場合などにはこのステップを踏む必要はありません。
.debファイルをwgetでダウンロードします。
wget https://github.com/schollz/croc/releases/download/v8.6.7/croc_8.6.7_Linux-64bit.deb # [Release v8.6.7 · schollz/croc](https://github.com/schollz/croc/releases/tag/v8.6.7)
パッケージファイルの相互変換を行うツールであるalienをインストールします。
sudo apt update ; sudo apt install alien -y
.debファイルを.rpmパッケージファイルへ変換して生成を行います。
sudo alien -r croc_8.6.7_Linux-64bit.deb # or alien --rpm
rpmファイルをサーバーへ転送します。
転送には、ftpやrsyncを使用すると良いでしょう。
rsyncを使ってSSH経由でリモートサーバーにフォルダやファイルを再帰的にアップロードする
(例)
rsync -e 'ssh -p 10022 -i ~/.ssh/user.key' -r "croc-8.6.7-2.x86_64.rpm" user@sv2031.xserver.jp:/home/user
転送されたrpmパッケージをroot権限なしのマニュアルでインストールします。
CentOSビルトインコマンドのrpm2cpioを利用、sudo権限無しでパッケージをインストールします。
rpm2cpio croc-8.6.7-2.x86_64.rpm | cpio -idv
なお、レンタルサーバーにcpioが入っていない場合はマニュアルでインストールすることも可能です。以下にて紹介しています。
パッケージのインストールを確認します。
$ type croc
croc is /usr/local/bin/croc