プログラミング

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

aptやrpmでのsudo・root権限の使えないLinux環境・レンタルサーバーにcpioをマニュアルでインストールする方法について紹介します。
CentOS 8のエックスサーバーにcpioをインストールする手順を例に説明していきます。

cpioコマンドを実行しようとすると、コマンドが見つからない(command not found)エラーや、許可がありませんエラーになる場合があります。

$ cpio
-bash: cpio: コマンドが見つかりません

$ cpio
-bash: cpio: command not found
$ cpio
-bash: /usr/bin/cpio: 許可がありません

$ cpio
-bash: /usr/bin/cpio: Permission denied

そこで、cpioをsudo・root権限を使わずに、マニュアルでカレントディレクトリ・ユーザーディレクトリにインストールをします。

以下より各Linuxディストリビューションおよびバージョンにおけるパッケージのダウンロード先が確認できます。

Search Results for cpio

cpioのLinuxへのダウンロード

CentOSのバージョンが7なのか8なのか、アーキテクチャは何かなどを確認します。
例として、今回はレンタルサーバーであるエックスサーバーに入れます。私のエックスサーバーのサーバーのバージョンおよびオペレーティングシステム、アーキテクチャは以下の通りです。

$ cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

$ arch
x86_64

以下よりCentOS 7または8のrpmファイルのダウンロードURLを見つけます。

cpio-2.11-28.el7.x86_64.rpm CentOS 7 Download
cpio-2.12-11.el8.x86_64.rpm CentOS 8 Stream Download

cpioのCentOS 7または8のrpmファイルのダウンロード

通常は、CentOSにマニュアルでrpmパッケージをインストールする場合にはcpioを使いインストールするため、cpioにアクセスできることが必要です。
今回の場合はcpioがない状態でcpioを使わずにcpioをインストールするわけなので、レンタルサーバー上で直接それを行うことは不可能であることから、一度他のLinuxマシン、普段使っているマシンでも、VPSでも、WSL Bashでも構いません、にcpioをroot権限でインストールし、cpioを使ってcpioをアンパックします。

レンタルサーバー以外のLinuxマシンで以下。
まずパッケージをダウンロードします。

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/cpio-2.11-28.el7.x86_64.rpm

パッケージをアンパックします。
カレントディレクトリに”usr”フォルダ・ディレクトリが作られており、”./usr/bin/cpio”のバイナリファイルも作られていることが確認できるはずです。

rpm2cpio cpio-2.11-28.el7.x86_64.rpm | cpio -idv

生成されたディレクトリをレンタルサーバーに転送します。
これはrsyncなりFTPなり、あるいはファイルアップローダーなどご自由なやり方で行ってください (以下例)

rsync -e 'ssh -p 10022' -r usr user@sv2031.xserver.jp:/home/user/pg/

レンタルサーバー上でディスティネーションにディレクトリがアップデートされていることを確認し、
cpioのパスを指定しcpioが実行できることを確認します。

$ /home/user/pg/usr/bin/cpio --help
Usage: cpio [OPTION...] [destination-directory]
GNU `cpio' copies files to and from archives

コメントを残す

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