レンタルサーバーにPythonを手動インストールする方法

WordPress
スポンサーリンク

こん○○は、よふかしわーくすのよふかしさんです

ウチで契約しているこのブログのレンタルサーバーはFreeBSDが使用されているのですが
デフォルトだとPython 2.xが入ってます

Windows環境下での通常のPythonでの開発については
何年も前は安定運用のためにPython 2.xとPython 3.xも併用していたんですが
もうここ数年はPython 3.xだけになっていて、ほぼ最新Versionで運用していたりもします

という訳でレンタルサーバーでもPython 3.xを使ってみようという企画です

本機時の続きの記事もあるのでご覧ください


スポンサーリンク

はじめに

FreeBSD環境で最新のPythonを使用したい場合、通常はパッケージ管理ツール(pkg)を使います
今回は、デフォルトではないPython 3.xを手動でインストールしたい…
なんですが、管理者権限がない、ってので弾かれたりなど色々起きてしまうわけです…

そんな場合は、Pythonをソースコードからビルドすることで、自分のホームディレクトリにインストールするという方法があります

この記事では、FreeBSD 11.2環境でPython 3.11.8を手動インストールし、環境変数を設定する方法を残しておきます
Pythonの部分は適宜入れたいバージョンに置き換えてください


TeraTermでSSH接続してサーバーにログイン

Pythonのインストールコマンドの実行のため、レンタルサーバーにSSHで接続します
今回はWindows10なので、安定のTeraTermを使用します
TeraTermはGitHubからDLできます

GitHub - TeraTermProject/teraterm
Contribute to TeraTermProject/teraterm development by creating an account on GitHub.

まずは起動して、レンタルサーバーのアドレスをホストに入力、その他はデフォルトままです

同様に、レンタルサーバーにログインするための、ユーザー名、パスワードを入れます

するとこんな感じでコマンド画面が開きます
表示の通り、FreeBSDであることがわかります

FreeBSDのバージョンは下記コマンドで確認できます

freebsd-version

カーネルバージョンは下記コマンドで確認できます

uname -a


Pythonのダウンロードと展開

まずは、Pythonの公式サイトからソースコードをダウンロードします
fetch コマンドを使って直接ダウンロード可能です
今回は、Python 3.11.8を例に解説します

下記コマンドを実行すると、Python-3.11.8.tgz という圧縮ファイルがホームディレクトリに保存されます

cd ~
fetch https://www.python.org/ftp/python/3.11.8/Python-3.11.8.tgz

ダウンロードが完了したら、tar コマンドでアーカイブを展開します

tar xvf Python-3.11.8.tgz
cd Python-3.11.8

これでPythonのソースコードが展開され、インストールの準備ができた状態になります


Pythonのビルドとインストール

展開したフォルダ内で、Pythonをコンパイルしてインストールします
共用環境では、システムの /usr/local/bin にインストールするのではなく、自分のホームディレクトリにインストールすることで、制約なしにPythonを使用できます

./configure --prefix=$HOME/python3
make && make install

prefixのOptionを指定することで、自分のホームディレクトリ内にPythonをインストールできます
管理者権限なしで動作するため、共用環境でも自由に使えるのがメリットです


Pythonの実行と環境変数の設定

インストールが完了したら、Pythonが正しく動作するか、
Pythonのバージョンを確認してみます
UserNameの部分は自身のアカウント名に置き換えてください

/home/UserName/Python-3.11.8/python --version

Python 3.11.8 が表示されることを確認します


次に、環境変数(Path)の設定です
Pythonを手軽に呼び出せるようにするため、PATHを設定します
まずは下記コマンドで、現在使っているシェルの種類を確認します

echo $SHELL


ウチの場合はシェルが csh だったので、下記コマンドで環境変数にPathを追加しました

setenv PATH $HOME/python3/bin:$PATH


これでpython3コマンドで、手動インストールしたPythonが優先して実行される様になります


不要なファイルの削除

ダウンロードした .tgz ファイルを削除してディスクスペースを空けます
消したいファイルがカレントディレクトリ見えるようにしてますが、下記は上記の流れから来た時のコマンド例です

cd ..
pwd
ls -l
rm Python-3.11.8.tgz

この圧縮ファイルは意外とサイズが大きいので、削除することでストレージの空き容量を確保できます


Pythonを手軽に使うためのエイリアス設定

Pythonを簡単に呼び出せるようにするため、エイリアスを設定します
この設定をすると、次回から python3 を入力するだけでPython 3.11.8が起動するようになります

alias python3="/home/UserName/Python-3.11.8/python"

このエイリアス設定は現在のセッションでのみ有効なので、再ログインするとリセットされてしまいます
なので、今後永続的にpython3コマンドを使いたい場合は、設定ファイルに記述しましょう
csh場合は下記です

echo 'alias python3 "/home/UserName/Python-3.11.8/python"' >> ~/.cshrc
source ~/.cshrc

これで、ログイン後も python3 コマンドでPython 3.11.8を実行できる様になります


おわりに

まとめですが、

✅ fetch でPythonをダウンロード
✅ tar で展開してセットアップ
✅ configure + make install で自分のディレクトリにインストール
✅ PATH を設定してPython 3を優先使用
✅ 不要な.tgzファイルを削除して整理
✅ エイリアスを設定して簡単に実行
✅ ログイン後も自動で適用されるように設定

こんな感じで、FreeBSD上で最新のPythonを自由に使える環境が整いました

今後は pip を使って必要なライブラリをインストールすることになります
サーバー上でPythonスクリプトを動かすことで、実施できることの幅が広がるかな、と思います
この方法だと、Python 3.xといった任意の新しいバージョンが使えるのが最大のメリットです

よふかしさんはとある用途があってこの作業をしたので
その後の作業が進んだらまた書こうかな、と思ってます。。。

コメント

タイトルとURLをコピーしました