プログラミング

レンタルサーバーにdeb・rpmパッケージをインストールする

レンタルサーバー、例えばエックスサーバーやロリポップレンタルサーバーなどでroot権限sudoコマンド・sudo apt installコマンドが使えない場合、パッケージ化されたファイル、ubuntu系であれば.debファイル、centos系であれば.rpmパッケージを使用し、パッケージをマニュアルインストールすることができます。

.debファイルや.rpmファイルなどは通常、Githubのリリースページなどに置かれている場合が多いです。Windowsでいう.exeや.msiなどのインストール系実行ファイルのようなものと捉えていいでしょう。
aptなどのパッケージ管理システムに登録されているパッケージはsudoを使わずにインストールすることは難しいので、そのようなパッケージファイルを直接使用してインストールを行います。

alienでパッケージ変換を行う。ダウンロードしたdebパッケージをrpmパッケージへ変換する

例として、以下にオープンソースのファイル転送プログラムである”croc”をCentOSのサーバーであるレンタルサーバー、エックスサーバーへインストールするステップを示します。

以下より、リリースされている実行ファイルやソースファイルを確認できます。.debや.rpmファイルを探します。

Release v8.6.7 · schollz/croc

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が入っていない場合はマニュアルでインストールすることも可能です。以下にて紹介しています。

レンタルサーバーにcpioをインストールする

パッケージのインストールを確認します。

$ type croc
croc is /usr/local/bin/croc

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です