共有ライブラリへのパス

2018年11月27日火曜日

共有ライブラリーのデフォルトでは /lib と /usr/lib にパスが通っている
それ以外のパスを追加したい場合

1.特定アプリの場合
環境変数「LD_LIBRARY_PATH」に設定する
環境変数なので設定した環境変数が参照できるプログラムしか有効にはならない
一時的に設定したい場合は以下のようにする

$ LD_LIBRARY_PATH=/usr/local/lib:/usr/lib; export LD_LIBRARY_PATH
または
$ export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib

すでに「LD_LIBRARY_PATH」に値が設定されており、そこに追加したい場合は、以下のようにする

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/lib

2.システム全体で設定
/etc/ld.so.conf」に設定する
システム全体でライブラリパスを設定したい場合は、/etc/ld.so.confファイルにライブラリへのパスを追記する
ubuntu10.04やFedora14では以下のように書かれており、直接書くのではなく、「/etc/ld.so.conf.d」に置かれた.conf拡張子のファイルを読み込んでいます

$ cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf

なので、同様に通したいパスを書いたXXX.confのようなファイルを追加してもよい
設定ファイル/etc/ld.so.confからキャッシュファイル/etc/ld.so.cacheへキャッシュ化を行います
OSは、検索速度を上げるために、ライブラリパスをキャッシュファイルから検索します
従って、設定ファイルの内容を元にキャッシュファイルを更新する必要があります
# ldconfig

確認
# ldconfig -v

Windows 10でBIOS/UEFIセットアップ画面を確実に開く方法

2018年10月17日水曜日

Windows 10でBIOS/UEFIセットアップ画面を確実に開く方法
USBメモリから起動できるようにするなどのためにBIOSやUEFIのセットアップ画面を表示させたいことがある
しかしWindows 10では起動方法が変更されたため、セットアップ画面を簡単に開けない
Windows OSをクリーンインストールするためにUSBメモリから起動できるようにしたり、仮想化技術を利用するためにIntel VT/AMD-Vなどの機能を有効にしたりするために、BIOSやUEFIのセットアップ画面を開きたい場合がある
ただ、Windows 8.x以降、Windows OSの起動方法が変更になり、再起動時にBIOS/UEFIセットアップ画面を呼び出すキーを押しても、Windows OSが起動してしまい、BIOS/UEFIセットアップ画面が表示されないことも多い

BIOS/UEFIセットアップ画面を呼び出す方法
完全に電源オフから起動がポイント
BIOS/UEFIセットアップ画面を開くには、起動時に特定のキーを押せばよい
しかしWindows 8.1/10で導入された「高速スタートアップ」機能では、前回の状態(シャットダウン直前のメモリやCPUの状態)を「休止状態としてディスクに保存」しておき、「起動時にはその休止状態から復帰」させている
これにより、起動時の初期化処理を省略して、起動を高速化している
高速スタートアップによって、起動が高速化される半面、BIOS/UEFIセットアップ画面を開くためのキー入力を受け付けるタイミングがなくなってしまった
そこで、確実にBIOS/UEFIセットアップ画面を開くためには、一度、完全にシャットダウンしてから起動することで、キー入力のタイミングを得る必要がある
そのためには、[スタート]メニューの[歯車(設定)]をクリックし、[Windowsの設定]画面で[更新とセキュリティ]を選択し、[更新とセキュリティ]画面の左ペインで「回復」を選択、右ペインの「PCの起動をカスタマイズする」で[今すぐ再起動]ボタンをクリックする
PCが再起動し、[オプションの選択]画面が開くので、ここで[PCの電源を切る]を選択する
これで、次回起動時には高速スタートアップがオフの状態で起動する
完全に電源オフにする(1) 完全に電源オフにする(1)
[スタート]メニューで[歯車(設定)]アイコンをクリックして、[Windowsの設定]画面を開く
ここで[更新とセキュリティ]を選択する
完全に電源オフにする(2) 完全に電源オフにする(2)
[更新とセキュリティ]画面の左ペインで[回復]を選択し、右ペインの「PCの起動をカスタマイズする」の[今すぐ再起動]ボタンをクリックする
完全に電源オフにする(3) 完全に電源オフにする(3)
再起動後、この[オプションの選択]画面が表示されるので、ここの[PCの電源を切る]をクリックする
これで完全にPCの電源がオフになり、次回起動時には高速スタートアップが無効になった状態になる
BIOS/UEFIセットアップ画面を開くためのキーが分からず、何度もチャレンジする可能性があるのであれば、いちいち[オプションの選択]画面を開くのは面倒なので、一時的に高速スタートアップを無効化するのもよい

BIOS/UEFIセットアップ画面を開く

完全にシャットダウンしたら、電源ボタンを押して、すかさずBIOS/UEFIセットアップ画面を開くためのキーを押そう
その際、キーは押したままにせずに、キーを連打するとよい
このキーは、PCベンダーや機種などによって異なるが、[Del]キーや[F2]キーが多いようだ
もし、BIOS/UEFIセットアップ画面を開くためのキーが分からないのであれば、この2つのキーを順番に連打してみるとよいだろう
これでダメな場合は、[F1]キーや[Esc]キーを試してみよう
BIOS/UEFIセットアップ画面を開く(1) BIOS/UEFIセットアップ画面を開く(1)
電源をオンにすると、BIOS/UEFIベンダーやメーカーのロゴが一瞬表示されるので、ここですかさずBIOS/UEFIセットアップ画面を開くキーを押す
画面には、何のキーでセットアップ画面が呼び出せるか書いてあることもある
BIOS/UEFIセットアップ画面を開く(2) BIOS/UEFIセットアップ画面を開く(2)
タイミング良くキーが入力できると、このようなBIOS/UEFIセットアップ画面が開くので、起動の順番を変更してUSBメモリから起動できるようにしたり、仮想化支援機能を有効にしたりする
最近のPCは起動が速くなっており、キーを押すタイミングが短くなっている
正しいキーを押しても、Windows 10が起動してしまうこともあるので、根気よく何度か試すことも重要だ
また、Surface Proなどのようにタブレット型の場合、BIOS/UEFIセットアップ画面を開くには、音量ボタンが割り当てられているケースが多い
Surface Proの場合、[音量を上げる]ボタンを押しながら、電源ボタンを押し、画面にSurfaceロゴが表示されたら[音量を上げる]ボタンを離すとUEFIセットアップ画面が表示される
機種によっては、[音量を下げる]ボタンの場合や、起動時の画面にUEFIセットアップ画面を開くボタンが表示されて、そこをタップすることで開く場合などもある

UEFI+Windows 10ならば[オプションの選択]画面から画面呼び出し可能

ファームウェアがUEFIでWindows 10が起動するのであれば、PCの起動時にキーを入力しなくても、Windows 10の[オプションの選択]画面からUEFIセットアップ画面を開くことが可能
具体的には、完全にPCの電源を切る方法と同様、[更新とセキュリティ]画面を開き、左ペインで「回復」を選択、右ペインの「PCの起動をカスタマイズする」で[今すぐ再起動]ボタンをクリックする
[オプションの選択]画面が開くので、ここで[トラブルシューティング]、[詳細オプション]、[UEFIファームウェアの設定]の順にクリックし、再起動を実行すればよい
再起動後、自動的にUEFIセットアップ画面が表示される
[オプションの選択]画面からUEFIセットアップ画面を開く(1) [オプションの選択]画面からUEFIセットアップ画面を開く(1)
「完全に電源オフにする」にすると同様に、[更新とセキュリティ]で[今すぐ再起動]ボタンをクリックし、この[オプションの選択]画面を開く
ここで[トラブルシューティング]をクリックする
[オプションの選択]画面からUEFIセットアップ画面を開く(2) [オプションの選択]画面からUEFIセットアップ画面を開く(2)
[トラブルシューティング]画面になったら、[詳細オプション]をクリックする
[オプションの選択]画面からUEFIセットアップ画面を開く(3) [オプションの選択]画面からUEFIセットアップ画面を開く(3)
[詳細オプション]画面の[UEFIファームウェアの設定]をクリックする
ファームウェアがUEFIでない場合(BIOSの場合)は、この項目が表示されないので、その場合は電源を完全のオフにして、起動時に特定のキーを入力する方法でBIOSセットアップ画面を開くこと
[オプションの選択]画面からUEFIセットアップ画面を開く(4) [オプションの選択]画面からUEFIセットアップ画面を開く(4)
ここで[再起動]ボタンをクリックすると、再起動が実行され、UEFIセットアップ画面が開く
[オプションの選択]画面からUEFIセットアップ画面を開く(5) [オプションの選択]画面からUEFIセットアップ画面を開く(5)
UEFIセットアップ画面が自動的に開く
ここで必要な設定を行えばよい
BIOS/UEFIセットアップ画面で必要な設定を行ったら、[Save & Exit]や[Exit]などの項目(タブ)を選択し、変更を保存してBIOS/UEFIセットアップを終了すればよい
再起動が実行された後、USBメモリからの起動など、BIOS/UEFIセットアップの設定変更が有効になる
BIOS/UEFIセットアップ画面を閉じる BIOS/UEFIセットアップ画面を閉じる
BIOS/UEFIセットアップ画面で必要な設定を行ったら、[Save & Exit]や[Exit]などの項目(タブ)を選択して、「Save Changes……」などを選択し、変更した設定を保存して再起動を行う
 Windows 10では、前回のデバイスの状態などを保存し、それを読み込むことで起動を速くする「高速スタートアップ」と呼ばれる機能がデフォルトで有効になっている(元々はWindows 8で導入された機能)
 この機能でWindows 10の起動が速くなり、電源オンからWindows OSが使えるようになるまでの時間が短縮される
ただ、「高速スタートアップ」が有効になっていると、新しく接続した周辺機器や古い規格の周辺機器を認識できなかったり、BIOSの設定変更が反映されなかったりするなどの不具合が起きることがある
このような場合は、以下の手順で「高速スタートアップ」を無効化すればよい

●高速スタートアップを無効に設定する方法

 まず、[コントロールパネル]-[電源オプション]を開くか、[Windows]+[R]キーで[ファイル名を指定して実行]ダイアログの入力ボックス(Cortanaの入力ボックスでも可)に「powercfg.cpl」と入力すると、[電源オプション]画面が開く
 [電源オプション]画面で以下の操作を行うと、高速スタートアップを無効にできる
[電源オプション]画面 [電源オプション]画面
[電源オプション]画面の左ペインで「電源ボタンの動作の選択する」((1))をクリックする
[電源ボタンの定義とパスワード保護の有効化]画面(1) [電源ボタンの定義とパスワード保護の有効化]画面(1)
[電源ボタンの定義とパスワード保護の有効化]画面が開くので、ここで「現在利用可能ではない設定を変更します」((1))をクリックする
すると、グレーアウトしていて設定変更が行えない「シャットダウン設定」((2))が、設定変更可能になる
[電源ボタンの定義とパスワード保護の有効化]画面(2) [電源ボタンの定義とパスワード保護の有効化]画面(2)
「シャトダウン設定」の「高速スタートアップを有効にする」((1))のチェックを外して、[変更の保存]ボタンをクリックする
これで、次回以降、高速スタートアップが無効な状態で起動するようになる
ただし起動時間が長くなるので注意したい

●高速スタートアップを一時的に無効化する方法

 電源オフにした状態でも高速スタートアップが有効だと、デバイスを追加してもデバイスが認識されないことがある
このような場合、一時的に高速スタートアップを無効にしてから起動するとよい
再起動を[Shift]キーを押しながら実行
再起動を[Shift]キーを押しながら実行
[スタート]ボタン((1))-[電源]ボタン((2))を押し、メニューで[Shift]キーを押しながら[再起動]((3))を選択する
[オプションの選択]画面が表示されるまで、[Shift]キーを押したままにする
[オプションの選択]画面 [オプションの選択]画面
[オプションの選択]画面が開くので、[PCの電源を切る]((1))を選択する
次にPCの電源を入れたときのみ、高速スタートアップが無効な状態で起動する
 これで高速スタートアップが一時的に無効化されて起動するため(コールドブートという)、高速スタートアップが原因となる不具合が解消される可能性がある

Windows 10で素早くUEFIの設定画面を起動する

Windows 10でUSBメモリから起動するなど、起動デバイスの順番を変更したいようなとき、UEFIで起動順番を設定する必要がある
また、システムの設定を変更するためにUEFIの設定画面を呼び出したいこともあるだろう
このような場合、Windows 10の[設定]-[更新とセキュリティ]-[回復]画面を開いて、[今すぐ再起動する]をクリック(もしくは[Shift]キーを押しながら、いずれかの[再起動]メニューを実行)し、[オプションの選択]画面で[トラブルシューティング]を選び、[トラブルシューティング]画面で[詳細オプション]、[詳細オプション]画面で[UEFIファームウェアの設定]と次々と選択していく必要があり、工数が多い だがWindows 10 Anniversary Update以降ならば、Shutdownコマンドを使って、素早くUEFIの設定画面を呼び出せるようになっている
そのためには、まずコマンドプロンプトを[管理者として実行]で起動し、以下のコマンドを実行する
「/fw」がファームウェア(UEFI)を開くオプションだ
このオプションは、Windows 10 Anniversary Updateで追加されたようだ
このコマンドで、再起動が実行され、UEFIの設定画面が自動的に起動される
デフォルトでは再起動まで30秒待つが、すぐに再起動したければ、「shutdown /r /fw /t 0」のようにしてタイムアウト時間を0秒にすればよい
管理者権限でコマンドプロンプトを開く 管理者権限でコマンドプロンプトを開く
  (1)[スタート]メニューを開く
  (2)[コマンドプロンプト]を右クリックする
  (3)[その他]-[管理者として実行]を選択する
コマンドプロンプトで「Shutdownコマンド」を実行する
コマンドプロンプトで「Shutdownコマンド」を実行する
  (1)コマンドプロンプトで「shutdown /r /fw」を実行する
再起動が実行される 再起動が実行される
  (1)「サインアウトしようとしています」ダイアログが表示され、しばらくすると(デフォルトでは30秒待つ)再起動が実行される
再起動後にUEFIの画面が表示される 再起動後にUEFIの画面が表示される

はじめてのKaos linux

2018年9月15日土曜日

HP:https://kaosx.us/
インストールは英語で
再起動後 日本後化
System Settings → Personalizationの『Regional Settings』をクリック
各項目を日本語になるように設定

日本語入力
端末で
sudo pacman -S fcitx-mozc fcitx-gtk2 fcitx-gtk3 fcitx-qt5 kcm-fcitx

環境変数の設定
.xprofileファイルを作成
#!/bin/sh
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx

フォント追加
/usr/share/fontsフォルダーに日本語フォントを入れる
Adobe Fonts:https://github.com/adobe-fonts

パッケージのアップグレード(pacmanにて)
sudo pacman -Syu


google chromeのインストール
参考:https://linuxhint.com/install-google-chrome-on-arch-linux/

 Kaos > ~ > sudo pacman -S git
パスワード:
警告: git-2.18.0-1 は最新です -- 再インストール
依存関係を解決しています...
衝突するパッケージがないか確認しています...
警告: テーブル表示をするのにカラムが不十分です
パッケージ (1) git-2.18.0-1
合計ダウンロード容量: 5.20 MiB
合計インストール容量: 32.67 MiB
最終的なアップグレード容量: 0.00 MiB
:: インストールを行いますか? [Y/n] y
:: パッケージを取得します...
git-2.18.0-1-x86_64 5.2 MiB 1415K/s 00:04 [--------------------] 100%
(1/1) キーリングのキーを確認 [--------------------] 100%
(1/1) パッケージの整合性をチェック [--------------------] 100%
(1/1) パッケージファイルのロード [--------------------] 100%
(1/1) ファイルの衝突をチェック [--------------------] 100%
(1/1) 空き容量を確認 [--------------------] 100%
:: パッケージの変更を処理しています...
(1/1) 再インストール git [--------------------] 100%
 Kaos > ~ > cd ~/Downloads
 Kaos > ~ > Downloads > git clone https://aur.archlinux.org/google-chrome.git
Cloning into 'google-chrome'...
remote: Enumerating objects: 555, done.
remote: Counting objects: 100% (555/555), done.
remote: Compressing objects: 100% (370/370), done.
remote: Total 555 (delta 225), reused 511 (delta 185)
Receiving objects: 100% (555/555), 137.70 KiB | 240.00 KiB/s, done.
Resolving deltas: 100% (225/225), done.
 Kaos > ~ > Downloads > ls
google-chrome/
 Kaos > ~ > Downloads > cd google-chrome/
 Kaos > ~ > Downloads > google-chrome > makepkg -s
==> パッケージを作成: google-chrome 69.0.3497.92-1 (2018年09月15日 16時46分22秒)
==> ランタイムの依存関係を確認...
==> 欠けている依存パッケージをインストール...
パスワード:
依存関係を解決しています...
衝突するパッケージがないか確認しています...
パッケージ (3) 新しいバージョン 最終的な変化 ダウンロード容量
main/at-spi2-atk 2.26.2-1 0.20 MiB 0.05 MiB
main/at-spi2-core 2.28.0-1 0.94 MiB 0.17 MiB
main/gtk3 3.24.0-1 46.84 MiB 7.26 MiB
合計ダウンロード容量: 7.48 MiB
合計インストール容量: 47.98 MiB
:: インストールを行いますか? [Y/n] y
:: パッケージを取得します...
at-spi2-core-2.28.0... 173.0 KiB 294K/s 00:01 [--------------------] 100%
at-spi2-atk-2.26.2-... 55.0 KiB 1965K/s 00:00 [--------------------] 100%
gtk3-3.24.0-1-x86_64 7.3 MiB 1640K/s 00:05 [--------------------] 100%
(3/3) キーリングのキーを確認 [--------------------] 100%
(3/3) パッケージの整合性をチェック [--------------------] 100%
(3/3) パッケージファイルのロード [--------------------] 100%
(3/3) ファイルの衝突をチェック [--------------------] 100%
(3/3) 空き容量を確認 [--------------------] 100%
:: パッケージの変更を処理しています...
(1/3) インストール at-spi2-core [--------------------] 100%
(2/3) インストール at-spi2-atk [--------------------] 100%
(3/3) インストール gtk3 [--------------------] 100%
:: トランザクション後のフックを実行...
(1/3) Compiling GSettings XML schema files...
Warning: Schema “org.freedesktop.Telepathy.Logger” has path “/apps/telepathy-logger/”. Paths starting with “/apps/”, “/desktop/” or “/system/” are deprecated.
(2/3) Updating icon theme caches...
(3/3) Updating the desktop file MIME type cache...
==> ビルドタイムの依存関係を確認...
==> ソースを取得...
-> ダウンロード google-chrome-stable_69.0.3497.92_amd64.deb...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 52.2M 100 52.2M 0 0 1672k 0 0:00:32 0:00:32 --:--:-- 1641k
-> eula_text.html を見つけました
-> google-chrome-stable.sh を見つけました
==> source で md5sums ファイルを検証...
google-chrome-stable_69.0.3497.92_amd64.deb ... 成功
eula_text.html ... 成功
google-chrome-stable.sh ... 成功
==> ソースを展開...
-> google-chrome-stable_69.0.3497.92_amd64.deb を bsdtar で展開
==> fakeroot 環境を開始します...
==> package() を開始...
-> Extracting the data.tar.xz...
-> Moving stuff in place...
-> Fixing Chrome icon resolution...
-> Removing Debian Cron job and duplicate product logos...
==> インストールを整理...
-> 空のディレクトリを削除...
-> 不要なファイルを削除...
-> man と info ページを圧縮...
==> パッケージの問題をチェック...
==> パッケージを作成 "google-chrome"...
-> .PKGINFO ファイルを生成...
-> .BUILDINFO ファイルを生成...
-> install ファイルを追加...
-> .MTREE ファイルを生成...
-> パッケージの圧縮...
==> fakeroot 環境を終了。
==> 作成完了: google-chrome 69.0.3497.92-1 (2018年09月15日 16時50分15秒)
 Kaos > ~ > Downloads > google-chrome > ls
pkg/ google-chrome-69.0.3497.92-1-x86_64.pkg.tar.xz
src/ google-chrome-stable.sh
PKGBUILD google-chrome-stable_69.0.3497.92_amd64.deb
eula_text.html google-chrome.install
 Kaos > ~ > Downloads > google-chrome > sudo pacman -U google-chrome-69.0.3497.92-1-x86_64.pkg.tar.xz
パスワード:
パッケージをロード...
依存関係を解決しています...
衝突するパッケージがないか確認しています...
パッケージ (1) 新しいバージョン 最終的な変化
google-chrome 69.0.3497.92-1 186.85 MiB
合計インストール容量: 186.85 MiB
:: インストールを行いますか? [Y/n] y
(1/1) キーリングのキーを確認 [--------------------] 100%
(1/1) パッケージの整合性をチェック [--------------------] 100%
(1/1) パッケージファイルのロード [--------------------] 100%
(1/1) ファイルの衝突をチェック [--------------------] 100%
(1/1) 空き容量を確認 [--------------------] 100%
:: パッケージの変更を処理しています...
(1/1) インストール google-chrome [--------------------] 100%
==> NOTE: Custom flags should be put directly in: ~/.config/chrome-flags.conf
==> NOTE: The launcher is called: 'google-chrome-stable'
google-chrome の提案パッケージ
kdialog: for file dialogs in KDE [インストール済み]
gnome-keyring: for storing passwords in GNOME keyring
kwallet: for storing passwords in KWallet [インストール済み]
gtk3-print-backends: for printing
libunity: for download progress on KDE
ttf-liberation: fix fonts for some PDFs (CRBug #369991) [インストール済み]
xdg-utils [インストール済み]
:: トランザクション後のフックを実行...
(1/2) Updating icon theme caches...
(2/2) Updating the desktop file MIME type cache...
 Kaos > ~ > Downloads > google-chrome > 

日本語入力が出来ない → /usr/lib/gtk-3.0/3.0.0/immodules.cacheが無い
fcitxを有効にする為
sudo gtk-query-immodules-3.0 --update-cache

Arch系のSoftware Updates and managementツールを提供するコマンドはpacman
pacmanに最適化されたGUIツールは GTK系のPamac、QT系のOctopi
「Octopi」を使った方が簡単かも

アップデートの通知があったので行為をしたら google chrome DEV版に更新?された
最新だからと言って google chrome DEV版をリポジトリにアップする必要あるのかな
スタンダードでいいのでは

thinkpad E130での現象
Liveで起動したので grubでブートしてみたら 以下のメッセージが表示して起動できない
ACPI: \_SB_.PCI0.LPCB.EC__.HKEY: BCTG evaluated but flagged as error
thinkpad_acpi: Error probing battery 2
battery: error in extension, unloading: ThinkPad Battery Extension

boot menuに
「modprobe.blacklist=thinkpad_acpi」追加で起動してみたら カーネルパニック?
参考:https://forum.antergos.com/topic/10207/unable-to-start-antergos-after-installation-on-a-thinkpad-13/8
https://bugs.archlinux.org/task/59096

星座を英語で表現


12星座早見表

日本語英語誕生日
牡羊座  (おひつじ座)Aries  (エリース)3/21 - 4/19
牡牛座  (おうし座)Taurus  (トーラス)4/20 - 5/20
双子座  (ふたご座)Gemini  (ジェミナイ)5/21 - 6/21
蟹座  (かに座)Cancer  (キャンサー)6/22 - 7/22
獅子座  (しし座)Leo  (リオ)7/23 - 8/22
乙女座  (おとめ座)Virgo  (ヴァーゴ)8/23 - 9/22
天秤座  (てんびん座)Libra  (リブラ)9/23 - 10/23
蠍座  (さそり座)Scorpio  (スコーピオ)10/24 - 11/22
射手座  (いて座)Sagittarius  (サジタリアス)11/23 - 12/23
山羊座  (やぎ座)Capricorn  (キャプリコーン)12/24 - 1/19
水瓶座  (みずがめ座)Aquarius  (アクエリアス)1/20 - 2/18
魚座  (うお座)Pisces  (パイシース)2/19 - 3/20

星座・占星術に関する英語

占星術 = astrology
星占い = horoscope
黄道十二星座 = zodiac sign, astrological sign, horoscope sign
星座 = constellation
占い = fortune-telling
占い師 = fortune-teller
*一般的な「星座」は "constellation"
星占いに使われる十二星座の「星座」は "zodiac sign" などと呼ばれる

星座の話題で使える英語のフレーズ

① What's your sign?
「あなたの星座は何ですか?」
まずは相手の星座を聞く表現
"sign" だけでも通じますし、もちろん "zodiac sign" と言ってもOKです
② I'm a ◯◯.
「私(の星座)は◯◯です」
自分の星座を教えるフレーズ。◯◯は自分の星座の名前
【使用例】
A: I'm a Sagittarius. What's your sign?
「僕は射手座。君は?」
B: I'm a Pisces.
「私は魚座」
③ What does your zodiac sign mean?
「あなたの星座の意味はなんですか?」

その他の星座・星列・星


Orion/The Hunter(オリオン座)

ギリシャ神話に登場する狩人のオリオンから名付けられた星座
中央に3つ星が並んでいて比較的見やすく有名な星座ですね

Big Dipper/Plough(北斗七星)

おおぐま座(Ursa Major)の一部である北斗七星。アメリカ英語では "Big Dipper"、イギリス英語では "Plough" と呼ばれます
"dipper" は「柄杓」、 "plough" は「(耕作用の)鋤」の意味です

Little Dipper/Ursa Minor/Little Bear(こぐま座)

北斗七星の "Big Dipper" に対して、小さな柄杓の形をしていることから北米では "Little Dipper" として知られています
他には "Ursa Minor" や "Little Bear" の名も持ちます

Cassiopeia(カシオペヤ座)

ギリシャ神話に登場する女性、カッシオペイアから名付けられた星座
Wの形をしていて、比較的見つけやすいと言われています

Summer Triangle(夏の大三角)

はくちょう座のデネブ(Deneb)、わし座のアルタイル(Altair)、こと座のベガ(Vega)が結ばれてできている夏の大三角
ベガとアルタイルは日本では七夕の織姫と彦星
織女星(織姫): the Weaver(the star Vega)
牽牛星(彦星):the Herdsman(the star Altair)
Vega と Altair の間に雲のようなぼんやり白くみえるのが天の川(the Milky Way)

Winter Triangle(冬の大三角)

オリオン座のベテルギウス(Betelgeuse)、おおいぬ座のシリウス(Sirius)、こいぬ座のプロキオン(Procyon)が結ばれてできている冬の大三角
シリウスは地球上から見える最も明るい星

North Star/Pole Star/Polaris(北極星)

「北極」は英語で "North Pole" なので "North Star" や "Pole Star" の名前も納得です
星の名前が "Polaris" で、ポラリスが現在の「北極星」

はじめてのNitrux Linux

2018年9月12日水曜日

Nitrux 1.0.15
HP:https://nxos.org/
KDE Plasma 5, Qt and Nomad Desktop
インストラーは日本語で表示される
インストール先パーティションがGUIDパーティションテーブルの場合
「EFIパーティション」が必要とメッセージが出る
grubがインストールされない

Ubuntu cosmicベースのようなので ubuntuと同様なコマンドでシステム更新

システムの更新
sudo apt-get update && sudo apt-get upgrade

不要なパッケージを消去
sudo apt-get autoremove

日本語入力 fcitx-mozc インストール
sudo apt-get install fcitx-mozc

chromium-browser にflas player追加
sudo apt-get install pepperflashplugin-nonfree
sudo update-pepperflashplugin-nonfree --install

Synapticパッケージマネージャのインストール
sudo apt-get install synaptic apt-xapian-index
sudo update-apt-xapian-index -vf

dolphin をrootで使おうと sudo や kdesu で起動しないので・・・
KDEプロジェクトはセキュリティ上"kdesu"や"kdesudo"を使用して、グラフィカルアプリケーションをrootまたは管理権限で実行しないことを強く推奨しているので " kdesudo" は Kubuntu 18.04 には入っていない
ただし"kdesu"は /usr/lib/x86_64-linux-gnu/libexec/kf5/kdesu にあるので/usr/local/binにパスをすることで利用は可能とのこと
https://askubuntu.com/questions/1044354/kdesu-not-working

add-apt-repositoryでリポジトリの追加で「コマンドがない」と表示された
sudo apt-get install apt-file
sudo apt-file update
sudo apt-file search add-apt-repository
sudo apt-get install software-properties-common

例)Boot-Repair のリポジトリ追加
sudo add-apt-repository ppa:yannubuntu/boot-repair
synapticのリポジトリ追加の項目に「ppa:yannubuntu/boot-repair」を記載してもいい

はじめてのopenSUSE

2018年9月11日火曜日

■日本語ディレクトリを英語ディレクトリに変更
gnome
LANG=C xdg-user-dirs-gtk-update
KDE
LANG=C xdg-user-dirs-update --force

■日本語の入力「IME」の切り替え
(直接入力(半角英数)や全角の切り替え)
その設定は「Mozc」での設定
ibusの設定ではない
■Fcitxのインストール
gnome
sudo zypper install fcitx fcitx-config-gtk3
KDE
sudo zypper install fcitx fcitx-config-kde4
fcitx-mozc
sudo zypper install fcitx-mozc
fcitx-anthy
sudo zypper install fcitx-anthy

■openSUSEでGoogle Chromeを入れる方法
公式サイトに行くと、ちゃんと「rpm」ファイルあります
これをopenSUSEでインストールする際「署名がうんぬんかんぬん…」的な注意書きが出てきます
zypper install パッケージ名
zypper remove パッケージ名

調べると「リポジトリを登録」とやらが必要のようです

1.リポジトリを登録
sudo zypper ar http://dl.google.com/linux/chrome/rpm/stable/x86_64 Google-Chrome
2.リポジトリをリフレッシュ
sudo zypper ref
3.Googleの公開鍵のインポート
wget https://dl.google.com/linux/linux_signing_key.pub
sudo rpm --import linux_signing_key.pub
4.Chromeのインストール
sudo zypper install google-chrome-stable

GUIDパーティションテーブル

2018年9月4日火曜日

GUIDパーティションディスクからの起動
GUIDパーティションテーブル(GPT)の規格はUEFI(EFI)の規格とセットであるが GUIDパーティションテーブルのディスクからの起動にはEFIブートが必須というわけではない
Windowsの場合は無理な場合が多いが LinuxではGPTのディスクからも従来通りの方法(MBRを利用した方法)での起動は可能

GUIDパーティションテーブル
GUIDパーティションテーブルの先頭のセクタ(LBA0)は従来のMBRと同じものになっている
これは互換性や安全性のため
GPTに対応していない機器にディスクを接続してしまったときに ディスクと認識されなかったり さらには初期化のされていないディスクと勘違いされていきなり初期化されたりしないようにするため
従来のMBRパーティションでは MBR内にパーティション情報を格納してたが GPTではここにはパーティションを情報を格納しない
MBRにつづく第2セクタ(LBA1)にあるパーティションテーブルヘッダおよび第3セクタからはじまるパーティションエントリに情報を格納する
MBRパーテョンでは基本パーテョションが4つまでであったり 大きなサイズ(2TB以上)のディスクを扱えなかったりしたのは MBR内のパーティション情報を格納する領域の大きさ的にそれが限界であったため
GPTではこのパーテョション情報を格納する領域は十分に広い
パーティションは128個まで ディスクサイズは8ZiB(ゼビバイト)まで扱える(もちろん 情報が格納できるというだけで実際に使えるかどうかはOSなどの対応による)

MBRブート
MBRブートでのブートローダはMBR内に格納する
MBRのサイズは全体で512B(1セクタ)であるが上記のパーティションテーブル情報分があるのでブートローダに利用できる領域は446Bしか用意されていない
このサイズでは多機能なブートローダは格納できない
そこでGRUBなどの多機能なブートローダでは MBR内には多機能なブートローダの本体を読み出すだけのブートローダをインストールして 本体は別の(もっと大きなサイズのプログラムを置ける)場所から読み込むようになっている

MBRの第1パーテョション
MBRパーティションでは第1パーティションは第1シリンダ(63セクタ)以降から始まるというルールがあった
このルールのためMBRの第2セクタから62セクタまでの61セクタ(約31KB)は必ず空きになっていた(MBR Gap) GRUBではこの領域にブートローダの本体を置き MBR上のブートローダがこれをロードして本体が実行されるようになっている
この領域に本体を置いておく利点は OSの管理外の領域であるために 一度書き込んだデータのディスク上の物理的な位置(セクタ位置)は変化しない
本体のインストール時にそのセクタ位置を記録しておけば それをもとにMBRのブートローダが本体の位置を確定することができる
OSの管理するファイルシステム上に書き込んだ場合 OS側のファイルシステムの調整によって本体のファイルそのものは消去されなくてもディスク上の物理的な位置は変化する可能性がある
そうなった場合 最初に記録したセクタ位置から本体のファイルが移動して読み込めなくなる(MBR上のブートローダはファイルシステムを理解できないので本体の移動に追従できない) パーティションツールによってはMBRパーティションであっても 第2セクタからすぐに第1パーティションを切ることが可能であるが そのようなことをするとGRUBなどのブートローダはうまくインストールできない可能性がある

GUIDパーティションテーブルとMBRブート
GRUB2はGPTでのMBRブートに対応している
ただし GPTでは先頭のMBRの次の第2セクタからパーティション情報の領域がすぐに始まってしまう(MBR Gapがない)のでMBRの場合と同じ場所にGRUBの本体をインストールすることができない
そこでGPTでGRUB2のMBRブートを利用する場合 GRUBの本体をインストールするための専用の領域を確保する必要がある

bios_grub領域
linuxのpartd(GNU Parted)の場合パーティションにbios_grubオプションを設定することによってGRUBの本体をインストールする領域にすることが可能
その他のGPT対応のパーティションニングツールではパーティションタイプをEF02に設定する
GRUB(GRUB2)はGPTディスクへのインストール時にこの領域をみつけるとそこに本体を自動的にインストールする
GRUB2の説明を読むとこの領域は最低31KB必要とかかれているがこれはMBR Gapが最低31KBだったことに対応している
GRUB2はこのbios_grub領域がない場合でも /bootディレクトリ以下に本体(ファイル)をインストールして起動するようにすることができる
この場合 そのファイルのディスク上の物理的なセクタ位置をインストール時に記録して その情報をもとにMBRのブートローダが本体の位置を特定して読み込む
ただし 何からの原因で/bootのファイルシステムが調整されてファイルの物理的なセクタ位置が変更されてしまうと起動できなくなる
bios_grub領域を利用することを推奨

余談
MBRはなぜ 2TiB以上のパーティションを作成できないのか?
答えは、MDRで定義されているパーティションサイズのエリアが 4 byte しかないからです
パーティションのサイズは、セクター(1セクター = 512 byte) で保存されます
つまり、4 byte = 32 bit ですから、
2^32 x 512 = 2^30 x 2^2 x 512 = 2,048 GiB = 2 TiB
※ GiB = 2^30
32bit OS では、最大メモリアクセス可能なのは、4GiB までです

32bit OS とは、そもそも 32bit毎に処理を行うことで、最大容量が32bitということでもあります
つまり、
2^32 = 2^30 x 2^2 = 4 GiB
となり、4GiBが最大となる
バイトの単位には、KBとKiBのように2つの単位表記があります
これは、 情報通信分野では、KB(キロバイト) = 2^10、 MB(メガバイト) = 2^20 などと 2のべき乗(累乗)で慣用的に用いられますが、 SI基準(SI接頭辞)において、KB(キロバイト) = 10^3、 MB(メガバイト) = 10^6 などと 10のべき乗(累乗)で表すため、非常に混乱をきたすころがあります
(正しくは後者であり、あくまで前者は慣用的に使われているというだけ) その混乱を避けるために、2のべき乗(累乗)で表した 2進接頭辞 で各単位を表したのが、KiB(キビバイト)であり、MiB(メビバイト)などです(KiBは、kibibyte と表され、kilo binary byte の略)
以下は、その単位の一覧になります
SI接頭辞 2進接頭辞
単位名(記号) SI基準値 慣用値(2進接頭辞の値) 単位名(記号) SIとの倍率慣用値÷SI基準値
キロバイト (kB)103210キビバイト (KiB)1.02
メガバイト (MB)106220メビバイト (MiB)1.05
ギガバイト (GB)109230ギビバイト (GiB)1.07
テラバイト (TB)1012240テビバイト (TiB)1.10
ペタバイト (PB)1015250ペビバイト (PiB)1.13
エクサバイト (EB)1018260エクスビバイト (EiB)1.15
ゼタバイト (ZB)1021270ゼビバイト (ZiB)1.18
ヨタバイト (YB)1024280ヨビバイト (YiB)1.21

Linuxコマンドを連続して使う

2018年8月13日月曜日

種類
- ; (セミコロン)
- &(アンパサント)
- &&(アンパサントアンパサント)
- |(パイプ)
- ||(パイプパイプ)

使用例
コマンド1が終了したらコマンド2を実行する(実行結果に関わらず)
コマンド1が異常終了しても、コマンド2は実行されます
使い方
コマンド1 ; コマンド2 
使用例1. 5分後にdateコマンドを実行する
# sleep 5m ; date

コマンド1を実行しつつコマンド2も実行する
バックグラウンドでコマンド1を実行しつつ、コマンド2も実行できます
使い方
コマンド1 & コマンド2
使用例1. /home/egawa/egawa.shを実行しログを出力しつつ、viでegawa.txtを編集する
# sh /home/egawa/egawa.sh >> /var/log/egawa.log & vi /home/egawa/egawa.txt

コマンド1が正常終了したらコマンド2を実行する
コマンド1が正常終了したときのみ、コマンド2が実行されます
使い方
コマンド1 && コマンド2
使用例1. /home/egawaにディレクトリ移動ができたら、egawa.txtを作成する
# cd /home/egawa/ && touch egawa.txt
使用例2. ダウンロードしてきたtar.gzを解凍後、ディレクトリへ移動
# tar zxf xxx-2.x.tar.gz && cd xxx-2.x
使用例3. 何かのパッケージをソースからインストールする
# ./configure && make && make install

コマンド1の結果をコマンド2に渡して実行
コマンド1の結果をコマンド2へ渡して結果を出力します
使い方
コマンド1 | コマンド2
使用例1. ps auxで実行中のプロセスを出力し(ターミナルには出力されない)、その中からキーワードhttpdにマッチする行を出力する
# ps aux | grep httpd

コマンド1が異常終了したらコマンド2が実行される
コマンド1が異常終了したときのみ、コマンド2が実行されます
使い方
コマンド1 || コマンド2
使用例1. /home/egawa/abcにディレクトリ移動ができなかったら、/home/egawa/abcディレクトリを作成する
(使用例だと、ディレクトリがなかった場合エラーが出力されるが、その結果としてディレクトリが作成される)
# cd /home/egawa/abc || mkdir /home/egawa/abc

パーティション テーブル形式

2018年8月9日木曜日

MBR(MS-DOS Master Boot Record) は、10M バイト HDD 時代の IBM PC 用に 1980 年代初期に誕生しました
MBR は、記憶装置の先頭 512 バイトに位置し、ブートローダーとパーティション テーブルを持っています
ブートローダーは 446 バイトを占め、パーティション テーブルは 64 バイトを使用します
最後の 2 バイトは、ブート シグネチャを格納しています
MBR は最大 4 つの基本パーティションを保持し、各基本パーティションは 1 つの拡張パーティションを保持できます
各拡張パーティションは、複数の論理パーティションに分割されています
Linux は、理屈としては無限個の論理パーティションを管理できます
古い Linux では、カーネルが扱えるデバイス数に制限があったため、63 個の IDE パーティションと 15 個の SCSI パーティションに制限されていました
現在は、Udev がデバイス番号を動的に管理しているため、そのような制限はありません
MBR は、小さく柔軟性に欠けるため、その制限を避けるさまざまなワークアラウンドが考えられました
Logical Block Addressing (LBA) もそのひとつで、もともとのシリンダー、ヘッド、セクター (CHS) を使用したアドレッシングの制限を越えるために考え出されました
昔のハードディスクはブロック サイズが 512 バイトであるため、パーティション サイズが 2T バイトに制限されていました
子パーティション サイズの制限を 16T バイトに拡張するため、セクター サイズを 4096 バイトに拡張する所謂ハックがサポートされたのです


GPT(GUID Partition Table) は Unified Extensible Firmware Interface (UEFI) 仕様の一部ですが、Linux を使う場合には、GPT パーティションからブートするために EFI BIOS は不要で、旧来の BIOS とともに使用できます
Mac OS X と Windows はさまざまな制限がある必要であれば、Microsoft FAQ か、アップルの Secrets of the GPT を参照すると良いでしょう
GPT には、基本パーティションと論理パーティションの区別はなく、1 種類のパーティションがあるだけです
Gparted の出力を見て下さい Gparted でハードディスクをフォーマットするときに、図 2 のように gpt オプションを指定すると、GPT 形式が使用されます
GPT は MBR と比較して、以下の点で進歩しています
64 ビット ディスク ポインター採用により、最大 264セクターを管理でき、512 バイト セクターのハードディスクの場合は 8Zi バイト、4096 バイト セクターの場合は 8 倍となります
標準で最大 128 個のパーティションをサポートし、オペレーティング システムがそれ以上のパーティションをサポートしていても問題ありません
CHS や、基本、拡張、論理パーティションのようなワークアラウンドは不要です
Windows の場合、柔軟性に欠け、基本パーティションを必要としたため、よく問題となりました
GPT は、パーティション テーブルのコピーをディスクの先頭と最終セクタに格納しておくため、破壊等に強くなっています
GPT は、自分自身とパーティション テーブルの cyclic redundancy check (CRC) チェックサムを計算します
ディスクとパーティションにユニークな ID を付加します

GPT形式でHDDをフォマット
EFIシステムパーティション(ESP)
100MBをFAT32形式でフォーマット

locale-archive

2018年8月3日金曜日

Porteus-v4.0での出来事
locales-all パッケージから日本のロケールを抜きだし
/usr/lib/locale/ja_JP.utf8
に配置
GTKアプリのインターフェイス(メニュー)が日本語にならない終了の際下記のメッセージを吐く
(process:1909): Gtk-WARNING **: Locale not supported by C library.
Using the fallback 'C' locale.

下記コマンドで locale-archiveを作成・・・ locales パッケージ追加("Slackware"系不完全の為)
locale-gen ja_JP.UTF-8
/usr/lib/locale/locale-archive

日本語表示に成った

Porteusの日本語化のおぼえ書きメモ
ロケールの設定
/etc/profile.d/lang.sh

export LANG=ja_JP.UTF-8
#export LC_COLLATE=C

GUI環境で日本語を表示したい場合はLANG変数に「ja_JP.UTF-8」もしくは「ja_JP.utf8」を表記
LANG変数に「LANG=ja_JP.UTF-8 」を適応すると大概のアプリケーションのインターフェイスは日本語表記になる
locales-all パッケージには「ja_JP.utf8」のみ  ん〜

キーボードの設定
x11-xkb-utilsパッケージを追加
/etc/xdg/autostart/setxkbmap.desktop
[Desktop Entry]
Name=setxkbmap
Exec=setxkbmap -model jp106 -layout jp
Icon=
Terminal=false
Type=Application
StartupNotify=true
NoDisplay=true
Categories=Settings;

別な方法
/etc/X11/xorg.conf.d/ディレクトリにはユーザー定義のXの設定ファイルが置かれるので
例えば、/etc/X11/xorg.conf.d/10-keyboard.confを作成
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "jp"
Option "XkbModel" "jp106"
Option "XkbOptions" "grp:alt_shift_toggle"
EndSection

現在のロケール設定を確認
# locale
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=

システムにインストールされているロケールの一覧
# locale -a
C
POSIX
ja_JP.utf8

環境変数意味
LC_CTYPE 文字の分類および大文字/小文字の変換
LC_NUMERIC 小数区切り文字 (または基数文字)、千の区切り文字、およびグループ化を指定します
LC_TIME 月の名前、曜日、一般的な完全表示や短縮表示など、日付や時刻の書式を指定します
LC_MONETARY ロケールの通貨記号、千の区切り文字、符号の位置、小数点以下の桁数など、通貨の書式を指定します
LC_COLLATE ロケールの照合順序および正規表現の定義を指定します
LC_MESSAGES ロケールのローカライズメッセージの記述言語、および肯定と否定の応答 (yes と no の文字列と表現) を指定します

パピー系をgrub2で起動する

2018年7月8日日曜日

Ubuntuやlinux mintの場合
OS が1つしかインストールされていないと Grub2 はメニューを表示せずにその唯一の OS を起動する
そこで、設定ファイル /etc/default/grub を編集し Grub2 のメニューが表示されるように変更する

/etc/default/grub を以下のように編集し、update-grub コマンドを実行して /boot/grub/grub.cfg を更新する

/etc/default/grub を下記に変更
...
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true

#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=false
...

'GRUB_TIMEOUT'
メニューが表示されてから数秒後にデフォルトのエントリを起動
デフォルトは '5'
メニューを表示せずにすぐに起動するには '0'
無期限に待機するには '-1'

'GRUB_TIMEOUT_STYLE'
このオプションが設定されていないか 'menu'に設定されていると、GRUBはメニューを表示し、デフォルトエントリを起動する前に 'GRUB_TIMEOUT'によって設定されたタイムアウトが終了するのを待ちます。キーを押すとタイムアウトが中断されます
このオプションが 'countdown'または 'hidden'に設定されている場合、メニューを表示する前に、GRUBは 'GRUB_TIMEOUT'によって設定されたタイムアウトが満了するのを待ちます。
その間にESCを押すと、メニューが表示され、入力待ちになります。メニュー項目に関連付けられたホットキーが押されると、関連するメニュー項目が直ちに起動します
これらのいずれかが起こる前にタイムアウトが経過すると、デフォルトのエントリが起動します。 'countdown'の場合は、残りの時間を1行で表示します
'hidden'に設定されている場合 'Shift キー'でメニューが表示される

パピー系のメニューをエントリーするには
/etc/grub.d/40_customに以下の記述を追加
menuentry 'tahrpup-e16'{
set root='hd0,msdos5'
search --no-floppy --fs-uuid --set=root b825cb94-10da-4220-a666-5174979841e9
linux /tahrpup-e16/vmlinuz psubdir=tahrpup-e16
initrd /tahrpup-e16/initrd.gz
}
EOF

$ sudo update-grub
再起動すると、Grub2 の選択メニューでパピー系が選択できるようになる

GRUB2 EFIを再インストールする方法
壊れたシステムにchrootします(ubuntu grub2のヘルプに似ていますが、efiの特異性があります)

sudo mount /dev/sda2 /mnt #sda2 is the root partition
sudo mount /dev/sda1 /mnt/boot/efi #sda1 is the efi partition for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
sudo cp /etc/resolv.conf /mnt/etc/ #makes the network available after chrooting modprobe efivars # make sure this is loaded
sudo chroot /mnt
Linuxディストリビューションに応じて

Ubuntu / Debian:
apt-get install --reinstall grub-efi-amd64
または、代わりに:
apt-get install --reinstall grub-efi
update-grub

64bitの場合
EFIシステムパーティション作成
EFIシステムパーティション(以下ESP)の作成は、「GParted」
ESPを作成するHDDのパーティションテーブルの作成
「gpt」

パーティションの作成
サイズ:512MB
名称:ESP
ファイルシステム:fat32
ラベル:ESP

「Grub Customizer」
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

「install Boot-Repair in Ubuntu」
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

「install UNetbootin in Ubuntu」
sudo add-apt-repository ppa:gezakovacs/ppa
sudo apt-get update
sudo apt-get install unetbootin

Google日本語入力Mozcのビルド

2018年3月2日金曜日

https://github.com/google/mozc
1)依存パッケージ
【インプットメソッド】
Mozcはibusやscimなどのインプットメソッドフレームワーク(プラットホーム)上で動作する日本語変換エンジンなので、インストールするためにはいずれかをインストールしておく必要がある
IBus(ibus)    SCIM(scim)     Fcitx(fcitx)
【コンパイラ・インタプリタ】
gcc/g++(g++)    C/C++コンパイラ
Python(python)    プログラミング言語Pythonのインタプリタ
【ライブラリ】
D-Busのライブラリ(libdbus-1-dev)
シンプルなプロセス間メッセージングシステム (開発用ヘッダ)
D-Busは複数のプログラム同士で情報をやり取りするためのプログラム
Glib(libglib2.0-dev)     glibライブラリ(v2.0)
cURL(libcurl4-openssl-dev)
Zlib(zlib1g-dev)    Zilb圧縮ライブラリ
OpenSSL(libssl-dev)
ProtocolBuffers&GoogleC++TestingFramWork(protobuf-compiler,libprotobuf-dev,libgtest-dev)
Googleの配布するソフトウェアを動作させるときに必要なライブラリ
zinnia(libzinnia-dev)     オンライン手書き文字認識エンジン
Qt4(libqt4-dev)     Qt4ライブラリ
GYP (Generate Your Projects))     自動ビルドツール
IBusのライブラリ(libibus-dev)    IBusのライブラリ
SCIMのライブラリ(libscim-dev)    scimのライブラリ
Fcitxのライブラリ(fcitx-libs-dev)    Fcitxのライブラリ

2)ビルド
Ubuntu12.04のMozcのソースパッケージのページから"mozc_1.3.975.102.orig.tar.gz"をダウンロードして展開(ここでは~/に展開したとする)
root環境で動作するようにする為
"~/mozc-1.3.975.102/base/run_level.cc"の276行目から303行目までを削除

// Linux or Mac
if (type == SERVER || type == RENDERER) {
if (::geteuid() == 0) {
// This process is started by root, or the executable is setuid to root.

// TODO(yusukes): It would be better to add 'SAFE' run-level which
// prohibits all mutable operations to local resources and return the
// level after calling chroot("/somewhere/safe"), setgid("nogroup"),
// and setuid("nobody") here. This is because many novice Linux users
// tend to login to their desktop as root.

return RunLevel::DENY;
}
if (::getuid() == 0) {
// The executable is setuided to non-root and is started by root user?
// This is unexpected. Returns DENY.
return RunLevel::DENY;
}
return RunLevel::NORMAL;
}
// type is 'CLIENT'
if (::geteuid() == 0 || ::getuid() == 0) {
// When mozc.so is loaded into a privileged process, deny clients to use
// dictionary_tool and config_dialog.
return RunLevel::DENY;

削除後の275行目から279行目までが以下のようになっていればいい
275 #else
276
277 return RunLevel::NORMAL;
278
279 #endif

以下のコマンドを実行、最後がDoneで終わっていることを確認
# cd ~/mozc-1.3.975.102
# python build_mozc.py gyp
次のコマンドを実行、エラーが出ず終わっていることを確認
# python build_mozc.py build_tools -c Release
次のコマンドを実行、エラーが出ず終わっていることを確認
# python build_mozc.py build -c Release unix/scim/scim.gyp:scim_mozc unix/scim/scim.gyp:scim_mozc_setup server/server.gyp:mozc_server gui/gui.gyp:mozc_tool
(※上記の'scim'はインプットメソッドフレームワークに置き換え)
次のコマンドを実行でファイルを出力
# cp out_linux/Release/lib.target/libscim_mozc.so /usr/lib/scim-1.0/1.4.0/IMEngine/mozc.so
# cp out_linux/Release/lib.target/libscim_mozc_setup.so /usr/lib/scim-1.0/1.4.0/SetupUI/mozc-setup.so
# mkdir /usr/lib/mozc/
# cp out_linux/Release/mozc_server /usr/lib/mozc
# cp out_linux/Release/mozc_tool /usr/lib/mozc
# rename ui scim-mozc data/images/unix/*
# cp data/images/unix/* /usr/share/scim/icons/

正規表現でエスケープが必要な文字一覧表

2018年1月24日水曜日

エスケープが必要な文字の前に  \  をつける
エスケープ前 エスケープ後 注  意  点
\ \\ エスケープを行う文字そのものなので、\ だけの記述はできません    
\ にマッチングさせたい場合は \\ と記述
* \*
+ \+
. \.
? \?
{ } \{\} 出現回数指定文字なのでエスケープが必要
( ) \(\) エスケープしないと後方参照が作成されるまたはグループ化される
[ ] \[\] 直前文字の出現回数指定文字なのでエスケープが必要
^ \^ 行頭を指定することになる
$ \$ 行末を指定することになる
Perlの場合は、変数の先頭文字である
- \- [ ]の中に書く場合のみエスケープが必要
| \|
/ \/ Perlでは / が正規表現の指定になるのでエスケープが必要
言語によっては、" がエスケープ必要となる

正規表現

はじめに
正規表現(Regular Expression)とは、文字列のパターンを表現する表記法です
主に文字列の検索/置換を行なうときに利用されます
正規表現は、通常の文字とメタキャラクタと呼ばれる意味を持った特別な記号を組み合わせて表記します
メタキャラクタとは、「^」という文字は「行の先頭」、「$」という文字は「行の末尾」、「.」は「任意の1文字」、「+」という文字は「直前の要素の1回以上の繰り返し」を意味します
正規表現を利用すると、直接文字列を指定せずにあるパターンをしていするため、表記の揺れを吸収して検索したり置換を行ったりすることが出来ます

メタキャラクタ
一般的に使われるメタキャラクタ
メタキャラ
意    味
.
任意の一文字を表します
 c..l -> cool, cowl, cull などがマッチ
*
前にある文字の0回以上を表します
ab* -> a
ab
abb abbbbbbbbbbbbb などがマッチ
+
前にある文字の1回以上を表します
ab+ -> ab
abb abbbbbbbbbbbbb などがマッチ
?
前にある文字の0, 1回を表します
ab? -> a
ab がマッチ
^
指定した文字から始まる
  ^ap   -> ap で始まる文字列がマッチ
$
指定した文字で終わる
  le$   -> le で終わる文字列がマッチ
[ ]
指定した複数の文字の中のいずれかを表します
[abc] -> a, b, c がマッチ 文字列の場合は、(be|is|was|been) という具合に ( ) | を使用する 連続したキャラクタ群を指定する場合、先頭と終端を - で繋いだ形で指定できます
 [C-G] -> [CDEFG]と同じ はじめに^を指定した場合、キャラクタ群の補集合となります
 [^F-K] -> F, G, H, I, J, K 以外の文字
{ }
前にある文字の指定した回を表します
ab{3} -> abbb にマッチ
ab{3,} -> abbb, abbbb, abbbbbbbb など 3回以上繰り返されたものにマッチ ab{3,5} -> abbb, abbbb, abbbbb にマッチ
( )
グループ化
1. 特殊変数 $1 の利用 $_ = "data=hello world"; /(.+)=(.+)/ ; print "Name= $1, Value= $2 \n";
( ) でくくられた文字列が特殊変数に割り当てられるので
Name= data, Value= hello world という結果が返ります

2. 特殊変数 \1 の利用 /(..)\1/
( ) でくくられた文字列が特殊変数に割り当てられるので
abab, cdcd など2文字からなる文字列が2回以上続いていればマッチ
\w
英数文字またはアンダーバー
[a-zA-Z0-9_]と同等
\W \w 以外の文字
\d 数値文字
[0-9]と同等
\D 数値以外の文字
[^0-9]と同等
\s 空白文字
\S 空白以外の文字
\b ワードの先頭、あるいは末尾にマッチ
\bnoon\b は、noonにはマッチするが afternoon にはマッチしない
\B ワード内の文字列にマッチ
\Bmile\B は、Smiles にはマッチするが mile にはマッチしない
\A 文字列の最初にマッチ
\Z 文字列の最後にマッチ
\t タブ
\n 改行
\r キャリッジリターン

マッチパターン演算子
演算子
意    味
g
繰り返してマッチ
i
大文字、小文字の区別をしない
s
単一行として処理 (^ や $ は \n を無視)
m
複数行として処理 (^ は行先頭、$ は行末尾)
o
パターンを一度だけ展開
x
空白を無視、# をコメント処理

使えそうな表現
表    現
意    味
[ぁ-んー-]
ひらがなにマッチ
[ァ-ヶー-]
全角カタカナにマッチ
[0-9]{4}
4桁の数字にマッチ
[0-9]{1,3}
1から3桁の数字にマッチ
\"[^\"]*\"
引用符に囲まれた文字列
(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})
IPアドレス
(?=.*foo)(?=.*bar)
foo, bar を含むものにマッチ
(?:(?!foo).)*
foo を含まないものにマッチ
(?:\G|>)[^<]*?)
HTMLタグの外側 [Perl]
s/((?:\G|>)[^<]*?)foo/$1bar/g
HTMLタグの外にある foo を bar に変換 [perl]
(\S+)://([^:/]+)(:(\d+))?(/[^#\s]*)(#(\S+))?
URL
$ascii = '[\x00-\x7F]';
$twoBytes = '(?:[\x8E\xA1-\xFE][\xA1-\xFE])';
$threeBytes = '(?:\x8F[\xA1-\xFE][\xA1-\xFE])';
$character = "(?:$ascii|$twoBytes|$threeBytes)";
EUC-JP文字

Copyright © 2010 休眠 | Free Blogger Templates by Splashy Templates | Layout by Atomic Website Templates