🌟

Linux環境構築

に公開

https://zenn.dev/t_hada/scraps/3abbdd5db687b3
この理解を自分の言葉をまとめる。
https://zenn.dev/articles/5f7937502fb53e/edit
GPTにまとめさせたのとどっちがいいのか勝負だ。

LinuxにPythonを入れる

ここではLinuxにPythonをいれて一番基礎の環境構築をすることを目的とする。ついでに、現代の必須環境であるLLM, Gemini CLIもいれる。

ターミナルを開く

まずは兎にも角にもターミナルを開くことが大事。今回はSSHで既に環境構築された端末から入る。この場合SSHを繋いでいる必要がある。

SSHについてはなんかいずれしっかりと理解したい。いずれは自前のコンピューターがほしい。まだ労働。

自分のOSを確認する

基本的にはターミナルを開けるようになっている時点で、手に入れる前にOSの情報を獲得したり、自分でOSを入れたりしているし、そもそもデスクトップを見たらわかるような気がするが、僕の場合は何も知らなかったし、GPTに聞きながらやったので、OSを確認した。

# これで確認できる。
cat /etc/os-release

なんかいろいろでてくるが、基本的にはnameとversionだけで良いような気がする。ここでは、Ubuntuで考える。

Pythonを入れる

ここからPythonを入れる事を考える。

パッケージ管理システム

依存関係A→Bがあったときに、つまりBを入れるにはAを入れる必要がある。ときに、本来であれば、Aを入れて、Bを入れる必要がある。これがこのレベルだといいが、依存関係がめちゃくちゃある場合には、大量に順番を考えて入れる必要があってめちゃくちゃめんどくさい。

→ここで登場するのがパッケージ管理システム、apt!

apt

apt(Advanced Package Tool)
「ソフトをどこから取ってくるのか」「どうやっていれるのか」を一元管理するしくみらしい。依存関係までまとめて、一元的にゲットしてくれるやつ。

ということでまずはこれを実行する。

sudo apt update
  • sodo:スーパーユーザー。管理者権限的なもの。スーパーユーザーにしか実行できない。
  • apt update:aptをupdateして最新バージョンにする。最新にすることで今一番いい感じに依存関係をまとめて、ゲットしてくれる。

ただ、これはネットから取ってくるので、Linuxをインターネットに繋いでおく必要が合る。(→これがめんどくさい)

ubuntのネットワークのつなぎ方

# Wi-Fi デバイス確認
nmcli device
# → wifi と書かれたデバイス名(例: wlp3s0)を確認

# 利用可能な Wi-Fi 一覧をスキャン
nmcli device wifi list

# Wi-Fi に接続
nmcli device wifi connect "SSID名" password "Wi-Fiのパスワード"

これで行けるらしい。ただ、SSHで繋いでいたので、ネットワークの道が複数あって、それが衝突してめんどくさいことになった。

結局GPTに解決してもらったが、途中でSSHの道を消しやがって、ブチギレた。それがSSHの道だってわかっているはずなのに、消せって言われた。そういうところがまだ、気遣えないんだよね。まぁでも、そんなこともある。だって計算機だもの。

ということでaptがupdateできた。やったね!

なんかもろもろ入れる

これでいい感じに手に入れる事ができたので、諸々入れる。

sudo apt install -y build-essential git curl wget
  • build-essential: C/C++ のビルドに必要なコンパイラ一式
  • git: ソース管理(コードを落としてきたり)
  • curl/wget: インターネットからファイルを取ってくる
    なんかこれが必要らしい。よくはしらんがGPTの仰せのままに
sudo apt autoremove

# 消される候補が出てくる
sudo apt autoremove --dry-run

これで過去のバージョンを削除するとスッキリする。とはいえ、そこまで容量があるわけではないので、別に消さなくてもいい。怖いからしなくてもいい。

Pythonとpip

# これでpython3とpipが入る
sudo apt install -y python3-pip

pipとはなんぞや

Pythonのパッケージ管理ツールらしいです。aptのPython専用バージョンらしいです。Pythonのライブラリを依存関係をまとめて取ってくれるやつ。

フルネームは "Pip Installs Packages" らしいです。僕はピッピと読んでいます。なんかメジャーな読み方ではないらしいですが、僕は可愛いのでピッピと呼び続けます。

venvを考える

Pythonが入って、他のやつはpipで管理しながらいれる。numpyとかそこらへん。ほんでここで出てくるのが、venvらしいです。

とりあえずvenvはPythonの中に入っているらしいです。これは便利だ。

venvとはなんぞや

pipがライブラリをインストールする場所を、区切る仕組み。普通であればパソコン全体にpipされるが、venvを作れば、そのなかにpipされるから、他にはなにもないし、影響されない。

venvの使い方

# venvという名前のvenvを作る
python3 -m venv .venv

# venvをアクティブにする。venvの中に入る
source env/bin/activate
# →基本的にはこうしたあとに諸々をpipする。

# これで抜ける
deactivate

# いまどこのvenvなのか確認
which python

Gemini CLIを入れる

現代の必須LLM, Gemini CLIを入れる。今までPythonのことを考えていたけど、Gemini CLIはNode.jsなので、Node.jsを入れてからGemini CLIを入れる。

# これでNode.jsがはいるらしい
sudo apt install -y nodejs npm

# これでGemini CLIがはいるらしい
npm install -g @google/gemini-cli

# これで起動
gemini

# これで抜ける
/quit

これはNode.jsで入っているのでvenvとかpipとかのPythonの話は関係ない。だから、どこでもgeminiが動く

# プロジェクトのローカルにインストール
npm install xxx

# システム全体(グローバル)にインストールして、どこでもコマンドとして使える
npm install -g xxx

npmとはなんぞや

正式名称はNode Package Managerらしいです。Node.jsのパッケージ管理ツールらしいです。ライブラリやツールをインターネットからインストールする仕組み。Pythonのpip、Linuxのaptみたいなもん。どうやら言語というか、各ごとにこのパッケージ管理ツールがあるらしい。

Gemini CLIの使い方

gemini

これを打つと、なんかいっぱい出てくる。

googleアカウントで認証みたいなところをエンターを押す。そうすると、なんか長いリンクが送られてくる。それをコピペしてブラウザで開く。ログインしたいアカウントでログインする。なんかまた、長い文字列が出てきて、コピーって出てくるのでコピーして、ターミナルにはりつけて 実行。完了!

jupiter notebook

ipynb形式にするにもライブラリが必要。ipykernelこれが必要。これもvenvの中にいれる。

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip setuptools wheel
python -m pip install -U ipykernel
python -m ipykernel install --user --name newproj --display-name "{name}"

なんかここで、どこに入れたのか、そして、ipynbがどこのカーネルで開いているのかとかがわからんくなって、ごちゃごちゃになる。ここはGPTとかgeminiとかに聞きながら頑張って解決する。

これで多分行ける。あとは手を動かしてどうにかする。

Discussion