mattintosh note

Hello Raspberry Pi!

Ubuntu で Atom や Haroopad のフォントが汚い

Haroopad。なかなか良いアプリなんだけど Ubuntu 18.04 で使っているとなぜだかレンダリングがおかしい。うちは KDE だし仕方ないのかなぁ〜なんて思ってて、Atom を使う用事があったので起動したらこいつも汚い。freetype か pango あたりかな、なんて調べたら同じ症状の人発見。

github.com

どうも libefreetype6 の 2.8.1 がダメっぽい。Atom の方は Atom 自体をアップグレードしたら正常になったが、Haroopad は最新版でもダメ。

なので libfreetype6 を 2.8.0 にダウングレードしてバージョン固定。

wget http://ftp.jaist.ac.jp/pub/Linux/ubuntu/pool/main/f/freetype/libfreetype6_2.8-0.2ubuntu2_amd64.deb
wget http://ftp.jaist.ac.jp/pub/Linux/ubuntu/pool/main/f/freetype/libfreetype6_2.8-0.2ubuntu2_i386.deb
sudo dpkg -i libfreetype6_2.8-0.2ubuntu2_amd64.deb
sudo dpkg -i libfreetype6_2.8-0.2ubuntu2_i386.deb
sudo apt-mark hold libfreetype6

Cisco Packet Tracer 用 Docker コンテナを作る

タイトルの通り。Cisco Packet Tracer が Ubuntu 14.04 向けなら Ubuntu 14.04 で環境を作ればいいじゃない!」というノリ。

「ん?X11 転送以外で Docker コンテナから GUI ウィンドウってホストに持ってこれるのか?」と思ったけど -v /tmp/.X11-unix/X0:/tmp/.X11-unix/X0 でソケット共有したら普通に使えた。

-v $HOME/pt:/home/cisco/pt とかでホストのディレクトリをマウントしておかないとファイルを作成してもコンテナから取り出せなくなる。

git clone https://gist.github.com/4a18b03d22d1206e55bdfcc73ebc7172.git docker-packettracer
cd docker-packettracer
cp ~/Downloads/Packet\ Tracer\ 7.1.1\ for\ Linux\ 64\ bit.tar.gz .
docker build -t packettracer .
docker run -v /tmp/.X11-unix/X0:/tmp/.X11-unix/X0 -v $HOME/pt:/home/cisco/pt --name packettracer packettracer

一度コンテナを作ったあとは docker start だけでよい。

docker start packettracer

Cisco Packet Tracer 7.1.1 を Ubuntu 16.04 や Debian 9 以降にインストールする方法

f:id:mattintosh4:20180527001644p:plain

会社で CCENT/CCNA の教材作成用に Cisco Packet Tracer を使う用事があったので Linux 版のインストール方法を残しておく。

Ubuntu 16.04 以降では Packet Tracer 7.1.1 をインストールしただけでは起動できない

Linux 向けの Cisco Packet Tracer 7.1.1 は Ubuntu 14.04 を対象にしているようなので Ubuntu 16.04 以降の環境では一部のライブラリが存在せず起動できない。

install スクリプトによってインストールされた packettracer コマンドでは >/dev/null 2>&1 となっているためエラーが出力されないが、PacketTracer7 を直接実行するとライブラリが見つからないというエラーを確認することができる。

linus@ubuntu1804:~/Applications/pt-7.1.1$ LD_LIBRARY_PATH=lib bin/PacketTracer7  
bin/PacketTracer7: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
linus@ubuntu1804:~/Applications/pt-7.1.1$ LD_LIBRARY_PATH=lib ldd bin/PacketTracer7 | grep "not found" | sort | uniq
        libicui18n.so.52 => not found
        libicuuc.so.52 => not found
        libpng12.so.0 => not found

Packet Tracer 7.1.1 を使用するにあたり、追加で必要になるライブラリは下記の通り。Kali Linux (MATE Edition) でも試したが libxslt が不足していたような気がする。

ディストリビューション 追加で必要なライブラリ
Ubuntu 16.04.4 LTS xenial libicui18n.so.52
libicuuc.so.52
Ubuntu 18.04 LTS bionic libicui18n.so.52
libicuuc.so.52
libpng12.so.0
Debian 9 libcrypto.so.1.0.0
libicui18n.so.52
libicuuc.so.52
libpng12.so.0
Kali Linux (Mate Edition) 後日確認予定

Packet Tracer 7.1.1 のインストール

適当なディレクトリ(ここでは ~/Applications/pt-7.1.1 とする)を作成して、その中に Packet Tracer 7.1.1 for Linux 64 bit.tar.gz を展開する。このとき saves ディレクトリ以下に書き込み権限が無く、エラーを吐くので sudo で展開する。

mkdir -p ~/Applications/pt-7.1.1
cd       ~/Applications/pt-7.1.1
sudo tar xzf ~/Downloads/Packet\ Tracer\ 7.1.1\ for\ Linux\ 64\ bit.tar.gz

展開直後のトップディレクトリの構成は下記の通り。

linus@ubuntu1804:~/Applications/pt-7.1.1$ tree -F -L 1
.
├── Sounds/
├── art/
├── backgrounds/
├── bin/
├── eula.txt
├── extensions/
├── help/
├── install*
├── languages/
├── lib/
├── saves/
├── set_ptenv.sh
├── set_qtenv.sh
├── templates/
├── tpl.linguist
└── tpl.packettracer

10 directories, 6 files

インストールはトップディレクトリにある install スクリプトを実行し、EULA を読んだ後にインストールディレクトリを指定する。「/usr/local/binpackettracer をインストールしますか?」のような質問をされるので「はい」にすれば LD_LIBRARY_PATH の設定をしてくれる /usr/local/bin/packettracer を配置してくれる。

./install

依存関係の解決

Packet Tracer 7.1.1 には Qt5 のライブラリが同梱されている。

linus@ubuntu1804:~/Applications/pt-7.1.1$ tree -F lib
lib
├── libQt5Core.so -> libQt5Core.so.5.5.1*
├── libQt5Core.so.5 -> libQt5Core.so.5.5.1*
├── libQt5Core.so.5.5 -> libQt5Core.so.5.5.1*
├── libQt5Core.so.5.5.1*
├── libQt5DBus.so -> libQt5DBus.so.5.5.1*
├── libQt5DBus.so.5 -> libQt5DBus.so.5.5.1*
├── libQt5DBus.so.5.5 -> libQt5DBus.so.5.5.1*
├── libQt5DBus.so.5.5.1*
├── libQt5Gui.so -> libQt5Gui.so.5.5.1*
├── libQt5Gui.so.5 -> libQt5Gui.so.5.5.1*
├── libQt5Gui.so.5.5 -> libQt5Gui.so.5.5.1*
├── libQt5Gui.so.5.5.1*
├── libQt5Multimedia.so -> libQt5Multimedia.so.5.5.1*
├── libQt5Multimedia.so.5 -> libQt5Multimedia.so.5.5.1*
├── libQt5Multimedia.so.5.5 -> libQt5Multimedia.so.5.5.1*
├── libQt5Multimedia.so.5.5.1*
├── libQt5MultimediaWidgets.so -> libQt5MultimediaWidgets.so.5.5.1*
├── libQt5MultimediaWidgets.so.5 -> libQt5MultimediaWidgets.so.5.5.1*
├── libQt5MultimediaWidgets.so.5.5 -> libQt5MultimediaWidgets.so.5.5.1*
├── libQt5MultimediaWidgets.so.5.5.1*
├── libQt5Network.so -> libQt5Network.so.5.5.1*
├── libQt5Network.so.5 -> libQt5Network.so.5.5.1*
├── libQt5Network.so.5.5 -> libQt5Network.so.5.5.1*
├── libQt5Network.so.5.5.1*
├── libQt5Positioning.so -> libQt5Positioning.so.5.5.1*
├── libQt5Positioning.so.5 -> libQt5Positioning.so.5.5.1*
├── libQt5Positioning.so.5.5 -> libQt5Positioning.so.5.5.1*
├── libQt5Positioning.so.5.5.1*
├── libQt5PrintSupport.so -> libQt5PrintSupport.so.5.5.1*
├── libQt5PrintSupport.so.5 -> libQt5PrintSupport.so.5.5.1*
├── libQt5PrintSupport.so.5.5 -> libQt5PrintSupport.so.5.5.1*
├── libQt5PrintSupport.so.5.5.1*
├── libQt5Script.so -> libQt5Script.so.5.5.1*
├── libQt5Script.so.5 -> libQt5Script.so.5.5.1*
├── libQt5Script.so.5.5 -> libQt5Script.so.5.5.1*
├── libQt5Script.so.5.5.1*
├── libQt5ScriptTools.so -> libQt5ScriptTools.so.5.5.1*
├── libQt5ScriptTools.so.5 -> libQt5ScriptTools.so.5.5.1*
├── libQt5ScriptTools.so.5.5 -> libQt5ScriptTools.so.5.5.1*
├── libQt5ScriptTools.so.5.5.1*
├── libQt5Sensors.so -> libQt5Sensors.so.5.5.1*
├── libQt5Sensors.so.5 -> libQt5Sensors.so.5.5.1*
├── libQt5Sensors.so.5.5 -> libQt5Sensors.so.5.5.1*
├── libQt5Sensors.so.5.5.1*
├── libQt5Sql.so -> libQt5Sql.so.5.5.1*
├── libQt5Sql.so.5 -> libQt5Sql.so.5.5.1*
├── libQt5Sql.so.5.5 -> libQt5Sql.so.5.5.1*
├── libQt5Sql.so.5.5.1*
├── libQt5Svg.so -> libQt5Svg.so.5.5.1*
├── libQt5Svg.so.5 -> libQt5Svg.so.5.5.1*
├── libQt5Svg.so.5.5 -> libQt5Svg.so.5.5.1*
├── libQt5Svg.so.5.5.1*
├── libQt5WebKit.so -> libQt5WebKit.so.5.5.1*
├── libQt5WebKit.so.5 -> libQt5WebKit.so.5.5.1*
├── libQt5WebKit.so.5.5 -> libQt5WebKit.so.5.5.1*
├── libQt5WebKit.so.5.5.1*
├── libQt5WebKitWidgets.so -> libQt5WebKitWidgets.so.5.5.1*
├── libQt5WebKitWidgets.so.5 -> libQt5WebKitWidgets.so.5.5.1*
├── libQt5WebKitWidgets.so.5.5 -> libQt5WebKitWidgets.so.5.5.1*
├── libQt5WebKitWidgets.so.5.5.1*
├── libQt5Widgets.so -> libQt5Widgets.so.5.5.1*
├── libQt5Widgets.so.5 -> libQt5Widgets.so.5.5.1*
├── libQt5Widgets.so.5.5 -> libQt5Widgets.so.5.5.1*
├── libQt5Widgets.so.5.5.1*
├── libQt5XcbQpa.so -> libQt5XcbQpa.so.5.5.1*
├── libQt5XcbQpa.so.5 -> libQt5XcbQpa.so.5.5.1*
├── libQt5XcbQpa.so.5.5 -> libQt5XcbQpa.so.5.5.1*
├── libQt5XcbQpa.so.5.5.1*
├── libQt5Xml.so -> libQt5Xml.so.5.5.1*
├── libQt5Xml.so.5 -> libQt5Xml.so.5.5.1*
├── libQt5Xml.so.5.5 -> libQt5Xml.so.5.5.1*
└── libQt5Xml.so.5.5.1*

0 directories, 72 files

packettracer コマンドのソースである tpl.packettracer を見ると LD_LIBRARY_PATH でインストール先の lib ディレクトリを参照するになっている。

#!/bin/bash

echo Starting Packet Tracer 7.1.1

PTDIR=III
export LD_LIBRARY_PATH=$PTDIR/lib
pushd $PTDIR/bin > /dev/null
./PacketTracer7 "$@" > /dev/null 2>&1
popd > /dev/null

どのライブラリが足りないのかを ldd を使って確認する。

Ubuntu 16.04〉

libicuuc.so.52 は libicu52 に含まれるのでこれは libicu52 のパッケージを入れれば解決できる。

linus@ubuntu1604:~/Applications/pt-7.1.1$ LD_LIBRARY_PATH=lib ldd bin/PacketTracer7 | grep "not found" | sort | uniq
        libicui18n.so.52 => not found
        libicuuc.so.52 => not found

Ubuntu 18.04〉

Ubuntu 18.04 の場合は libicu52 に加え、libpng12 が不足している。

linus@ubuntu1804:~/Applications/pt-7.1.1$ LD_LIBRARY_PATH=lib ldd bin/PacketTracer7 | grep "not found" | sort | uniq
        libicui18n.so.52 => not found
        libicuuc.so.52 => not found
        libpng12.so.0 => not found

Debian 9〉

Debian 9 の場合は更に libcrypto.so.1.0.0 が不足しているが、これは libssl-1.0.0 に含まれる。

linus@debian9:~/Applications/pt-7.1.1$ LD_LIBRARY_PATH=lib ldd bin/PacketTracer7  | grep "not found" | sort | uniq
        libcrypto.so.1.0.0 => not found
        libicui18n.so.52 => not found
        libicuuc.so.52 => not found
        libpng12.so.0 => not found

依存関係のパッケージの入手

いずれのディストリビューションも libicu52 を必要とするが、APT でインストールできるのは libicu55 や libicu57 以降になっている。

linus@ubuntu1604:~/Applications/pt-7.1.1$ apt-cache search libicu
icu-devtools - Development utilities for International Components for Unicode
libicu-dev - Development files for International Components for Unicode
libicu55 - International Components for Unicode
libicu55-dbg - International Components for Unicode
libicu4j-4.4-java - Library for Unicode support and internationalization
libicu4j-49-java - Library for Unicode support and internationalization
libicu4j-java - Library for Unicode support and internationalization

そこで、http://ftp.jaist.ac.jp あたりから対象パッケージの DEB ファイルをダウンロードしてくる。

Ubuntu

※以降、Ubuntu 16.04 の場合は libpng12 は最初からインストールされているので読み飛ばしてかまわない。

wget http://ftp.jaist.ac.jp/pub/Linux/ubuntu/pool/main/i/icu/libicu52_52.1-3ubuntu0.8_amd64.deb
wget http://ftp.jaist.ac.jp/pub/Linux/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_amd64.deb

Debian

Debian 9 の場合は libssl-1.0.0 もダウンロードする。

wget http://ftp.jaist.ac.jp/pub/Linux/debian/pool/main/i/icu/libicu52_52.1-8+deb8u7_amd64.deb
wget http://ftp.jaist.ac.jp/pub/Linux/debian/pool/main/libp/libpng/libpng12-0_1.2.50-2+deb8u3_amd64.deb
wget http://ftp.jaist.ac.jp/pub/Linux/debian/pool/main/o/openssl/libssl1.0.0_1.0.2l-1~bpo8+1_amd64.deb

依存関係のインストール

Ubuntu

libicu52、libpng12 は現行バージョンと名前が異なるため衝突しないと思われるので dpkg コマンドでインストールする。詳細な検証はしていないのでパッケージをインストールしたくない場合は下の手動配置方法を参照。

sudo dpkg -i libicu52_52.1-3ubuntu0.8_amd64.deb
sudo dpkg -i libpng12-0_1.2.54-1ubuntu1_amd64.deb

Debian

dpkg -i libicu52_52.1-8+deb8u7_amd64.deb
dpkg -i libpng12-0_1.2.50-2+deb8u3_amd64.deb 
dpkg -i libssl1.0.0_1.0.2l-1~bpo8+1_amd64.deb

これで Packet Tracer 7.1.1 が起動できるようになる。

【番外編】 Packet Tracer とライブラリを手動で配置する方法

パッケージをインストールをしたくない場合は DEB ファイルからライブラリだけを取り出せばよい。DEB パッケージの中にある data.tar.xz を取り出して中を見てみる。libicu52 の場合、必要になるのは ./usr/lib/x86_64-linux-gnu 以下にあるものだけ。

linus@ubuntu1804:~/Applications/pt-7.1.1$ ar p libicu52_52.1-3ubuntu0.8_amd64.deb data.tar.xz | xz -dc | tar tvf -  | sort -k6
drwxr-xr-x root/root         0 2018-03-28 01:08 ./
drwxr-xr-x root/root         0 2018-03-28 01:08 ./usr/
drwxr-xr-x root/root         0 2018-03-28 01:08 ./usr/lib/
drwxr-xr-x root/root         0 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/
lrwxrwxrwx root/root         0 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libicudata.so.52 -> libicudata.so.52.1
-rw-r--r-- root/root  23512848 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libicudata.so.52.1
lrwxrwxrwx root/root         0 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libicui18n.so.52 -> libicui18n.so.52.1
-rw-r--r-- root/root   2121040 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libicui18n.so.52.1
lrwxrwxrwx root/root         0 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libicuio.so.52 -> libicuio.so.52.1
-rw-r--r-- root/root     55304 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libicuio.so.52.1
lrwxrwxrwx root/root         0 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libicule.so.52 -> libicule.so.52.1
-rw-r--r-- root/root    358408 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libicule.so.52.1
lrwxrwxrwx root/root         0 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libiculx.so.52 -> libiculx.so.52.1
-rw-r--r-- root/root     47112 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libiculx.so.52.1
lrwxrwxrwx root/root         0 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libicutest.so.52 -> libicutest.so.52.1
-rw-r--r-- root/root     64864 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libicutest.so.52.1
lrwxrwxrwx root/root         0 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libicutu.so.52 -> libicutu.so.52.1
-rw-r--r-- root/root    195344 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libicutu.so.52.1
lrwxrwxrwx root/root         0 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libicuuc.so.52 -> libicuuc.so.52.1
-rw-r--r-- root/root   1525776 2018-03-28 01:08 ./usr/lib/x86_64-linux-gnu/libicuuc.so.52.1
drwxr-xr-x root/root         0 2018-03-28 01:08 ./usr/share/
drwxr-xr-x root/root         0 2018-03-28 01:08 ./usr/share/doc/
drwxr-xr-x root/root         0 2018-03-28 01:08 ./usr/share/doc/libicu52/
-rw-r--r-- root/root       317 2013-12-25 01:45 ./usr/share/doc/libicu52/NEWS.Debian.gz
-rw-r--r-- root/root      1807 2018-03-28 01:08 ./usr/share/doc/libicu52/changelog.Debian.gz
-rw-r--r-- root/root      7016 2013-12-25 01:45 ./usr/share/doc/libicu52/copyright
drwxr-xr-x root/root         0 2018-03-28 01:08 ./usr/share/lintian/
drwxr-xr-x root/root         0 2018-03-28 01:08 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       176 2013-12-25 01:45 ./usr/share/lintian/overrides/libicu52

DEB ファイルからライブラリだけを取り出すが、その際、--strip-components=2 オプションで2階層ほど削って展開することで余計なファイル移動を省略する。--strip-components=3 で、もう一段階削って lib 直下に libicu52 のライブラリを展開するようにしてもいいが、なんとなく分けたかったので lib/x86_64-linux-gnu 以下に展開するようにする。(pax コマンドがあればそちらでパスを変換して取り出すのもあり)

ar p libicu52_52.1-3ubuntu0.8_amd64.deb data.tar.xz | xz -dc | tar xf - --wildcards '*/lib/x86_64-linux-gnu/*' --strip-components=2

これで lib の直下に x86_64-linux-gnu ディレクトリが作成され、libicu52 のライブラリが展開される。

linus@ubuntu1804:~/Applications/pt-7.1.1$ tree -F lib
lib
├── libQt5Core.so -> libQt5Core.so.5.5.1*
├── libQt5Core.so.5 -> libQt5Core.so.5.5.1*
├── libQt5Core.so.5.5 -> libQt5Core.so.5.5.1*
├── libQt5Core.so.5.5.1*
:
中略
:
└── x86_64-linux-gnu/
    ├── libicudata.so.52 -> libicudata.so.52.1
    ├── libicudata.so.52.1
    ├── libicui18n.so.52 -> libicui18n.so.52.1
    ├── libicui18n.so.52.1
    ├── libicuio.so.52 -> libicuio.so.52.1
    ├── libicuio.so.52.1
    ├── libicule.so.52 -> libicule.so.52.1
    ├── libicule.so.52.1
    ├── libiculx.so.52 -> libiculx.so.52.1
    ├── libiculx.so.52.1
    ├── libicutest.so.52 -> libicutest.so.52.1
    ├── libicutest.so.52.1
    ├── libicutu.so.52 -> libicutu.so.52.1
    ├── libicutu.so.52.1
    ├── libicuuc.so.52 -> libicuuc.so.52.1
    └── libicuuc.so.52.1

1 directory, 88 files

libpng12 もライブラリだけを取り出すことができるが、こちらは /usr/lib/x86_64-linux-gnu にあるのはシンボリックリンクで、実体は ./lib/x86_64-linux-gnu/libpng12.so.0 になっている。

linus@ubuntu1804:~/Applications/pt-7.1.1$ ar p libpng12-0_1.2.54-1ubuntu1_amd64.deb data.tar.xz | xz -dc | tar tvf - --wildcards '*/x86_64-linux-gnu/*' | sort -k6
lrwxrwxrwx root/root         0 2016-01-07 03:08 ./lib/x86_64-linux-gnu/libpng12.so.0 -> libpng12.so.0.54.0
-rw-r--r-- root/root    149904 2016-01-07 03:08 ./lib/x86_64-linux-gnu/libpng12.so.0.54.0
lrwxrwxrwx root/root         0 2016-01-07 03:08 ./usr/lib/x86_64-linux-gnu/libpng12.so.0 -> /lib/x86_64-linux-gnu/libpng12.so.0

シンボリックリンクの方は展開しても意味が無いので ./lib/x86_64-linux-gnu だけを展開する。これはそのまま展開すれば相対パスでちょうどよく lib/x86_64-linux-gnu に配置される。

ar p libpng12-0_1.2.54-1ubuntu1_amd64.deb data.tar.xz | xz -dc | tar xf - --wildcards './lib/x86_64-linux-gnu/*'
linus@ubuntu1804:~/Applications/pt-7.1.1$ tree -F lib
lib
:
中略
:
└── x86_64-linux-gnu/
    :
    中略
    :
    ├── libpng12.so.0 -> libpng12.so.0.54.0
    └── libpng12.so.0.54.0

1 directory, 90 files

Debian 9 の場合は ar コマンドが無いので busybox ar を使う。

busybox ar p libicu52_52.1-8+deb8u7_amd64.deb data.tar.xz      | xz -dc | tar xf - --wildcards '*/lib/x86_64-linux-gnu/*' --strip-components=2
busybox ar p libpng12-0_1.2.50-2+deb8u3_amd64.deb data.tar.xz  | xz -dc | tar xf - --wildcards './lib/x86_64-linux-gnu/*'
busybox ar p libssl1.0.0_1.0.2l-1~bpo8+1_amd64.deb data.tar.xz | xz -dc | tar xf - --wildcards '*/libcrypto.so.1.0.0' --strip-components=2

ライブラリだけを取り出しても通常のインストールとは異なるため packettracer コマンドを自作する。これはルートディレクトリにある tpl.packettracer を参考に変更すればよい。

〈packettracer〉

libicu52 や libpng12 のライブラリを lib/x86_64-linux-gnu の下に配置したので、LD_LIBRARY_PATHx86_64-gnu-linux ディレクトリを追加する必要がある。tpl.packettracer では pushdpopd相対パスで実行するようになっていたが、気に入らなかったのでフルパス呼び出しに変更した。

PT7HOME 環境変数QT_DEVICE_PIXEL_RATIO 環境変数install スクリプトを使用したときに、同ディレクトリにある set_qtenv.shset_ptenv.sh によって必要に応じて /etc/profile に書き出されるもの。これも一応追加しておく。

#!/bin/bash

PTDIR=$(cd "$(dirname "$0")" && pwd)
export LD_LIBRARY_PATH=$PTDIR/lib/x86_64-linux-gnu:$PTDIR/lib
export PT7HOME=$PTDIR
export QT_DEVICE_PIXEL_RATIO=auto
exec "$PTDIR"/bin/PacketTracer7 "$@" >/dev/null 2>&1

このスクリプトpackettracer という名前で実行権限を付与して実行すれば Packet Tracer が起動する。

chmod +x packettracer
./packettracer

続いて、デスクトップエントリも自分で配置する。

cp bin/Cisco-PacketTracer.desktop ~/.local/share/applications

packettracer/usr/local/bin に配置していないので適切なパスに変更する。また、インストール先を /opt/pt から変更しているのでアイコンのパスも変更しておく。

〈~/.local/share/applications/Cisco-PacketTracer.desktop〉

[Desktop Entry]
Encoding=UTF-8
Type=Application

#Exec=packettracer %F
Exec=/home/linus/Applications/pt-7.1.1/packettracer %F
#Icon=/opt/pt/art/app.png
Icon=/home/linus/Applications/pt-7.1.1/art/app.png

Name=Cisco Packet Tracer
Categories=Application;Network;

MimeType=application/x-pkt;application/x-pka;application/x-pkz;

デスクトップファイルのデータベースを更新する。

update-desktop-database ~/.local/share/applications

これでアプリケーションメニューに「Cisco Packet Tracer」が表示されるようになる。

f:id:mattintosh4:20180527001525p:plain


任意のパッケージだけ APT に追加できたような気がするけど忘れた。

VirtualBox でゲストの Ubuntu に Packet Tracer をインストールして X11 転送でホスト側に持ってきてみたけどまぁまぁ動くのでアプリケーションサーバとして稼働させておけば複数台にインストールする手間が省けるかも。

f:id:mattintosh4:20180527012646p:plain

VirtualBox の UEFI で Ubuntu が起動しない

EFI ブートの PC 用に USB メモリを作ってるんだけど、インストール後に VirtualBox を落として起動したら Ubuntu が起動しない…と。

なんか前にも同じようなことがあった気がするけど、どうやったっけ…で調べたら詳しく解説してくれてる方がいた。

www.downtown.jp

UEFI シェルからパーティションは見えてるのでそこにある EFI ファイルを起動する。ここでのパスの区切りはバックスラッシュっぽい。

FS0:\EFI\ubuntu\grubx64.efi

よくわからなければ FS0 を選択して EFI/ubuntu まで移動して grubx64.efi を実行する。cd では普通のスラッシュで移動できる。どっかのあれみたいだな…。

FS0:
cd EFI/ubuntu
grubx64.efi

「コマンドなんてわかんねーよクソッ!」みたいな場合は exitUEFI シェルを落として、CUI メニューにある Boot Maintenance Manager を開く。

f:id:mattintosh4:20180308230012p:plain

Boot From File を選択する。

f:id:mattintosh4:20180308225935p:plain

ボリュームラベル無しのパーティションを選択。

f:id:mattintosh4:20180308225910p:plain

EFI を選択。

f:id:mattintosh4:20180308225851p:plain

ubuntu を選択。

f:id:mattintosh4:20180308225740p:plain

grubx64.efi を選択。

f:id:mattintosh4:20180308225754p:plain

GRUB が起動するのであとはいつも通り。

f:id:mattintosh4:20180308225814p:plain

/boot/efi/EFI/ubuntu/grubx64.efi/boot/efi/EFI/boot/bootx64.efi にコピーしておけばいいっぽいけど、VirtualBox だけの問題なら別にいいか…。

Wine 3.0 版 EasyWine Nihonshu をプレリリースしました

Wine 3.0 がリリースされたので各種頒布物をビルドしました。

  • EasyWine-20180121_wine-3.0.dmg
  • MikuInstaller-Kai-Kit_wine-3.0.dmg
  • wine-3.0_nihonshu-20180121.tar.bz2
  • ws_wine-3.0_nihonshu-20180121.tar.7z

matome.naver.jp

パッチは 2.x 系からそのまま引き継いでいます。仕事が忙しくあまり時間がないため、細かい動作チェックしてませんので人柱版です。WINEPREFIX に重要なデータを入れている場合はバックアップを取っておいた方がいいかもしれません。

いつの間にか HKEY_CURRENT_USER\Software\Wine\Mac DriverRetinaMode という設定が増えてたので Retina 環境の方は設定してみるとより良い環境になるかもしれません。レジストリのプリセットは変更してないのでそのうち更新する予定です。

次の更新は夏予定。では。