rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

systemd サービス削除

2021 Apr. 03.

出典 linux - How to remove systemd services - Super User

# systemctl stop [servicename]
# systemctl disable [servicename]
# rm /etc/systemd/system/[servicename]
# rm /etc/systemd/system/[servicename] # and symlinks that might be related
# rm /usr/lib/systemd/system/[servicename] 
# rm /usr/lib/systemd/system/[servicename] # and symlinks that might be related
# systemctl daemon-reload
# systemctl reset-failed  # サービス起動失敗時のステータスをクリアする

rbenv, ruby, bundlerをインストール

2021 May 02.
2021 Apr. 17.
2021 Mar. 28.
2021 Feb. 07.
2020 Oct. 08.
2020 Sep. 22.
2019 Oct. 12.
2018 Sep. 15.
2018 Aug. 14.
2017 Mar. 12.
2017 Feb. 21.

rubyのインストール・利用に必要なパッケージインストール

Ubuntu

# apt update && apt install git build-essential libssl-dev libreadline-dev zlib1g-dev


(Arch系Manjaro Linux

# pacman -S make m4 gcc patch ed pkg-config

システムワイドにrbenv・ruby・bundlerをインストール

rbenvをインストール

参考元
 Debian 9上でrbenvをシステムワイドにインストールする - 発声練習
 rbenvでsystem wideに入れるときに気をつけたいこと - Qiita
 rbenvを使ってシステムワイドにrubyをインストールする方法 - Qiita

rbenvを /usr/local/rbenvにインストール

# git clone https://github.com/rbenv/rbenv.git /usr/local/rbenv


/usr/local/rbenvのグループ設定・パーミッション設定

# chgrp -R staff /usr/local/rbenv
# chmod -R g+rwxXs /usr/local/rbenv


プラグイン ruby-build rbenv-default-gems をインストール

# git clone https://github.com/rbenv/ruby-build.git /usr/local/rbenv/plugins/ruby-build
# chgrp -R staff /usr/local/rbenv/plugins/ruby-build
# chmod -R g+rwxs /usr/local/rbenv/plugins/ruby-build
# git clone https://github.com/rbenv/rbenv-default-gems.git /usr/local/rbenv/plugins/rbenv-default-gems
# chgrp -R staff /usr/local/rbenv/plugins/rbenv-default-gems
# chmod -R g+rwxs /usr/local/rbenv/plugins/rbenv-default-gems


staffグループを作成し、ユーザーをstaffグループに追加する

# groupadd staff    (ubunbuでは最初からstaffが存在しているので不要)
# usermod -aG staff USER1
# usermod -aG staff USER2


/etc/profile.d/HOGE.shに環境変数を設定。
"rbenv init"実行前にRBENV_ROOTとPATHをexportしないとrbenvによるrubyのインストール先が/root/になってしまう

RBENV_ROOT=/usr/local/rbenv
export RBENV_ROOT
PATH="${RBENV_ROOT}/bin:${PATH}"
export PATH
eval "$(rbenv init --no-rehash -)"


PCを再起動してグループ設定を反映する

# reboot


各ユーザーのcrontabの環境変数設定にもecho出力の値を記述しておく

echo $RBENV_ROOT
echo $PATH

rubyをインストール

rubyインストール時に自動インストールするgemを記述した/usr/local/rbenv/default-gemsファイルを作成

(/usr/local/rbenv/default-gems)

bundler
pry
rbenv-rehash



rbenvでrubyをインストール

# rbenv install --list

ここで rbenv: no such command `install' となったら
出典 https://ogatism.jp/rbenv_install

# /usr/local/rbenv/plugins/ruby-build/install.sh


適当なバージョンのrubyをインストールする

# rbenv install 2.6.6p146
# rbenv rehash


インストールしたrubyをglobalにする。

# rbenv global 2.6.6p146
# rbenv rehash


gemのバージョンを最新にする。

# rbenv exec gem update --system
# rbenv rehash


ホームディレクトリに ~/.gemrc を作成する。

(.gemrc)

install: --no-document
update: --no-document


Bundlerをインストール
# rbenv exec gem install bundler --no-document
# rbenv rehash


gemを使って任意のrubyパッケージ(例:rails)をインストールする例
# rbenv exec gem install rails --no-document
# rbenv rehash


自作ライブラリの置き場所設定
# mkdir -p /usr/local/lib/ruby/VERSION
# vim /etc/profile.d/YOUR-PROFILE.sh
    RUBYLIB=/usr/local/lib/ruby/VERSION
    export RUBYLIB


RUBYLIB=/usr/local/lib/ruby/VERSION をcrontabにも記述しておく

ユーザ別にrbenv・ruby・bundlerをインストール

rbenvをインストール
$ cd
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build


~/.profile に記述

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
$ source ~/.profile
$ rbenv rehash

rubyをインストール
$ rbenv install --list
$ rbenv install 2.0.0-p648
$ rbenv rehash
$ rbenv versions
$ rbenv global 2.0.0-p648

bundlerをインストール
$ rbenv exec gem install bundler
$ rbenv rehash
$ rbenv exec bundle config --global path 'vendor/bundle'


~/.bundle/config を作成する

BUNDLE_PATH: vendor/bundle


自作ライブラリの置き場所設定

$ mkdir ~/ruby/lib/VERSION
$ vim ~/.profile
    RUBYLIB=${HOME}/ruby/lib/VERSION
    export RUBYLIB

TV録画システム epgrec_UNA5年、Chinachu1ヶ月、EPGStation10日の印象

2021 Apr. 23.
2021 Mar. 29.
2021 Mar. 20.

番組表

epgrec_UNA
  • 各放送局の幅、時間高さの調整が可能で、しかもすぐに変更できる
  • 番組をクリックすると番組内容全体が画面上部に表示されるので、確認しやすい
  • 録画予約処理を行っても、それまで見ていた番組表画面に戻れるので、続けて番組表を見ることができる

Chinachu
  • 文字が小さめでメリハリもないせいか、epgrec_UNA、EPGStationの方が見やすい
  • 各放送局の幅、時間高さの調整ができない(と思う)
  • 番組内容全体確認は右クリックメニューでコピーして、エディタにペーストすることで可能
  • マウス左クリックすると番組内容が表示され、録画予約等ができるが、番組表に戻ると、番組表初期画面に戻り、それまで表示していた位置に戻れない
  • 番組タイトル内の「」で囲まれた文字列がほとんど脱落するので、映画タイトルが表示されない。マウスカーソル位置に吹き出されるタイトルには含まれているので、なんとかなるが使いにくい
  • ドラマのタイトルの(第○話)が表示されない。( )内の文字列が非表示? マウス吹き出しには表示される

EPGStation
  • 各放送局の幅、時間高さの調整ができない(と思う)
  • 番組内容全体はマウス左クリックで表示され、元の番組表画面に戻ることができる
  • 番組表の任意の場所でマウスドラッグによって番組表の表示時間・表示放送局を動かせる。マウス右クリックした時にもこの操作がついて回るのはうっとおしい。


番組情報保存

epgrec_UNA
  • mysqlデータベース
Chinachu
  • jsonテキストファイル。テキストファイルは扱いやすくて助かる。
EPGStation
  • (mysql)データベース


PT2のデバイスドライバ

epgrec_UNA
  • カーネルアップデートの度にインストールし直しが必要。もしくはDKMSによって自分で自動化する。

Chinachu、EPGStation


録画コマンド

epgrec_UNA
  • 自己管理のrecpt1はBS帯域再編での最新版を追うのが面倒

Mirakurun(Chinachu、EPGStation)
  • パッケージ化されたdvbv5-zapは(今のところ)問題ない


arib-b25復号

epgrec_UNA
  • b25コマンドで自由に操作できる

Mirakurun(Chinachu、EPGStation)
  • b25コマンドを動かすと"error - failed on B_CAS_CARD::init() : code=-3"となる


番組検索

epgrec_UNA
  • 大変使いやすい。正規表現対応がありがたい。

Chinachu
  • いかにもわかりにくそうで、あまり使っていない
EPGStation
  • 大変使いやすい。正規表現対応がありがたい。

cron 変数の設定と展開

2023 Jun. 11.
2021 Mar. 20.

"crontab -e"での変数設定では変数展開されない

$や{ }は単なる文字。
引用符で括られた文字列はリテラルと扱われる。

crontabでの設定
VAR1=varone
VAR2="${VAR1}"
VAR3=${VAR1}
VAR4=$VAR1
VAR5="var five"
VAR6='var six'

*  *  *  *  *  echo "VAR1: ${VAR1}  VAR2: ${VAR2}  VAR3: ${VAR3}  VAR4: ${VAR4}  VAR5: ${VAR5}  VAR6: ${VAR6}"

実行結果
VAR1: varone  VAR2: ${VAR1}  VAR3: ${VAR1}  VAR4: $VAR1  VAR5: var five  VAR6: var six

環境変数

実行コマンド記述で ". /home/USER/.profile; COMMAND" のように変数設定を読み込むとよい。

Linux コマンドライン上でのTV録画

2021 Mar. 12.

録画
$ rivarun [--b25] [--mirakurun host:port] [--priority priority] [--sid SID] [--ch type/channel] rectime destfile

例
$ rivarun --mirakurun localhost:40772 --b25 --sid 231 --ch BS/BS11_2 15 bs11_2-231.ts
$ rivarun --mirakurun localhost:40772 --b25 --ch BS/BS11_2 15 bs11_2.ts
$ rivarun --mirakurun localhost:40772 --b25 --ch GR/22 15 22.ts
$ rivarun --mirakurun localhost:40772 --b25 --sid 43008 --ch GR/22 15 22.ts

プロセス置換とコマンド置換 bashシェル

2021 Mar. 15.
2021 Mar. 06.

参考ページ
bashのプロセス置換で遊んでみよう! | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
Linuxでのプロセス置換 - Qiita

プロセス置換

COMMAND1 <(COMMAND2)
COMMAND2の結果が納まったファイルパス(ファイルディスクリプタ)がCOMMAND1に渡される。

COMMAND1 >(COMMAND2)
COMMAND1の結果が納まったファイルパス(ファイルディスクリプタ)がCOMMAND2に渡される。

## seqコマンドの出力がプロセス置換によってファイルディスクリプタに納められ、
## catの標準入力に流し込まれる
cat <(seq 10)

## echoコマンドの出力がファイルディスクリプタにリダイレクトされ、
## そのファイルディスクリプタはプロセス置換によってcatの標準入力に流し込まれる
echo $(seq 10) > >(cat) 

## COMMAND1が書き込み先ファイルパスを引数にとるなら、
## 書き込みプロセス置換を引数とすることで、
## COMMAND1の出力を内容とするファイルディスクリプタがCOMMAND2に渡される
COMMAND1 >(COMMAND2)


コマンド置換

Result=$(COMMAND1)
COMMAND1の結果そのものが変数Resultに渡される。

echo $(seq 10)