トップ 最新 追記

Days of Speed

過ぎゆく日々を書こう。忘れっぽい未来の自分のために


2021-06-05

_ LibreOfficeでユーザープロファイルにフォントをインストールできるようになっていた(Unix系だけ)

ここんとこ、ずーっとLibreOfficeのソースを見て直せるところはないか調べてますが、OS間で利用するフォントを共通化するためにユーザー設定を保存するユーザープロファイルにフォントをインストールできないかソースコードをおっかけてました。

そしてら、ソースの中にこういう部分がありました。

           if( !aUserPath.isEmpty() )
           {
               aPathBuffer.append( aUserPath );
               aPathBuffer.append( "/user/fonts" );
           }

もしかして、これはユーザープロファイルのパスを調べて、(ユーザープロファイルの場所)/user/fontsがあればパスを追加する?てことをやってないかい?

そうと分かれば、ユーザープロファイルを作ってフォントを置いて調べてみると…ビンゴ!

えー! いつのまにー!

ということで、~/.config/libreoffice/4/user/fonts(Linuxの場合)にフォントを置いても認識されるようになったので、フォントをインストールする拡張機能も作れますね。

追記

Windows版も調べましたが、Windows版は追加されていないようです。macOS版も無いようで、これはLinux版だけのようでした。


2021-06-08

_ LibreOfficeをビルドするとき、いい感じでビルドオプションを設定してくれるオプションが追加されてた

LibreOfficeのビルドで難しいところは、適切なビルドオプションを設定しないと途中で止まってしまうことだと思います。長時間ビルドして挙句に失敗して止まっていたら泣きますよ。ホントに。

そういうことで初心者が「適切な」オプションを設定するのは難しいのですが、ビルドオプションを設定するautogen.shのオプションを見ていると環境に合わせて、いい感じに設定してくれるオプションが追加されていることに気づきました。

  --with-distro  use a config from distro-configs/
                 the name needs to be passed without extension
  --best-effort  don't fail on un-known configure with/enable options

distro-configsディレクトリに各プラットフォームの設定があるので、Linuxの場合だとビルドオプションを指定するファイルautogen.inputに、

 --with-distro LibreOfficeLinux
 --best-effort

と、この2つを書いてビルドすれば、LibreOffice開発初心者の難関、ビルドも一発でクリアできますね。


2021-06-23

_ Flatpakアプリをダウングレードしてアップデートされないようにピン止めする

スクリーンショットを撮るShutterが使えなくなってKsnipに移行していたけれど、新バージョンで文字入力ができなくなったので以前のバージョンに戻しました。

debパッケージのピン止めは情報がありますが、Flatpakアプリのダウングレードとピン止めは情報がないのでメモしておきます。

最初に以前のバージョンのハッシュ値を調べます。

 $ flatpak --system remote-info --log flathub org.ksnip.ksnip

         ID: org.ksnip.ksnip
        Ref: app/org.ksnip.ksnip/x86_64/stable
       Arch: x86_64
     Branch: x86_64
 Collection: org.flathub.Stable
   Download: 1.1 MB
  Installed: 3.5 MB
    Runtime: org.kde.Platform/x86_64/5.15
        Sdk: org.kde.Sdk/x86_64/5.15

     Commit: 8d302de86d15141697a87f8a10a8ea0e667ceee468489348028a93c5ba98b7cb
     Parent: 515f65c35ea86dceb1d14e9f8099ac9ef9dad15cb9e07ec1750acdae34f9ecd1
    Subject: Update version 1.9.0 (fc71031f)
       Date: 2021-05-24 17:16:14 +0000
    History:

     Commit: 515f65c35ea86dceb1d14e9f8099ac9ef9dad15cb9e07ec1750acdae34f9ecd1
    Subject: Update version 1.8.2 (6f60201f)
       Date: 2021-03-23 06:49:05 +0000

Commitの数字がハッシュ値なので、515f65で始まる数字をコピーします。そして、コピーした数字をcommitに指定してupdateします。

 $ sudo flatpak --system update --commit=515f65c35ea86dceb1d14e9f8099ac9ef9dad15cb9e07ec1750acdae34f9ecd1 org.ksnip.ksnip

以前のバージョンがインストールされたら、maskして自動更新されないようにします。

 $ flatpak --system mask org.ksnip.ksnip

アップデートをインストールする場合は、手動でインストールできます。また、maskに--removeオプションを指定して実行すれば解除できます。

追記:バージョンアップが原因ではなかったです。

きっかけの日本語入力ができなかった問題ですが、環境変数を追加していなかっただけでした。追加したら入力できるようになりました。Flatpakの環境変数についてはこちらに書いてます。

また、書きますが、GUIから設定が変更できるFlatseal使うと簡単に追加できますよ。


2021-06-29

_ 仮想化ツールをVirtualBoxからlibvirt/virt-manager/kvmに移行しました

といっても1ヶ月ぐらい前の話です。

VirtualBoxは、LinuxやWindows仮想マシンを動かすだけなら悪くありませんが長く使っているといろいろ気になってきます。

たとえば、ディスクやネットワークの遅さ(virtioを使うと改善されるけど、そうすると挙動の問題がある)やカーネルのバージョンを上げたときのカーネルモジュールの心配。ほかには、VirtualBoxとKVMを同時に利用できないなど、いろいろあります。それで移行したいと考えていましたが、ある日、思い切って移行しました。

(2021/09/16追記: virt-managerのインストールで「libvirtグループに追加だけでOK」と書いていましたが思い違いで、それだけでは使えないことを思い出したので設定を見て、大幅に書き直しています。)

virt-managerのインストールと設定

virt-managerのインストールはsudo apt install virt-managerでインストールします。そして、libvirtグループに利用するユーザーを追加します。ユーザーがkvmグループに追加されていなければ、こちらにも追加します。

 $ sudo gpasswd -a (ユーザー) libvirt
 $ sudo gpasswd -a (ユーザー) kvm

設定は、/etc/libvirt/qemu.confの以下の部分のコメントを外して変更します。

 user = "jun" ←利用ユーザー名に変更
 group = "libvirt" ← libvirtに変更
 dynamic_ownership = 1 ← コメントアウトだけでOK

/etc/libvirt/libvirtd.confの設定は、以下の行のコメントを外すだけでOKです。

 unix_sock_group = "libvirt"
 unix_sock_ro_perms = "0777"
 unix_sock_rw_perms = "0770"
 auth_unix_ro = "polkit"
 auth_unix_rw = "polkit"

これで設定が終わったのでデーモンの再起動をしてログアウトすれば使えますが、ユーザーをグループに追加していてログアウトも必要なのでマシン自体を再起動するのが手っ取り早いと思います。

イメージの変換とインポート

移行の方法は、qemu-imgを使って~/VirtualBox VMs以下にあるvdiファイルをこんな感じに変換。

 $ qemu-img convert -f vdi -O qcow2 hoge.vdi hoge.qcow2

古い情報だとrawイメージに変換してとか書いてあるけど、今は直接qcow2に変換できます。

変換したqcow2イメージを(root権限が必要なのでsudoをつけて)/var/lib/libvirt/images/にコピーして、virt-managerの「新しい仮想マシン」から「既存のディスクイメージをインポート」を選んでインポートします。

virtioドライバーのインストール

Windowsにvirtioドライバー一式をインストールするためのISOイメージをこちらからダウンロードします。(ディレクトリはこちら) ダウンロードしたらISOをイメージのある/var/lib/libvirt/images/まで移動しておきます。

インポートしたWindowsマシンは、そのまま起動できます。最初に起動したらインストールしていたVirtualBoxのGuestAdditionsを削除して仮想マシンをシャットダウンします。

そして、仮想マシンの情報にある「ハードウェアを追加」ボタンからCD-ROMドライブを追加します。CD-ROMは、「ストレージ」を選んで、カスタムストーレジからVirtioのISOを指定、デバイスの種類に「CD-ROMデバイス」、バスの種類を「SATA」を指定します。

再度、Windowsマシンを起動するとCD-ROMドライブが追加されているので、セットアップのexeファイルを起動するとvirtioドライバー一式がインストールされます。インストールが終わったら再びシャットダウンします。

仮想マシンの設定変更

ゲストにドライバーをインストールしたので仮想マシン側の設定を変更します。

virt-managerから直接XMLを書き換えるので、virt-managerのメニュー[編集]→[設定]を開いて、全般タブにある「Enable XML Editing」にチェックを入れます。

ネットワークはvirtioに変更するだけで大丈夫です。HDDは、virtioに変更するとWindowsが起動しなくなります。なので仮のvirtioのHDDを追加してから、インポートしたHDDの設定を変更するという方法で設定します。

HDDの追加は、「ハードウェアを追加」からCD-ROMと同じように追加しますが、バスの種類「VirtIO」の指定を忘れなければ、どんな容量でも構いません。

virtioのHDDを追加したら仮想マシンを起動します。すると、Windows側にVirtIOドライバが読み込まれるようになるのでマシンをシャットダウンして改めてインポートしたHDDの設定を変更します。

設定の変更方法は、インポートしたHDDをクリックして、XMLタブを開きます。すると以下のような設定が表示されるので、devの行のsdaをvdaに、sataをvirtioに変更します。そして、addressの行を削除して「適用」ボタンを押します。

 <disk type="file" device="disk">
   <driver name="qemu" type="qcow2"/>
   <source file="/var/lib/libvirt/images/hoge-1.qcow2"/>
   <target dev="sda" bus="sata"/> ← sdaをvdaに変更。sataをvirtioに変更する
   <address type="drive" controller="0" bus="0" target="0" unit="1"/> ←この行を削除する
 </disk>

ディスプレイとビデオの設定ですが、自分はウィンドウで使って画面がウィンドウに追従するほうがいいので、ディスプレイは「SPICEサーバー」でリッスンタイプは「なし」。ビデオは「QXL」にしました。 これで、仮想マシンのメニュー[表示]→[仮想マシンのウィンドウを自動的にリサイズ]にチェックを入れるとウィンドウに合わせて画面サイズが自動的に変更されます。(余談ですがLinuxゲストの場合は、spice-vdagentとxserver-spiceを入れると追従します。)

特定の画面サイズしか使えなくなりますが画面描画が高速な方がいい人は、ビデオを「VirtIO」にしてディスプレイの「OpenGL」を有効にしてください。フルスクリーンで使う場合はこちらのほうが都合がいいと思います。

どちらを選ぶかは好みと用途に合わせて選択してください。

Tags: linux libvirt

_ virt-manager上のゲストWindowsマシンにsshfs-winをインストールしてホストのファイルシステムを読み書きする

VirtualBoxではGuestAddtionsを入れるとサクっとホストのファイルシステムと共有できますが、virt-managerにそういう物はありません。

検索すると「ホストにsamba入れて共有しろ」と書いているサイトが多いけど仮想マシンのためだけにセットアップは面倒なので却下。 ほかに探すとspice-webdavdというのがあったので試したけど設定方法がわかりにくい上にvirt-viewerからしか使えないので、これも却下。

ということで、Windowsゲストにsshfs-winをインストールして使う方法に落ち着きました。

sshfs-winのインストールは、READMEに書いてあるとおりWinFspsshfs-winをインストール。そして、エクスプローラーを起動して「ネットワークドライブの割り当て」で、「\\sshfs\(ユーザー名)@(ホスト)」のように指定すればOK。

すっごい楽!


2001|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|06|08|12|
2011|01|02|03|06|07|08|09|10|11|12|
2012|01|02|03|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|12|
2014|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|10|11|12|
2017|01|02|11|12|
2018|01|02|03|04|07|09|10|11|12|
2019|01|03|04|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|

クリエイティブ・コモンズ・ライセンス Jun NOGATA を著作者とするこの 作品クリエイティブ・コモンズの 表示 - 継 承 4.0 国際 ライセンスで提供されています。