psletの備忘録

twitterでは書き切れないことなどを不定期に記入します

Ubuntu 18.04 LTS オフラインミーティングに参加した #ubuntujp

2018/06/09に六本木ヒルズで開催された、Ubuntu 18.04 LTS オフラインミーティングへ参加してきました。 昨年12月のイベントにも参加しましたが、以前と変わらない雰囲気(唐揚げ15kg分のオードブルが30分でなくなる!)で 楽しく学び過ごすことができました。

atnd.org

以下は行われた発表のメモと所感です。

UbuntuでRAW画像を扱う

カメラ沼と愛を感じたセッションでした。 RAW画像界隈は知らなかったので結構なるほど、と思ったり。。

  • @Rakugouさん
  • カメラがっつり取る
  • ボディは消耗品、レンズは資産
  • X-T2はいいぞ(フォーカスレバー、防塵・防滴)
  • X-H1もいいぞ

RAW画像とは

  • JPEG画像を生成するもととなるデータ
  • メーカー、カメラに寄って形式や中身が違う。
  • 拡張子が同じでもカメラが違えば取り扱えるか変わってくる。

X-T2のRAW画像はubuntuで取り扱えるのか

  • ソフトウェアセンターからダウンロードする。
    • UFRaw
      • X-T2非対応
    • RawTherapee
      • 大体のRAWフォーマットに対応しているよ
        • 使わないとわからない
        • 現像はできた。
    • darktable

注意点

  • 18.04 LTSでやること。
  • バージョンによりできる場合とできない場合がある。

他のやり方は?

  • Adobe DNG Converterを使う
    • 各社のRAWファイルをDNGファイルに変換
    • DNGであれば各種ソフトで取り扱える。
  • 現像ソフトをWineでつかう
    • SILKYPIX
      • 起動しない
    • X RAW Studio
      • カメラ内現像をパソコンから
      • まだWindows版なし(Macのみ)
  • カメラに買い換える
    • UFRawやdarktableに対応しているカメラを購入
    • 2014年モデルあたりだれば動く
      • ロングセラー商品が狙い目

Ubuntuの同人誌をUbuntuで書く

開発の手法を使って、同人誌を書いていますよという内容。 そういえばわかばちゃんの作者もGit使ってるっていっていたような。。。 オフラインミーティング後には突発の同人誌即売も行われました。

  • team zpn あわしろいくやさん(@ikunya)
  • うぶんちゅ!まがじん さっぱ~ん♪
    • Ubuntun系の同人誌
      • 多彩なメンバー
    • 不定期刊行
    • DRMなしのPDF,EPUB形式
    • 制作自体もUbuntuで実施
  • 1-7まで作成、8は作成中
  • 技術書典に参加

    制作手法

  • OSSとしては、Ubuntu,RE:VIEW(組版フレームワーク),GitBucket,Jenkins(CI),LXD/LXC(コンテナ),IPAフォント,nginxを利用
  • 製作開始宣言、issueへ登録。Re:VIEW形式、プルリク、CIが走ってレビュー、問題なければmasterへマージ
  • アートワーク作業、あとがき
  • GitのWeb UIにプルリク → CIが走る
    • ソフトウェアのモダンな開発手法
    • 対象がプログラム言語か自然言語の違いだけ。
  • VPS

    • Conoha
    • 自由にプラン変更可能
    • CIが必要なときはメモリを多く
    • CIが不要なときはメモリを少なくできる。固定費を下げることができる。ありがたい。
  • ざっくりわかるUbuntu 18.04 LTS

    • vol.8向けの記事を加筆修正した。
  • Vol.8
    • 今月末発売予定
    • 700円

Ubuntu 18.04 LTSでWineを使ってみよう

Wineは気になっていたものの、何も知らん状態だったので非常に役に立ちました。 てか触らないとな。。

  • さがわさん
  • Wineとは

  • Ubuntu とWine

    • 昔からWineのバイナリパッケージあり
    • 16.04 LTS Wineは4年以上前の古いバージョン
      • 18.04 LTSなら新しいバージョンなので動くアプリケーションが動くはず。(3.0になる。)
  • Wineで動くアプリケーション

  • Wineの動かし方

    • wine-stable or wine-developmentをSynapticパッケージマネージャから導入
    • 32ビットライブラリが多数インストール。容量が必要。
    • 機能に応じた共有ライブラリの追加パッケージをインストール(実行ファイルが32bitなら、i386)
    • 最新版はWineHQで独自ビルドをリリースごとに提供。
      • Ubuntu版とは別なのでUbuntu版はアンインストール
    • Gitやtar ballを利用してソースからコンパイルする方法もある。
  • アプリケーション起動方法

    • wine 実行ファイル名 引数
    • 初回起動時 初期設定 ~/.wine配下にファイルコピー
    • wine-mono、wine-geckoのパッケージをいれるかきかれる。入れたほうが無難。
    • アプリケーション閉じるとwineも終了
    • アプリケーションの導入手順はWindowsと同じ
    • Wineが提供するプログラム メモ帳などもある。
  • WineによるWindows実現

  • Wineの構成
  • ローダ(Wine)
    • 実行形式のファイルをメモリ上に配置する
  • 各種ライブラリ、プログラム
    • Windowsとは別の独自実装。(プログラムの使い方は同じ)
  • サーバ
    • プロセス間の協調動作を実現
  • 開発ツール
  • その他(Tahome,FixedSysフォントetc)

  • ファイルシステム

  • Unixファイルシステムを利用
  • Unix / → Zドライブ
  • ~/.wine/drive_c Cドライブ
  • デスクトップとかはXDGユーザディレクトリ利用
  • Wine上でもファイルに対する読み書き権限は同じ

  • レジストリ

  • Wineにもレジストリが存在する。
  • 構成はWindowsと同じ
  • レジストリエディタを使って編集する
  • HKEY_CURRENT_USER/Software/Wine

  • フォント

  • wine付属フォント(fonts-wineを入れておく)
  • Fontconfigで列挙されたフォントファイル
  • C:\Windows\Fontsにあるフォントファイル
  • 描画はFreeType利用
    • Wine2.0からカラー絵文字に対応。
  • おすすめ設定
    • winetircks fakejapanese_ipamonaなどつかう
    • 文字化けや動作不良に悩まされたくなければ設定すること
    • ttf-mscorefonts-installerを使う
  • Wineの動画再生

    • Gstreamer 1.0に依存
    • 現状 Video for WindowsやDirectShowは対応
  • 印刷

    • CUPSで依存してできるようにすること
    • メーカー提供のドライバは使えない。Windows用。
  • ゲームコントローラ
    • Xboxコントローラー Wine3.2以降であれば使える?
    • それ以外はUSBに接続できれば使える。
  • MIDI

    • 古いゲームはBGMにMIDIMIDIの再生ができないと音が出ない。
    • 外部MIDI音源またはソフトウェアシンセサイザを使う
      • Timidity++
      • FluidSynth
    • DlirectMusic(Wine内蔵版)は不完全。現状無理。
  • 環境変数

  • WINEPREFIX
    • ~/.wine相当のディレクトリを設定できる。複数環境を持てる。
  • WINEARCH
  • WINEDEBUG

  • トラブルシューティング

  • Wineで動くとは

    • Wineと実行ファイルの機械語に互換があること。
      • ARM上のWineでx86のバイナリを動かすのは無理。
    • アプリケーションが読み出すAPIがWine環境に一通り存在する。
      • 特殊なドライバ使うものは不可。
    • 主要なAPIが期待する動作
      • テクスチャのロード
    • APIの戻り値が正常値ならよいのか
      • Wineで復元ポイントを作るのは大変なので、復元ポイントをつくったていで正常値をかえす など
  • 動かない場合

  • Windowsライブラリの不足
    • MSの再配布パッケージはフリーソフトウェアではない。Wine内蔵版と競合することになる。
    • .NET Framework,Direct Xパッケージの導入は大変
    • Winetricksで設定すれば動くかもしれない。
  • Unixライブラリの不足

    • バイナリパッケージの依存ライブラリは最小限
    • ライブラリがなければWineはアプリケーションに非対応
    • 動画再生はgstreamer1.0-plugins-bad-videoparsersやgstreamer1.0-libavを使う。
  • Wineにおけるバグ

  • AppDBやBugZillaを参照
  • コンソールメッセージ

  • Windowsで動くならWineのバグです

  • アプリケーションの作りが悪かったりすると無理
  • 対象が難しいもの
  • DRM、コピープロテクションなど

  • 悩ましいバグ

  • HLSLのコンパイル
    • Wine内蔵版では未実装
    • ゲームでロード中にアプリケーションエラー起きる
  • 文字比較論理の不一致
    • Windowsは独自のテーブルで判断
    • WineはUnicode由来のテーブル利用
    • アーカイブ内のファイル名を二分探索する処理でトラブルになりやすい。
  • バグの回避

    • 一部のソフトを起動すると「日本語Windows専用」と出る場合がある。
    • このバグの回避にはレジストリTokyo Standard Timeキー stdの値「東京」から始まる値にすること。
  • Wineのこれから

    • Direct12の実装
    • 32bitライブラリの廃止
    • 互換性の向上
    • WineConf(2018/06 オランダで開催)で議論する予定。

一読者によるレシピ実践とその経過

Ubuntu界隈ではUbuntu Weekly Recipeがあるので、 その内容を実践して、せっかくだからこの場で著者へフィードバックしようというお話。 試してみることの大切さを改めて実感。

gihyo.jp

  • @toshi_kdさん
  • インフラエンジニア
  • Ubuntuユーザーにとっての先達 Ubuntu Weekly Recipe
  • feedbackをこの場でするのも面白そう

  • 対象レシピ

    • 480回
    • 483回
    • 484回
  • 今回は、OpenNebula

  • 試した内容

    • 483回の踏襲
    • OpenNebulaはIaaS
    • UbuntuのイベントなのにCentOS 7
    • SELinuxなど OFF(公式ドキュメントでも謳われている)
    • 所感
      • 構築しやすい
      • Sunstoneシンプルかつ軽量
      • VM管理 モニタリングに便利な機能が備わっている
      • VMを手軽にデプロイ可能
      • VMware(要VCenter)やAmazon EC2,Microsoft Azureとの連携可能
  • 深掘りする
    • src.rpmを取得、パッケージビルド
    • SQLiteからMariaDBへ切り替え
    • ネットワークを高度な設定に切り替え
    • 外部ストレージの利用方法模索
    • NFS/GlusterFS/Ceph/iSCSI etc..
    • 高度なVMの運用方法(ライブマイグレーション、ライブスナップショット)

    • 自力のパッケージ化 できることはできる(mockでビルド,sourceの事前準備に注意点あり)

    • ネットワークの切り替え(VMへの通信がとおらない kernerlのパラメーターに問題ありとわかった )
    • 外部ストレージの利用方法模索(設定方法が多彩。未だに答えなし。)
    • 高度なVMの運用方法(ライブスナップショット機能せず)

リリースノートの紹介

  • Ubuntu 18.04 LTSリリースノートを翻訳者が紹介。

BionicBeaver/ReleaseNotes/Ja - Ubuntu Wiki

  • Javaバージョン問題の話(Ubuntuでは当面Java8継続→Java10へアップデートらしい)から、ご自宅にメインフレームがある方向けのアップデートなどの紹介。
  • chronyが結構推されていた。

感想

  • Ubuntu 18.04 はvagrantで入れているがLTSもいれてみたくなりました。
  • 唐揚げお腹いっぱい。
  • 食事に対してのフィードバック(唐揚げ以外)はお米系のものがあればなあと。。。