- 投稿日:2022-01-19T21:52:19+09:00
Linux(Ubuntu)に非rootユーザがPython環境構築する方法
目的 Linuxマシンにroot権限がないユーザがPython環境を構築する方法。 滅多にない場面だが、共有GPUサーバーを利用する際に、root権限がないユーザを発行される & pipすら入っていない、という状況に遭遇した。 sudo apt install python3-pip とするとエラーが出たので、他の方法を試す。 前提 curl、もしくはwgetがインストールされているものとする。 方法 Anacondaをインストールする。具体的には以下の通り。 https://repo.anaconda.com/archive/ を訪れ、自分が使いたいバージョンのダウンロードリンクを確認する。例えば、記事執筆時(21/01/19)時点の最新バージョンだと https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh である。 以下のコマンドを順に打ち込む。まずシェルスクリプトをダウンロード。 terminal curl -O ${先ほど確認したリンク} 例えば、 terminal curl -O https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh curlがインストールされていない場合はwgetを使ってください。 Anacondaをインストール terminal sh ${先ほどダウンロードしたファイル} -b -p 例えば、 terminal sh Anaconda3-2021.11-Linux-x86_64.sh -b -p もうシェルスクリプトはいらないので捨ててください。 terminal rm ${先ほどダウンロードしたファイル} 環境変数を設定 terminal echo ". $HOME/anaconda3/etc/profile.d/conda.sh" >> ~/.bashrc echo "conda activate base" >> ~/.bashrc 適宜自分のシェルに合わせて読み替えてください。 再起動するか、 source ~/.bashrc anacondaを最新版に(任意) terminal conda update conda conda install anaconda これでPython環境が出来上がりました。 which python3 として出てきたパスがホームディレクトリ以下の anaconda3/bin/python3であれば正しいです。 終わりに sudo必要なかったですね。condaの使い方は他の記事読んでください。 これとか。 https://qiita.com/naz_/items/84634fbd134fbcd25296
- 投稿日:2022-01-19T17:31:00+09:00
シンボリックリンク 元ファイルを削除するとどうなる?
シンボリックリンクの元ファイルを削除するとどうなるのか? 詳細動作を理解していなかったので確認してみました シンボリックリンクの作成/削除手順含めて確認内容を記載します シンボリックリンクの作り方 テスト用の元ファイルを作成 $ echo "symbolic link test file." > /home/waterame/original.txt シンボリックリンクを作成 $ ln -s "元ファイル" "シンボリックリンクファイル名" $ ln -s /home/waterame/original.txt orilink コマンドオプション "-s" はシンボリックリンク作成を指定するオプションで、無い場合はハードリンクとなる 作成されたことを確認 $ ls -l lrwxrwxrwx 1 waterame group 46 1月 19 14:04 orilink -> /home/waterame/original.txt シンボリックリンクの削除 $ unlink orilink もしくは $ rm orilink 元のファイルは、削除されません シンボリックリンクがある状態で、オリジナルのファイルを消した場合 $ rm /home/waterame/original.txt シンボリックリンクは見えるが、リンク切れ状態となる $ ls -l lrwxrwxrwx 1 waterame group 46 1月 19 14:04 orilink -> /home/waterame/original.txt $ cat original.txt cat: original.txt: そのようなファイルやディレクトリはありません オリジナルファイルを削除したあと、同名のファイルを作成するとどうなるか $ ln -s /home/waterame/original.txt orilink $ ls -l lrwxrwxrwx 1 waterame group 46 1月 19 14:04 orilink -> /home/waterame/original.txt $ cat original.txt symbolic link test file. リンクが復活する!! まとめ シンボリックの元ファイルを消した後、同名のファイルを再度作成すればシンボリックリンクのリンクは復活する
- 投稿日:2022-01-19T16:46:07+09:00
Sipeed LicheeRV セットアップまとめ
1.はじめに SipeedのLicheeRVというボード及び拡張モジュールを入手したのでセットアップなどの覚書その2です。 LicheeRVはAllwinnerが開発したD1というRISK-VアーキテクチャのSoCを搭載したSBCです。前回は最小構成のCoreボードでUbuntu20.04を動かしてみましたが、DockとPanelモジュールを入手したの動かしてみます。 購入先はこちら。 Lichee RV D1(core) Lichee RV Dock Lichee RV Panel 仕様等はこちらにもアップされています。 強つよの人は自分でOSビルドしちゃうんでしょうけど、無理な私は提供されているOSイメージで動かします。OSビルド環境もdockerで提供されています。 OSはデスクトップ環境付きのDebianもしくは無しのTinaが選択できます。 2.提供されているOSイメージ ※2022/1/18現在 いろんなパターンのOSイメージが公開されています。 Panelモジュールにはディスプレイの解像度が420x420と720x720の2タイプあり、このイメージは420x420に対応しています。720x720のタイプを使用する場合は、イメージのインストール後にデバイス構成ファイルを書き換える必要があります。 3.インストール方法 OSは16GB以上のMicroSDカードに書き込みます。オフィシャルのWikiに詳しく書いてあるのでその通り進めていきます。 まず、ファイル共有サイトから目的のOSのイメージファイルをダウロードします。今回はPanel用のDebianをインストールするため、LicheeRV_Debian_86_480p.7zをダウンロードします。 また、MicroSDへの書き込みにはPhenixCardを使用します。 PhenixCardはこちらからダウンロードできます。 PhenixCardは解凍したらインストールせず実行できます。PhenixCard.exeを実行しましょう。 実行したらウィンドウが開きますので、イメージファイルを選択、WorkType を Start up に変更、インストール先のドライブを確認して Burn します。 Debianの場合、40%ぐらい進捗したあと数分動かなくなりますが、気長に待ちましょう。全部で10分くらいかかります。Tinaなら数分です。 4.デバイス構成を変更する(720Pパネルの場合) 720PのPanelモジュールの場合、デバイス構成を変更する必要があります。デバイス構成の変更はLinux環境で行います(それしかやり方をしらないので) ここから、boot_package_86_720p.fexをダウロードしてカレントディレクトリに保存してください。 続いてlinuxPCにMicroSDカードをマウントし、ddコマンドでファイルを書き込みます。事前にlsblkコマンド等で、どこにターゲットのMicroSDカードがマウントされているか確認しておいてください。(前回記事にマウント先の確認方法を記載しています) Raspberry Piだと一つ目のUSBドライブはsdaにマウントされています。 ubuntuでやったときはこんな感じ。 マウント先は環境により変わるので注意! 5.動作確認 では、作成したMicroSDを挿入して起動してみましょう。 と言いたいところですが、私の購入したcoreボードが初期ロットの不具合発生のためディスプレイが動かないというオチ。少々残念ですが、TwitterでSipeed公式さんに相談したら、すぐに交換品を送ってくれるとのことなので問題無し。公式さんとも少し仲良くなれた気がするのでラッキーまであります。 不具合の影響が出ない Dock + HDMI 構成を試したら起動確認できました。 sipeedのlicheeRV、本命のPanelモジュールは苦戦中だけどdock + hdmiはさっくり動いた。 pic.twitter.com/zzZa9tGQgG— AIRPOCKET (@AirpocketRobot) January 18, 2022
- 投稿日:2022-01-19T16:18:43+09:00
Gtk3アプリ BGMを再生する
System.Media.SoundPlayerが使えない。 Ubuntu .net5ではWindowsで使えたSoundPlayer System.Media.SoundPlayerが使えない。 NAudioというライブラリを使えばMp3が再生できるようだが、.net5サポートしていない。 VLCを実行させてMP3を再生させる。 $ sudo apt-get install vlc /usr/bin/vlc MP3ファイルのパス --play-and-exit --input-repeat=3 再生し終わった後に終了する --play-and-exit リピート回数 --input-repeat=3 VLCの引数 サブスレッド内で実行するとTimer関数内で実行しても長時間実行しても落ちずにすむ using System; using System.Threading.Tasks; public class clsTest2 { //メンバーにする。メモリリークを防止する private System.Diagnostics.Process P; private void _mkSound() { //サブスレッド内で実行する var task = new Task(async () => { string argsStr = " " + "/mp3ファイル" + " --play-and-exit --input-repeat=3"; p = new System.Diagnostics.Process(); p.StartInfo.FileName = "/usr/bin/vlc"; //引数 p.StartInfo.Arguments = argsStr; // コンソール・ウィンドウを開かない p.StartInfo.CreateNoWindow = true; // シェル機能を使用しない p.StartInfo.UseShellExecute = false; // 標準出力をリダイレクト p.StartInfo.RedirectStandardOutput = true; // 標準入力をリダイレクト p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardError = true; //プロセスが終了したときに、Exited イベントを発生させるかどうか設定 p.EnableRaisingEvents = true; P.Exited += delegate(object? sender, EventArgs args) { P.Close(); P.Dispose(); }; P.Start(); P.BeginOutputReadLine(); //P.WaitForExit(); }); task.Start(); } } 追記 Gtk3アプリ TreeViewとデータ各種処理2へ続く
- 投稿日:2022-01-19T15:58:20+09:00
DockerでZabbix Server 5.0の構築してみた
背景 Dockerコンテナ環境でZabbix Serverを構築していますのでメモ書きしてみました。 動作環境 ホスト側 OS:Ubuntu Server 20.04.3LTS Docker CE version 20.10.12 docker compose version v2.2.3 コンテナ側 公式のDockerコンテナを使用します。 GitHub - zabbix/zabbix-docker: Official Zabbix Dockerfiles ベースには以下のLinuxディストリビューションが用意されています。 Alpine CentOS Oracle Linux Ubuntu 今回は例によって軽量のAlpine Linux版を使用します。 なおCentOS 8はOracle Linux 8に置き換わった様子です。 zabbix's Profile | Docker Hub Docker環境の準備 以下のページにて紹介していますので参考にしてみて下さい。 Linuxサーバー環境のDockerインストールメモ - Qiita Zabbix 5.0構築の方針 Zabbixには状況に応じて複数のサービスがあります。 Zabbix Agent Zabbix Server Zabbix Web interface(Apache2 or Nginx) Zabbix Proxy Zabbix Java Gateway Zabbix SNMPtraps またデータベースも以下が利用出来ます。 MySQL PostgreSQL SQLite3 今回は通常のZabbix Serverを構築する事として以下の必要なサービスを選択します。 Zabbix Agent Zabbix Server Zabbix Web interface(Nginx) MySQL Zabbix 5.0のシステム構築 公式ドキュメントを参考にdocker composeでシステム全体を作成します。 Zabbix Documentation 5.0 5 Installation from containers gitリポジトリの取得 GitHubからZabbix公式のgitリポジトリを取得します。 $ git clone https://github.com/zabbix/zabbix-docker.git $ cd zabbix-docker gitブランチの変更 標準のブランチは最新版の5.4になりますが状況に応じてLTSの5.0に変更します。 ここでは安定長期サポートLTSの5.0に変更します。 $ git branch * 5.4 $ git checkout 5.0 $ git branch * 5.0 5.4 $ git branch --set-upstream-to=5.0 $ git pull docker-compose設定 サンプルの「docker-compose.yaml」ファイルが複数用意されているので適当にコピーします。 今回はAlpine-MySQL版を選択します。 $ cp docker-compose_v3_alpine_mysql_latest.yaml docker-compose.yaml リソースオプションの警告 docker compose起動時にswarmのリソースオプションのエラーがでます。 「WARNING: The following deploy sub-keys are not supported and have been ignored: resources.reservations.cpus」 該当項目(reservations:)を複数箇所コメントアウトします。 docker-compose.yaml # reservations: # cpus: '0.5' # memory: 512M Zabbix Agent Zabbix-Agentのコンテナは「docker-compose.yaml」ファイル設定のprofilesでオプション扱いなので外して有効化します。 これでホスト側が監視出来ます。 docker-compose.yaml zabbix-agent: image: zabbix/zabbix-agent:alpine-5.0-latest #profiles: # - full # - all PHPのタイムゾーン設定 env_vars/.env_web PHP_TZ=Asia/Tokyo docker composeの起動 $ docker compose up -d 問題がなければ以下のように起動しています。 $ docker compose ps NAME COMMAND SERVICE STATUS PORTS zabbix-docker-db_data_mysql-1 "sh" db_data_mysql exited (0) zabbix-docker-mysql-server-1 "docker-entrypoint.s…" mysql-server running zabbix-docker-zabbix-agent-1 "/sbin/tini -- /usr/…" zabbix-agent running zabbix-docker-zabbix-server-1 "/sbin/tini -- /usr/…" zabbix-server running 0.0.0.0:10051->10051/tcp zabbix-docker-zabbix-web-nginx-mysql-1 "docker-entrypoint.sh" zabbix-web-nginx-mysql running (starting) 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp 一つ停止しているコンテナ「zabbix-docker-db_data_mysql-1」はMySQLのデータ格納コンテナを作成するプロセスです。このままで問題ありません。 初回起動時はデータベースが空なので順次基本データを取得して作成されます。 その為ログイン画面が正常に表示されるまではしばらく時間がかかります。 お茶でも飲みながらしばらく休憩して待ちましょう。 グラフの日本語の文字化け Web設定でユーザー言語を「日本語(ja_JP)」を選択しても、グラフ表示のキャプションが豆腐文字で文字化けするので修正します。 以下のページで紹介しているので参考にしてください。 DockerでAlpine LinuxのZabbix 5.0グラフが豆腐になる日本語表示を修正するメモ - Qiita