あークソ汚い部屋でsystemdと格闘する一日がはじまる
Conversation
Notices
-
sakasame@twiddon.com's status on Tuesday, 21-Sep-2021 14:48:45 JST sakasame -
のえる (noellabo@fedibird.com)'s status on Tuesday, 21-Sep-2021 14:48:45 JST のえる @sakasame LinuxなりUNIXの環境では、マルチユーザーで使うのが当たり前になっていて、
ファイルやディレクトリのアクセス権限、ホームディレクトリ、シェル、環境変数などが別々になっていて、
Pythonなど言語やフレームワークの実行環境が、それぞれにモジュールをインストールする(その環境に閉じる)仕組みになっていて、
それにOS全体で共通の設定や、rootの環境などがあって、
それを意識して区別していかないとごっちゃになりやすいというところがハマりどころだと思うのね。特にもともとがデスクトップOS使ってて、Linux使い慣れてない場合。
その上で、この実行環境だとこの環境変数は設定されない(反映されない)とか、結果として違う実行ファイルや設定が読み込まれているとか、そこを覚えていく必要がある。
たとえば、systemdもそうだし、cronもそうだし、端末から直接ログインする場合とsuやsudoでログインするときに参照される設定ファイル(.bashrcとか.bash_profile)が違ったり、そもそも読み込まれなかったりする。
覚えるところはそのへんかな。
-
のえる (noellabo@fedibird.com)'s status on Tuesday, 21-Sep-2021 15:12:17 JST のえる @sakasame 流れとしては、グローバルにrootユーザーでインストールする作りだったものが最初で、
それだと凄く使いにくくなってきたので、各ユーザーの権限でそれぞれにインストールできるようになり、
それでも十分じゃないので、さらにディレクトリ単位や環境変数の切り替えなどで別々にインストールできるようになったりしてきています。
そこに、もう一層仮想化してDockerで環境を閉じ込めたりしています。
たとえば、最初からbotctrlユーザーでインストールしていればいいんですが、sakasameでインストールしたファイルを移動したり、うっかりsuやsudoでrootでインストールしてしまったりすると、期待した環境にならなくなってしまいます。
まぁ、よくわからなくなったら、全く新しいユーザーを作成して、そこに入れ直すとだいたいうまくいきます。
よそから持ってくる場合は、それによって何が起きているかわかっていないと、原因不明になるかと思います。とくにGUIで操作する場合は、何をしたか人に説明するのも難しいので、コマンドで実行することをオススメします。
-
sakasame@twiddon.com's status on Tuesday, 21-Sep-2021 15:12:18 JST sakasame @noellabo いつもありがとうございます…。
>Pythonなど言語やフレームワークの実行環境が、それぞれにモジュールをインストールする(その環境に閉じる)仕組みになっていて
多分こんな感じなんだろうなとうすうす思っていたんですが、やっぱりそうなんですね…。(何度やってもbotユーザーからbashが参照出来ないので流石にもしかして?という疑問を持ち始めてました)
普段からUbuntuをGUI環境で使っているので、なおさらそのあたりの権限まわりが曖昧な認識になってました。
(そもそも当初WorkingDirectoryへアクセスできなかったのもroot権限でファイラーを動かしてそれでbotディレクトリを移動してたからだったようですし)
まずはコマンドラインでファイルを移動するところからやり直して、その上でbotユーザーにもbashをインストールすれば解決かな…?というのが今の所考えてるスジなので、やってみようと思います。
-