ubuntu関係の備忘録

( last updated : 2018年頃)

貧乏人なので少額の寄付をしてlinux(ubuntu)を使う.

システムを英語環境にする.

ubuntuは日本語remix版をinstallすると,ターミナルの出力が日本語になる. なんかエラーが出た際にstackoverflowなどでの検索に不都合なので,システムの環境を英語にする. またプログラムを書く際に,メニューやエラーを英語でどのように掛けばよいか悩む場合があるので,日頃から英語環境にしておく. 始めからオリジナル版を使えば良いと思うのだが,zipファイルに日本語名があると文字化けするらしいのでremix版を使う.

システム環境設定から言語サポート(?),使用する言語(English)を最上部に設定.

これで全てのアプリケーションが英語環境で立ち上がるので時に不便.

特定のアプリケーションを日本語でたちあげたい場合は locale -a で ja_JP.utf8 があることを確認する

$ locale -a | grep ja
ja_JP.utf8
$ LANG=ja_JP.utf8 application_name

みたいな感じて起動すれば日本語環境で起動可能なようだ. 全てがこれで日本語されるわけではないがThunderbirdとかzoteroとかは日本語化されるっぽい.但し全てではない.

ちなみにgoogle検索で日本語の結果を出力したくない(英語の結果に制限したい)[https://webapps.stackexchange.com/questions/16047/how-to-restrict-a-google-search-to-results-of-a-specific-language] という需要はあるようだが,lang:enのようなオプションはなさげなので,

https://www.google.com/?hl=en

をブックマークしておく(少なくとも2回同じ言葉で検索しないといけないので不便).

Microsoft Office関係

linuxを使っていて最も困るのは,ワードファイルやエクセルファイルなどのMicrosoft Officeファイルのやりとりである.ubuntuではLibreOfficeがデフォルトでインストールされているが,レイアウト崩れや細微な事に目をつむらないといけないので精神衛生上好ましくない. 恐らく仲違いしたApache OpenOfficeもLibreOffice同様であろう.

Office Onlineを使えば最低限の機能はつかえるが,不便だしレイアウトも崩れもたまに起こる.

Microsoft Officeのコピー(?)であるKingsoft wps Officeはwin版は有償だが,linux版は無償で公開されているので思想上抵抗がなければそれを使う. それでもレイアウト崩れが起きる場合は諦めて何とかする.

Adobe reader 関係

linuxを使っていて次に困るのはpdfの編集である.特に論文をやりとりする際に注釈を入れたい事が往々にしてある. Adobe readerのlinuxサポートは終了してしまったので他の方法を考える.

okular

pdf viewerであるokularは注釈機能が備わっている. ただし,

Your annotation changes will not be saved automatically. Use File -> Save As...
or your changes will be lost once the document is closed

と注意されるように,注釈を入れても名前をつけて保存を繰り返さないといけないので面倒. しかも時々落ちるので保存し忘れた時には悲痛な声を挙げることになる. また,注釈機能もおまけ程度にしか使えないので次の方法を取る.

Xodo

Xodoというプラウザでのpdf viwerを使う.ブラウザで動くアプリなのでネットに繋がっていないと使えない. XodoのサイトからLunch Nowでローカルpdfを直接開く事もできるが,Dropboxのファイルを開くこともできるので,そちらを使う.Saveボタン押すとファイルがダンロードされるが,DropboxにSaveすれば編集したファイルが自動的に上書き保存される.

難点として,オフラインで使えないこと,日本語周りのフォントがおかしく表示される場合があるなど. 特にUIが素晴らしい事とAdobe readerと比較して軽いというのが特徴だと思う.Adobe readerで準備されている注釈が全て使えるわけではないが,当面はこれで十分.

Foxit Reader

Foxit Readerが軽量で注釈も見れるので便利そうだ.linuxでinstallerが配布されているのでそれを使う.xodoも便利なのだが,オンラインでしか使えないのと若干重い気がするので,これからはFoxit Readerを使ってみようかと思う.

illustrator & photoshop 関係

今のところ

  • illustrator -> Inkscape

  • photoshop -> Gimp

程度の候補しかない見つけていない.しかも,Inkscapeでベクターデータを開くと大概フォントがおかしくなるのでどうしようか.

Evernote関係

EvernoteのDesktopクライアントは公式にサポートしなくなった.過去にNevernoteもあった,開発が停滞したのか名称が変わったのか経緯は良く覚えていないが現在はNixnote2を使うのが宜しいと思う. 少なくともWebクライアントよりは使いやすいし公式もそれを勧めている. 無料版のEvernoteクライアントは2端末までしか連携できないが,Nixnote2は端末制限に引っかからない.

thinkpadの中ボタンクリックを無効化する.

thinkpadの中ボタンはスクロールする際に使うのだが,ubuntuではクリックと認識した際にペースト誤爆で悲惨な事になる. そうならないように中ボタンクリックを無効化する,中ボタンスクロールは使える. その代わり,ブラウザのリンクで中ボタンを押した際に「新しいタブで開く」の機能が使えなくなる. 上手く割り当てれば良いのかもしれないが,未調査

laptopの場合

$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=11	[slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                   	id=13	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=8	[slave  keyboard (3)]
    ↳ Integrated Camera                       	id=9	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=10	[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  	id=12	[slave  keyboard (3)]

id=13が中ボタン対応のようなので

$ xinput set-button-map 13 1 0 3

usbキーボードの場合

$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Lenovo ThinkPad Compact USB Keyboard with TrackPoint	id=9	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳ Lenovo ThinkPad Compact USB Keyboard with TrackPoint	id=8	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=10	[slave  keyboard (3)]

id=9がUSBキーボードなので

$ xinput set-button-map 9 1 0 3

とすれば良い. 但しログアウトすれば再設定されるのでStartup Applications Preferencesでログイン時に上のコマンドを自動設定する.

どうやらidの番号はユニークではないようなので,再起動するとidの番号が変わる(usbだからか?).なので

xinput list | head -3 | tail -1 | cut -d "=" -f 2 | awk '{print $1}'

のようにしてidを取得する.ただし,xinput list の上から3行目が中ボタンに対応すると決め打ちしているのであまりスマートではない. なおusbキーボードはusbを抜き差しすれば設定がリセットされる模様.

タッチパットの有効化/無効化

上と同じく

$ xinput list
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=11	[slave  pointer  (2)]

を探して,

xinput set-prop 11  "Device Enabled" 0 # <-無効化
xinput set-prop 11  "Device Enabled" 1 # <-有効化

で可能.適当にショートカットを設定すれば良い.

rsync で mkstemp "filename" failed

rsync でファイルを転送している際に, rsync: mkstemp "filename" failed: Function not implemented (38) とエラーが出ててファイル転送が停止してしまう場合の対処

ファイルのオーナー情報と権限をコピーしない様に

rsync -avz --no-perms --no-owner --no-group

とすれば 万事上手く行くと思われる.

参考rsync ignore owner, group, time, and perms

追記

nfs上のファイルシステムの場合permission関係で上の方法では駄目だった. そもそもa(archive)オプションは-rlptgoDと同じなので不要なものを除いて最小は

rsync -rltz

で良いと思う.v(verbosity)をつけても良いけどね.パーミション関係をコピーしたくなければ --no-Pをつけても良いかもしれない. 私が大量のデータをサーバーからrsyncする場合は

rsync -rltz --no-P --info=progress2

としている.

UPS

omronのPowerActProは公式にcentosをサポートしているが,ubuntuは非対応が現状.しかし,ubuntuで使っている記事が合ったのでそれを参考に設定する. omron公式からPower Act Pro Master Agentの最新版をダウンロードする. ユーザー名とパスワードはUPS購入時に同梱されているのでなくさないようにする.

ダンロードしたファイルはCentOs用のrpmファイルなのでalienをつかってdeb に変換

$ sudo alien PowerActPro-MasterAgent-4.52-20170718.x86_64.rpm

インストールは

$ dpkg -i poweractpro-masteragent_4.52-20170719_amd64.deb

私の環境ではlibusb-0.1がないと怒られたので

$ sudo apt install libusb-0.1-4

で一応Power Act Proはインストールはできる.

Power Act Proの設定は前述の記事に従えばOK. UPSの設定に関する詳細は公式のマニュアルを参照すればよい.

# cd /usr/lib/PowerActPro/MasterAgent/
# ./AccessRight start
        パスワードを設定するPA2Acount が生成されない場合には,/tmp/tmpfile を PA2Acount にリネーム移動する
# ./Configureautostart Master ADD
# ./xAgentManager \-PA2linux
# chmod 700 ./*
# ./config.sh

ブラウザ経由でUPSを管理する機能があるが,ここでは自動シャットダウンだけ動けば良いのでSNMPなどは無効にしておく(有効にしても使えるかどうかは不明). 設定終了後MasterAgentは自動で起動しているが,再起動すると停止してしまう.

# cd /usr/lib/PowerActPro/MasterAgent/
# ./MasterAgent

を実行すればMasterAgentは起動するが面倒なのでsystemctlで自動起動できるようにする. 前述の記事ではうまく行かなかったので,いくつかの修正を行う. まず,

$ sudo cp /etc/rc.d/init.d/PowerActPro /etc/rc.d/init.d/PowerActPro.back # backup
$ sudo nano /etc/rc.d/init.d/PowerActPro

の冒頭を以下の様に変更

#!/bin/bash
### BEGIN INIT INFO
# Provides:          PowerActPro
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: PowerActPro
### END INIT INFO
#################################################################
# chkconfig: 12345 99 98
# description: UPS Agent daemon of PowerAct Pro For Linux

BEGINからENDまでを書いていれば,その後はどうでも良い. 20行目くらいのstart関数

start()
{
	echo -n $"Starting $PROGNAME:"
	echo
	if [ -x $BINPATH/MasterAgent -a -x $BINPATH/AgentManager ];
	then
		$BINPATH/MasterAgent
#		setenforce 0
	fi
}

の setenforceをコメントアウトする(副作用があるかどうかは知らない). シンボリックリンクを

$ sudo ln -s /etc/rc.d/init.d/PowerActPro /etc/init.d/PowerActPro

に作る.

$ cd /etc/init.d/PowerActPro
$ sudo ./PowerActPro4 start
$ sudo ./PowerActPro4 stop

でMaster Agentが起動,停止できていればok(ps auxw なんかで調べれば良い). systemctlに登録するため,PowerActPro.serviceを作る.

$ sudo nano /lib/systemd/system/PowerActPro.service

設定ファイルはわりと適当に

[Unit]
Description=PowerAct
After=network.target

[Service]
Type=forking
Restart=always
ExecStart=/etc/init.d/PowerActPro start
ExecStop=/etc/init.d/PowerActPro stop

[Install]
WantedBy=multi-user.target

これもリンクを通す(直接ファイルを作っても良かったかもしれない)

$ sudo ln -s /lib/systemd/system/PowerActPro.service /etc/systemd/system/PowerActPro.service

$ sudo update-rc.d PowerActPro4 defaults

を実行.

$ systemctl status PowerActPro.service
$ systemctl stop PowerActPro.service
$ systemctl start PowerActPro.service

等々が問題なくできれば,サービスの有効化を行う.

$ systemctl enable PowerActPro.service

これで再起動しても自動でMaster Agentが起動される.UPSの電源を抜いて,自動シャットダウンが機能しているのでとりあえずは運用できる.

rsync + find

環境が転々としていると,過去の計算データへがいろいろなディレクトリに散乱しており,アクセスに無駄な時間を費やす場合ある.特に学会発表のイントロに使うデータは使いまわす事が多く,ちょっとデータを修正したいといった場合に,データにアクセス出来ないとちょっと面倒だし,最悪見つからない場合がある. 現在大容量HDDも比較的安価なので,データを一箇所に集約する.ただし,壊れても良いようにbackupだけは取らないといけない. 特定の日時(以前以降)

find . -newermt 20170401 -not -newermt 20180331 -print0  | rsync -av --dry-run --files-from=- --from0 ./ /nfs/ResearchData/2014D3/

## bluetooth

症状:unity-control-centerのbluetoothをonにしてもbluethoothがonにならない.

$ journalctl -xe | grep bluetooth bluetoothd[1288]: Failed to set mode: Blocked through rfkill (0x12)

となっているので

$ rfkill unblock all

として様子見.
https://superuser.com/questions/1053318/permission-denied-when-i-try-to-pair-to-a-bluetooth-speaker-on-ubuntu-14-04

linux server 管理

設定ファイル

/etc/

の管理はetckeeperを使うとgitで自動的に記録される