2014年11月30日日曜日

pacmanの使い方 | Arch Linux, pacman, オプション, パッケージ管理

Arch Linuxのpacmanでパッケージ管理
Arch Linuxのパッケージ管理はpacmanで行う。他のLinuxディストリビューションでは使われていない独自のアプリケーションなので、オプションなど使い方を覚えないといけない。ただし、よく使うオプションさえ覚えてしまえば、使い方は難しくない。パッケージ管理に便利なオプションが用意されているので、pacmanを使えばパッケージ管理に必要な情報を知ることができ、pacmanからほぼ一括でパッケージ管理できるようになっている。

pacmanの設定ファイル
pacmanの主な設定ファイル、ログファイルは以下のとおり。
  • /etc/makepkg.conf
  • /etc/pacman.conf
  • /etc/pacman.d/mirrorlist
  • /var/log/pacman.log

2014年11月23日日曜日

Arch Linuxで時刻同期 | NTP, systemd-timesyncd

Arch Linuxは、デフォルトで時刻合わせの機能がインストールされていないので、時刻合わせの設定が必要。時刻合わせをするには、ntpを使う方法とsystemd-timesyncdを使う方法がある。時刻合わせにおいて、ntpはホスト側にもクライアント側にもなれる。systemd-timesyncdはクライアント側のみ。

自分は、ホスト側になることはないので、設定が簡単なsystemd-timesyncdを使っている。サーバー用途でなく、普段使いのPCであればsystemd-timesyncdがいいと思う。ただ、timesyncdはまだ歴史が浅いと思うので、今後ゴタゴタがあるかもしれないのが気になるところ。

NTPを使う場合
pacmanからntpパッケージをインストールする。
# pacman -S ntp

Arch Linuxでプリンタが認識されなくなった (Can't see printer on Arch Linux)

先日のアップデートで、Arch Linuxでプリンタが認識されなくなった。調べてみたら、cups (1.7.5-1 -> 2.0.0-2) 及び、cups-filters (1.0.61-1 -> 1.0.61-2) のアップデートが原因。確かに、
[2014-10-31 21:00] [ALPM-SCRIPTLET] > systemd unit names have been renamed
[2014-10-31 21:00] [ALPM-SCRIPTLET] > you should systemctl stop and disable cups.service and
[2014-10-31 21:00] [ALPM-SCRIPTLET] > systemctl daemon-reload, start and enable org.cups.cupsd.service

というlogが残っていた。以下、プリンタを認識できるようにするための設定。

自分の場合、意味なかったがcups.serviceの停止をする。
# systemctl stop cups.service

Failed to stop cups.service: Unit cups.service not loaded.

cups.serviceはもう使われないので、無効にする。
# systemctl disable cups.service

Removed symlink /etc/systemd/system/printer.target.wants/cups.service.

cups.service代替のorg.cups.cupsd.serviceを有効にする。
# systemctl daemon-reload
# systemctl start org.cups.cupsd.service
# systemctl enable org.cups.cupsd.service

Created symlink from /etc/systemd/system/printer.target.wants/org.cups.cupsd.service to /usr/lib/systemd/system/org.cups.cupsd.service.
Created symlink from /etc/systemd/system/sockets.target.wants/org.cups.cupsd.socket to /usr/lib/systemd/system/org.cups.cupsd.socket.
Created symlink from /etc/systemd/system/multi-user.target.wants/org.cups.cupsd.path to /usr/lib/systemd/system/org.cups.cupsd.path.

これで、プリンタがGNOME Settingsから認識されるようになった。




参考:
[1]Printing problem with ArchLinux and Gnome 3.14 and cups service

Arch LinuxのChromiumが文字化けする (Chromium displays garbled characters.)

Arch Linuxのデフォルトのフォント設定のままだと、Chromiumが一部文字化けするらしい。個人的には、Chromiumをインストールする前にフォントの設定をしていたため気づかなかった。いくつかのブログで、自分が使っていたフォント設定がChromiumの文字化けを直してくれると書かれていたので、紹介しておく。
自分で検証してみたが、フォントの設定を無効にしてもChromiumは文字化けしなかった。なので、ほんとに効くのか不明。もし直ったらいいな、程度で参考にして下さい。

/etc/fonts/conf.avail/71-no-embedded-bitmaps.confを作り、以下を記入。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <edit mode="assign" name="embeddedbitmap">
      <bool>false</bool>
    </edit>
    <edit mode="assign" name="hintstyle">
       <const>hintnone</const>
    </edit>
  </match>
</fontconfig>

次に、/etc/fonts/conf.d/にリンクを貼る。
# ln -s /etc/fonts/conf.avail/71-no-embedded-bitmaps.conf /etc/fonts/conf.d/71-no-embedded-bitmaps.conf

もともと、この設定は日本語表示をきれいにするために行っていたので、なぜChromiumuの文字化けが直るのか不明。bitmapの埋め込みを無効にしているからなのだろうか。

ひとつ確かなのは、fontconfig 2.10.1のバージョンアップで突然文字化けが起こるようになったなら、フォントの設定を~/.font.confに記入していることが原因である。fontconfig 2.10.1のバージョンから
~/.fonts.conf
~/.fonts.conf.d
~/.fontconfig/*.cache-*
は使われなくなった。代わりに使えるのは、
$XDG_CONFIG_HOME/fontconfig/fonts.conf
$XDG_CONFIG_HOME/fontconfig/conf.d/NN-name.conf
$XDG_CACHE_HOME/fontconfig/*.cache-*
というディレクトリ。ちなみに、$XDG_CONFIG_HOMEは自分でパスを指定していない限り、$HOME/.configとなる。

したがって、フォントの設定ファイルのパスを~/.font.confから~/.config/fontconfig/font.confに変更すれば直る場合もあるはず。


参考:
[1]Arch Linuxで日本語フォントをきれいに表示 | フォントのインストール・見やすく表示する設定

2014年11月3日月曜日

Arch Linuxが起動しない (can't boot Arch Linux)

いつも通りpacman -Syuでアップデートし、OSを再起動したらArch Linuxが起動しなくなった。症状としては、GRUBが起動した後、読み込むカーネルを選択するが、以下のメッセージが表示されてOSが起動されなくなった。
warning: /lib/modules/3.17.1-1-ARCH/modules.devname not found -- ignoring
ERROR: Unable to find root device 'UUID of root device'.
You are being dropped to a recovery shell
        Type 'exit' to try continue booting
sh: can't access tty; job control turned off
[rootfs /]#

カーネルのダウングレードとか試したが、結局udev (systemd)とmkinitcpioの再インストールとカーネルのイメージを作りなおすことで解決。Arch Linuxには、よくある症状っぽい。以下、修復手順。

Nautilusのウィンドウが開かない (Nautilus doesn't open a new window when clicked)

以前から、GNOMEのアクティビティ画面(Activities Overview)のランチャー(Dashと呼ぶらしい)のお気に入りに登録したNautilusのアイコンをクリックしてもウィンドウが立ち上がらなくなった。おそらくこれもGNOME 3.14のアップデートが原因なきがする。現在、デスクトップ上のショートカットをクリックすることでウィンドウを開いている。以前は、Nautilusが起動した状態でログインしてしまうバグがあった。[1]この時と同様で、gnome-tweak-toolからデスクトップアイコンを非表示にすると直るらしい。

この手の問題は、デスクトップアイコンの表示を有効にすることが原因っぽい。デスクトップアイコンを表示するために、ログイン時にNautilusを-nオプションで、ウィンドウ非表示の状態で起動しようとする。-nが付いているので、Nautilusウィンドウが表示されない?または、起動しようとしてもプロセスが作られない?psコマンドで確認してみると、Nautilus -nのプロセスがある。Nautilusを再起動すると正常な動作に戻る。ただし、Nautilusのプロセスがない状態だとデスクトップアイコンは表示されない。
$ nautilus -q
$ nautilus (または、DashからNautilusアイコンをクリック)

ここでも同じバグによるクレームが出ている。[2]GNOME 3.14のアップデートで起きたバグであるとされている。次のアップデートで直してくれるといいな。


参考:
[1]Nautilusが起動した状態でログインしてしまう
[2]Nautilus doesn't open a new window when clicked

GNOME 3.14でキーボードレイアウトがjpにならない (Keyboard layout not setting correctly after gnome 3.14 update)

*2015/01/10追記ここから
/usr/share/ibus/component/mozc.xmlの設定を変更することで、きれいに直ることが分かった。詳細は、以下のページ参照。
続・GNOME 3.14でキーボードレイアウトがjpにならない
*2015/01/10追記ここまで

結構前になるが、先日のアップデート後、キーボードレイアウトがusになって起動されるようになってしまった。キーボードレイアウトは自分の環境では/etc/X11/xorg.conf.d/10-keyboard.confで設定している。再度確認。
$ less /etc/X11/xorg.conf.d/10-keyboard.conf

Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "XkbModel" "hhk"
        Option "XkbLayout" "jp"
EndSection


Option "XkbLayout" "jp"の設定があるので、X11の設定までは問題ない。
さらに、IBusによってキーボードレイアウトが書き換えない設定が、有効になっているかを確認する。アクティビティから「IBusの設定」を起動して、詳細のタブに移動して、「システムのキーボードレイアウトを使用する」にチェックが入っているか確認。