あれこれ備忘録@はてなブログ

勉強したことやニュースや出来事を備忘録として書いていきます

このブログには広告が含まれます

Puppy Linuxを自動で作ることができるスクリプトmakepupを試してみたが・・・

Puppy Linux Discussion Forum :: View topic - Auto-build woof-CE Pup using single script with optional gui

最近、話題らしく、日本でも幾つかのブログで取り上げられている。

流行に乗るのも悪くは無いが、個人的には公式サイトなどで配布されているPuppy Linuxを使うほうが良いと思う。

特に古いマシンの場合には、多くのマシンに対応できるように考えられて作られている。

素人が適当に作ったものよりも遥かに使いやすいはずだ。

また、不具合が出た場合にそれが各バージョンのPuppy Linuxに特有のものなのか、自分でビルドしたものが良くなかったのか分からない可能性も高い。

さらには多くの対処法や、有志の人が作ってくれたpetパッケージは、公式で配布されているPuppy Linuxカーネルやライブラリを前提にしている。

同じカーネルやライブラリであるから対処できる方法があり、動作するアプリケーション、ライブラリのパッケージがあるわけで、独自ビルドではうまくいかない可能性がある。

自分で対処できるスキルが無いなら、やめておいたほうが良いと思う。

では、何故、今回使ってみる気になったかというと、新しいPCで使えるPuppy Linuxを作るためである。

arekorebibouroku.hateblo.jp

2,3年前のIntel CPU搭載のマシンでも古いバージョンのPuppy Linuxでは動かない。

成熟し安定動作が期待でき、不具合があっても対処法が既にネットに情報提供されているTahrPupも動かないのである。

まだTest版という位置付けであるXenialPupなら、不安定ながらも動くという具合だ。

問題の核心はカーネルが古いというところにあるらしい。

なので、今回、紹介しているmakepupというスクリプトで指定できるカーネルを新しいものにすれば、新しいマシンでも動作するPuppy Linuxができる可能性が高くなる。


このスクリプトを動かすには大前提として

になるだろうか。

最初、Puppy Linuxでしか使えないことを知らなくてUbuntuで試していた。

Puppy Linuxが動かないマシンのためのPuppy Linuxを作りたいのに、スクリプトを使うためにPuppy Linuxが必要だというのはちょっと納得がいかないというか残念だ。

文句を言っても仕方ないので、Puppy Linuxが入った別のマシンで作ることにした。

上のサイトでmakepup.tarをダウンロードして、適当な名前のディレクトリを作り、そこへmakepup.tarをコピーする。

tarという拡張子は掲示板にアップデートするためのダミーなので、これを削除する。

chmod +x makepup

として実行可能にする。

ファイルマネージャの「パーミッション」で変更しても良い。

./makepup -h

でコマンドオプションを確認できる。

--target: 1 is arm, 2 is x86, 3 is x86_64

--distro: 1 is debian, 2 is devuan, 3 is slackware, 4 is trisquel, 5 is ubuntu

--release
Debian:  1 is Stretch
Devuan: 1 is ascii
Slacko:   1 is 14.0, 2 is 14.1, 3 is 14.2
Trisquel: 1 is belenos
Ubuntu:  1 is trusty, 2 is xenial

--KERNEL: # as offered during slackware-based build
1 huge-3.0.103-tahr_noPAE_retro.tar.bz2
2 huge-3.12.21-slacko4G-i686.tar.bz2
3 huge-3.12.22-tahr-PAE-i686.tar.bz2
4 huge-3.14.20-tahr_PAE.tar.bz2
5 huge-3.14.20-tahr_noPAE.tar.bz2
6 huge-3.14.54-slacko32_noPAE.tar.bz2
7 huge-3.14.54-tahr_64.tar.bz2
8 huge-3.14.55-slacko_noPAE.tar.bz2
9 huge-3.14.56-tahr_PAE.tar.bz2
10 huge-3.14.56-tahr_noPae.tar.bz2
11 huge-3.14.79-tahr64.tar.bz2
12 huge-3.14.79-tahr_noPAE.tar.bz2
13 huge-3.16.43-s32-700.tar.bz2
14 huge-3.16.43-s64-700.tar.bz2
15 huge-3.18.22-slacko64.tar.bz2
16 huge-3.18.22-slacko_noPAE.tar.bz2
17 huge-3.4.103-tahr_nopae.tar.bz2
18 huge-3.4.94-slacko4G2-i686.tar.bz2
19 huge-4.1.11-slacko64_2.tar.bz2
20 huge-4.1.11-slacko_PAE.tar.bz2
21 huge-4.1.11-tahr64_2.tar.bz2
22 huge-4.1.30-xenial_PAE.tar.bz2
23 huge-4.2.5-slacko64.tar.bz2
24 huge-4.4.70-s32-700_PAE.tar.bz2
25 huge-4.4.70-s64-700.tar.bz2
26 huge-4.9.13-xenial_noPAE.tar.bz2
27 huge-4.9.13-xenialpup64.tar.bz2
28 huge-4.9.15-xenialpup64.tar.bz2
29 huge-4.9.30-s64-700.tar.bz2  

が使えるそうだ。

何も指定せずに

./makepup

とすると

./makepup -t 2 -d 3 -K 24

としたことになる。

./makepup –target 2 –distro 3 –KERNEL 24

と同じだ。

これはx86 32bit用で、ベースとなるディストリビューションSlackwareカーネルはhuge-4.4.70-s32-700_PAE.tar.bz2が使われるということだ。

--release 3

が省略されている。

今回、自分のマシンで使うために以下のオプションを指定して策せしてみた。

./makepup -t 3 -d 5 -r 2 -K 28 -D

64bit CPU用で、Ubuntuベース、リリースバージョンはXenial、カーネルはhuge-4.9.15-xenialpup64.tar.bz2を使うということだ。

「-D」オプションはプログラムをビルドしたりするときに使う開発者用のDEVXパッケージも一緒に作るということである。

2回警告文が出るがどちらも「y」と入力してエンターする。

マシンの性能にもよるだろうが、1時間以上は待たなければいけないだろう。

完成すると、以下のディレクトリにisoファイルができる。

woof-out_<main_distro_name>/woof-output-<derived_distro_name>

前述のコマンドラインオプションで実行すると

woof-out_x86_64_x86_64_ubuntu_xenial64/woof-output-xenialpup64-7.0.8.4

になった。

ちょっと待て。

今、Test版で公開されているXenialPupは7.0.8.5だ。

今回できたのはそれよりも古いのか?

気になったので、makepupを実行したPuppy Linux、XenialPup64 7.0.8.5で

uname -r

を確認してみた。

4.9.15

だった。

これはオプションで指定したカーネルのバージョンと同じだ。

う〜ん。

作る意味が無かったということだな・・・。

あとで動くかどうか確認するが、あまり意味は無さそうだ。

本当にマシンに合わせた独自のPuppy Linuxイメージを作ろうと思ったら、woof-CEの使い方をちゃんと覚える必要があるということだ。

実際は「-p」オプションがあり、処理の途中でポーズして、パッケージやリポジトリを変更できるらしいが、それをする知識があればwoof-CEで作る方が良いのではないかとも思う。

よほどの理由が無い限り、もう自動化スクリプトを使うことはないだろう。

一応、起動はできた。

f:id:t_massann:20170902151919j:plain

これがデスクトップ。

見た目が違うが一応、JWMらしい。

前にフォーラムで手に入れた日本語化+MozcのSFSパッケージを読み込んで日本語化。

出ているダイアログはPaleMoonのアップデートしているところ。

PaleMoonは起動したが、FirefoxChromiumはいろいろライブラリが足りないようだ。

また、やっぱり何かの拍子に動作が不安定になり、最悪の場合、フリーズする。

さらに配布されているものよりもメモリの消費量が大きい。

足りないライブラリをインストールするとメモリもファイルサイズも増加する。

4GBや8GB、場合によってはそれ以上のメモリを搭載しているPCもある中でメモリの消費量はそれほど大きな差があるとは言えなくなってきてはいる。

また、pfix=nocopyでsfsファイルを事前にメモリに読み込まないようにすることもできる。

初期の空きメモリは大きくなるが、メモリに主要ファイル群が読み込まれることによる高速化が期待できなくなる。

HDDやSSDの高速化によって昔ほど遅くなくなっているから使うアプリに使用するメモリの分を空けておきたい人には便利かもしれない。

ChromeChromiumは消費メモリが大きいからだ。

それはともかく個人で作るよりも、公式として配布用に作られているものはちゃんとそういうところが最適化されているのだ。

また、上に書いてある通り、いくつかの限られた選択肢から選ぶようになっており、大体の骨組みは決まっている。

ということは単純な自動スクリプトまかせなら、誰が作っても同じものができるわけで個人で作るメリットはない。

素人がイメージを自分で作るメリットはあまりないのではないだろうか?

何だったら、公式のPuppyを下地に必要なものをインストールし、いらないものをアンインストールし、日本語などの設定をしたものでSFSイメージを作るリマスタ機能もあるのだから、それを使えば良い。

比較的新しいマシン用のPuppyが出てくるまで待つしかないらしい。

Slackoとかならうまく動くのだろうか・・・。

LubuntuよりもPuppy Linuxの方が全体的に軽くて3D描画速度も良いので魅力的なのだが不安定では困る。