コマンドの意味がわからなかったので調べた
さくらインターネットのレンタルサーバーにpython3を適用させました。
デフォルトではversion2.xなんですね。知らなかった。
ということで、下記サイトを参考にインストールを実施しました。
https://affitips.com/pages/65.html
pipアップデートは飛ばしちゃいましたが、この手順に従ったところ、無事にインストールが完了しました。
今回は3.6.5をインストールしました。
これでめでたしめでたし...ではあるのですが、UNIXコマンド初心者の私は、コマンドがなんの作業をしてくれているのか、全くわからない!
ということで、実際の手順の意味を調べてまとめておこうと思います。
実際に行った手順
cd ~/
ホームディレクトリに戻ります。
ちなみに、cd / で戻れるのはルートディレクトリです。
ホームディレクトリとルートディレクトリは何が違うのか?
実際にコマンドを入力して確認して見ましょう。
(モザイクの部分には私のユーザー名が入ります)
ホームディレクトリはルートディレクトリより下にありますよね?
レンタルサーバーとはつまり、運営会社(ここではさくらインターネット)が持っているサーバーを間借りさせてもらっている状態です。
大家さんが所有するマンションの1室を借りて住んでいる僕が、他の住民の部屋に入れたらまずいですよね?でも自分の部屋は自由に使っていいわけです。自分の部屋、これこそがホームディレクトリと考えておいてよいでしょう。
mkdir work
workというフォルダを作ります。 make directory の略 ... でよいかな?
wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz --no-check- certificate
wget は wget URL とすると、URLのファイルをダウンロードしてくれます。
ちなみに、語源は World Wide Web get だそうです。w の意味は .www だったのね...!!納得。
そして、わからないのが
no-check-certificate
オプション。
wgetでhttpsのサイトからファイルをダウンロードしようとして、証明書が検証できないとエラーになってしまうそうです。今回は、このオプションを使用する事で、証明書の認証を無視しています。
pythonなのでまだいいですが、むやみに使わない方が良さそうなオプションですね...
他にも、証明書を読み込ませる方法があるみたいです。
こちらのサイトに方法の記載がありました。今後のためにメモ。
tar -xjf Python-3.5.2.tar.xz
tarの語源は Tape Archives。 磁気テープ向けに複数ファイルを一つにまとめてくれるコマンド。
Archive(アーカイブ)するだけなので、zipのようにファイル圧縮はしません。
ちなみに、昔々には「ar」コマンドだったそうです。 その後、磁気テープに対応した、という事のようですね。
trの歴史については、こちらの記事がめっちゃ詳しいです。
その他オプションの意味はこの通り。
- x
- アーカイブを展開
- j
- bzip2形式にアーカイブを圧縮・展開
- f
- アーカイブファイルの指定
つまり、 bzip2形式でアーカイブを展開してくれ、という指令でした。
cd Python-3.5.2
change directory。説明不要でしょう。ディレクトリを移動します、
./configure --prefix=$HOME/local/python/
調べていると、pythonをインストールするフォルダを決めているようですね。
prefix は pre(前) という接頭辞があることからもわかる通り、 前につくものです。
$HOME/local/python にインストールするよ!ということかな?
configureファイルをcatでのぞいて見ると、このように書かれています。
# configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi echo "creating Modules/Setup" >&6 if test ! -f Modules/Setup then cp $srcdir/Modules/Setup.dist Modules/Setup fi echo "creating Modules/Setup.local" >&6 if test ! -f Modules/Setup.local then echo "# Edit this file for local setup changes" >Modules/Setup.local fi echo "creating Makefile" >&6 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \ -s Modules Modules/Setup.config \ Modules/Setup.local Modules/Setup mv config.c Modules
ちなみに
./configure --prefix=/usr/local/python362 --with-ensurepip
このように書くとpipも一緒にDLできるとか。
make
make install
これはunixコマンドです。
makeを叩くと、現在のディレクトリにあるmakefileの内容にしたがってコンパイル作業が実行されます。
ちなみに、configure, make, make install の関係性についてはこちらのサイトがわかりやすかったです。
http://www.itmedia.co.jp/help/tips/linux/l0302.html
引用します。
「configure」は,これからインストールを行うOSのCPUやバージョンを調べたり,必要な関連ツールを調査する。そして,これらの状況を記述したMakefileファイルを作成する。
「make」は,configureで作成されたMakefileを基にしてソースコードをコンパイルする。ここでエラーが起こる場合には,configureで環境に沿ったパラメータを付加させなければならない。
「make install」は,makeで生成されたバイナリファイルなどを規定のディレクトリにコピー(インストール)を行う。インストール先のディレクトリは,自分で設定したい場合にはconfigureで「--prefix=/usr/xxxxxx」などとパラメータを付加させる必要がある。
cd ~/
vi .cshrc
ホームディレクトリに戻って .cshrcファイルを編集しています。
cshとは C shell、シェルの1種ですね。
シェルの種類についてはこちらのサイトが詳しいです。
「bashとは系列が違うんだー」程度でいいと思います。
さくらインターネットのレンタルサーバーではこのcshを元に作業が可能です。
https://codezine.jp/unixdic/w/%E3%82%B7%E3%82%A7%E3%83%AB%E6%A9%9F%E8%83%BD
cshrc は C shell runcom ( run command ) 、つまりcshを起動した際に読み込まれるファイルです。
だからこのファイルに書き込みをする訳ですね!
ここに起動じに読み込むpythonのパスを追記して終了です。
全然わからない...。一つずつ慣れていくしかないですね。何事も経験!