苦悶に満ちて溢れ出した Boxen のお話 (Winter ver.) - 弐
前エントリーの続き。
- Puppet でシンボリックリンクを作れる。
- Puppet での変数のお作法、
$...
と"${...}"
表記スタイルと使い分け。 - Boxen がデフォルトで提供(定義)するモジュールのバージョンを別のものにする。
- Boxen の puppet あるけど
Package
リソースタイプ使ってインストール。 Package
リソースタイプ使ってのインストール、"No such file or directory" ?Package
リソースタイプ使ってのインストール、それのprovider
はappdmg
。- Rsync は 3 を使いたくてやったこと。
- Ricty も Boxen の中で全部やってしまいたくてやったこと。
今回は、上から 3 つめから。
何か、自分以外の誰にも役に立たないような内容ばかりだなwww 今更だけど。(発作)
Boxen がデフォルトで提供(定義)するモジュールのバージョンを別のものにする
以下のようなエラー.
/opt/boxen/repo% script/boxen --no-fde Could not resolve the dependencies. Can't run Puppet, fetching dependencies with librarian failed.
これについての結末は、
Puppetfile*1 で、モジュールを重複して定義していた、と言う実にくだらないミス。
とは言え、タイトルにあるよう、
基本的な開発環境として boxen 側がデフォルトで提供するモジュールではあるけれど、それとは異なるバージョンを入れたい、と言うケースについてのメモとして残しておくことに。
で以下詳細。
キッカケとしては、
go 言語の puppet が在るのを見つけて、ちょっとした好奇心からインストールしておこうと、Puppetfile*2 に github "go", "2.0.1"
と付け足したのですが、実はその上の方で "Core modules" のひとつとして既に go は定義されてたりする。
そしてさらに、puppet-go の使い方見たら、version を指定できるらしく、せっかくだから新しい version を入れておこう、と。
個人用 pp ファイルに go::version { '<version>': }
を挿し込む。
ところで、our-boxen の Puppetfile 側で定義されている release 番号と言うか tag の値を見てみると "1.0.0" なんだけど、puppet-go 自身の方の最新は現時点 "2.0.1" となっている。
どういうことなんだろうか...
Boxen に puppet 在るけれど、Package タイプでのインストールしようと思ったケース
Gimp を入れたい、と考えていた。
勿論 boxen 自身にも Gimp の puppet はあるのですが、なぜそれを使わないと判断し、そして Package リソースタイプ使ってインストールした、と言うことを残しておきたくメモ。
在るにも関わらず、なぜ puppet-gimp を使わないか。
その理由は、ここでは Simone さんの gimp*3を使いたいから。
さらに、その理由は、となるとこういうこと。
多数のプラグインにくわえ日本語リソースも収録されているため、メニューなどが日本語で表示できるからだ。
まぁ、この記事見た時から随分経ってるので、問題や差分は解決されてるかもしれませんが...
で。
boxen の puppet が連れてきてくれて来てくれる gimp と言うのは、どうも、と言うかやっぱり gimp 公式に置いてあるヤツのご様子。
そう言ったキッカケで、gimp については boxen の puppet ではなく、Package
リソースタイプを使ってインストールすることに。*4
サイトより、リンクのアドレスを頂いて、個人用 pp ファイル *5 に記載。;
package { 'Gimp': source => "http://sourceforge.net/projects/gimponosx/files/GIMP%20Mavericks/Gimp-2.8.10p2-Mavericks.dmg/download", provider => pkgdmg; }
Package タイプでのインストール、"No such file or directory" エラー
ところがエラーを吐く。
: *省略* Error: Could not set 'present' on ensure: No such file or directory - http://sourceforge.net/projects/gimponosx/files/GIMP%20Mountain%20Lion/Gimp-2.8.6p1-MountainLion.dmg at 75:/opt/boxen/repo/modules/people/manifests/mygithubname.pp Wrapped exception: No such file or directory - http://sourceforge.net/projects/gimponosx/files/GIMP%20Mountain%20Lion/Gimp-2.8.6p1-MountainLion.dmg Error: /Stage[main]/People::Woowee/Package[Gimp]/ensure: change from absent to present failed: Could not set 'present' on ensure: No such file or directory - http://sourceforge.net/projects/gimponosx/files/GIMP%20Mountain%20Lion/Gimp-2.8.6p1-MountainLion.dmg at 75:/opt/boxen/repo/modules/people/manifests/mygithubname.pp : *省略*
そんなファイルがない、って?
試しにブラウザでアドレス直入力するとちゃんとダウンロードされる、のに url 間違ってる? ファイルない?
この原因。 これもまた、まぁそれはツマラナイ話だったりする。
url。
url 内の %20
。
フツーに url が悪い、と言うオチ。もー自分にウンザリ。
それは特に何らかの論理的なストーリーあっての事ではなく「実は何となく気になっていて...」を、しょうがなく、もしかして、で実際行動を起こしてみたら、それだった、と言う、これまたテイタラク。
スペースは、url のエンコーディング の中で %20
に符号化される。
と言う事で、source 属性に指定している url の %20
を半角スペースにしておく、ということでした。(白目)
基本的な話で誠にお恥ずかしい限り。
Package
タイプでのインストール、provider
属性には "pkgdmg" だけでなく "appdmg" もある
別件で調べていたら、気になる記載が目につく。
どうやらpkgdmgはDMGの中に.pkgのインストーラが含まれている場合に指定するもので、DMGの中に.appで格納されていて、アプリケーションフォルダにコピーしてインストールする形式のものはappdmgを指定するらしいということ ...
どうりでインストールされてないわけです。
と言う事で。
package { 'Gimp': source => "http://sourceforge.net/projects/gimponosx/files/GIMP Mountain Lion/Gimp-2.8.6p1-MountainLion.dmg", provider => appdmg; }
Gimp ひとつ、インストールするのに、トラップ 3 つ... 情けない orz
今日も、ここで終わりにします。
何か、思い出しただけで疲れたw...はいおしまい。