HOME / コンピュータTips / Solaris / パッケージ作成用開発環境の作成(SFE)

Date: 2010/03/21 |  このエントリーをはてなブックマークに追加  |  Tags: Solaris, SFE, CBE, JDS

SVr4パッケージの標準開発環境(JDS CBE(OpenSolaris Desktop Common Build Environment))のビルドマシンの用意

※この環境はOpenSolarisのIPS用パッケージ制作環境(OSD-CBE)をベースにつくられています。通常のドキュメントは、Solaris10を中心に、OpenSolarisをベースとして書かれていますが、このドキュメントはOpenSoalrisをベースに、Solaris10の違いを敢えて記載してます。

そのため、特に差は無いとは思うのですが、このドキュメントはOpenSolaisの上のSolaris10 Branded Zoneの上で作ったものとなっています。

SVr4用のパッケージを作る標準環境SFEの為(独自のパッケージファイルでも、SFE用でも)に、仮想マシンであっても良いので、Zoneを1つ用意するのがよいでしょう。

HOMEディレクトリに様々なファイルを設置するために、既存のHOMEで利用するよりは、仮想マシン上のHOMEで作ることをおすすめします。

下記は、Build用のZoneを作成したことを前提に記載しています。

先に入れておくべきパッケージ

この辺はパッケージがあるので、純正の物を使う。

pfexec pkgadd -d . SUNWgpch SUNWgtar SUNWwgetu SUNWflexlex SUNWbison SUNWgmake SUNWgm4 

なお、後でファイルが無くなったときのために、CDROMの中の下記のディレクトリをすべてコピーしておくと良い。

/Solaris_10/Product/

ヘッダファイルやライブラリが足りない場合は、

egrep 'bin/stdio.h' /Solaris_10/Product/*/pkgmap

などをして、検索をする。

cswでインストールする

いくつかのファイルは、Solaris10にはないので、CSWの力を借りる。

wget -m http://dist.justplayer.com/csw/pkgutil_i386.pkg
pfexec pkgadd -d . pkgutil_i386.pkg
pfexec pkgutil -yi \
mercurial \
emacs

注意

cswのパッケージに対して「実行依存」することを行ってはいけない。

cswに依存する物を作る場合は、cswへのコントリビュートを考えた方がよい。

これは、実行依存が出来てしまう場合、実質的にレポジトリ間に依存が作られてしまうためである。

また、PATHを通してしまうと、何かの拍子に依存が作られてしまうおそれがあるので、PATHを通さず、利用するコマンドはaliasを設定したりする方が、無難。

オペレータユーザの作成

ZONE名s10cbe
オペレータユーザosduser
プロファイルPrimary Administrator,Software Installation
HOME/export/home/osduser
SHELL/bin/zsh
初期パスワードosduser
pfexec useradd -m -d /export/home/osduser -s /bin/zsh -P 'Primary Administrator,Software Installation' osduser
pfexec chown osduser:other /export/home/osduser
pfexec passwd osduser

zshは僕の趣味です

テスト

  1. osduser 権限でログインする
  2. pfexec cat /etc/shadowで表示することを確認する

既にあるユーザをオペレーションユーザにしたい場合

既にあるユーザを利用する場合、オペレーションユーザにPrimary Administratorの権限をつけておきます。この作業をした後は、シェルの再起動をする必要があります。

pfexec usermod -P 'Primary Administrator,Software Installation' ユーザ名

反映させるため、利用しているシェルの起動しなおしをします。

以後、上記で作成したユーザでコマンドを実行します。

コンパイラのインストール

コンパイラはStudio12u1をインストールします。

下記より、Studio12u1をダウンロードし、インストールします。

  • http://developers.sun.com/sunstudio/ja/downloads/thankyou.jsp

従来、SUN Studioは、/opt/SUNWsproにインストールされておりました。いくつかのソフトは自分がコンパイルされた環境を覚えており、拡張モジュールのコンパイルに自分と同じコンパイラを要求します。

Studio12u1は、/opt/sunstudio12.1にインストールします。そこで、下記の様にシンボリックリンクを張っておきます。

pfexec ln -s /opt/sunstudio12.1 /opt/SUNWspro

OSD CBE(OpenSolaris Desktop Common Build Environment)のインストール

OSD(OpenSolaris Desktop)CBE(Common Build Environment)は、昔、JDS(Java Desktop System)CBE(Common Build Environment)と言われておりました。所々でjdsという言葉が出てきますが、過渡的な物だと考えてください。

以後、オペレーションは、osduserでログインしておきます。

OpenSolarisでは、1.7.0-rc1以降を利用します。Solaris10では、おそらく1.6系がStableなのですが、OpenSolaris側となるべく共通にしたいので、1.7.0RC1を敢えて使います。

mkdir ~/tmp && cd ~/tmp
wget \
http://dlc.sun.com/osol/jds/downloads/cbe/test/desktop-cbe-1.7.0-rc1-x86.tar.bz2
gtar jxvf desktop-cbe-1.7.0-rc1-x86.tar.bz2
cd desktop-cbe-1.7.0-rc1
./cbe-install
Desktop Common Build Environment (CBE) Installer version 1.7.0-rc1
Using "pkg" packaging system
Checking for required packages...
All required packages are installed.
Starting from pkgbuild 1.1.0 (CBE 1.5) there is no system-wide
build directory (%_topdir), instead, each user has their own.
The default directory is $HOME/packages.
If you wish to use a different build directory, you can define it
in $HOME/.pkgbuildmacros as follows:

%_topdir /path/to/my/build/area

Would you like to do this now? [no]: 

ENTERを押す。

The default topdir (/export/home/osduser/packages) will be used
Locating compilers...
1 - GNU gcc 3.4.3 (3) in /usr/sfw/bin
2 - Sun Studio Express 5.10 (Ceres) in /opt/SUNWspro/bin
3 - Sun Studio Express 5.10 (Ceres) in /usr/bin
Would you like to configure more compilers for use with the Desktop CBE? [no]: 

ENTERを押す。

The following compilers were found on your system:
1 - GNU gcc 3.4.3 (3) in /usr/sfw/bin
2 - Sun Studio Express 5.10 (Ceres) in /opt/SUNWspro/bin
3 - Sun Studio Express 5.10 (Ceres) in /usr/bin
Please select the default compiler [3]: 3

コンパイラ(開発環境)は、gcc-dev、ss-dev(StudioExpress)、Studio12、StudioExpressなどが選べますが、ここで選んだもの以外でも、specファイル内で明記しておけば、利用は可能です。

OpenSolarisはON(OS+NET)がStudio12でコンパイルされているため、これを拡張するモジュール群はONと同じコンパイラを要求することがあります。トラブルを避けるためには、デフォルトをStudio12にしておくとよいのですが、12のインストールはちょっと面倒なので、ここでは簡単に利用出来る12u1を利用します。

The Desktop CBE includes tools for building GNOME, KDE and/or SFE packages
It also includes some optional tools. Please select the tools you wish
to install.
 
Would you like install the tools for GNOME? [yes]: 
Would you like install the tools for KDE? [yes]: 
Would you like install the tools for SFE? [yes]:

The following tools are optional: rsync cvs
Would you like install the optional tools? [yes]: 

このへんはひたすらENTERを連打。

Installing package SFpkgbuild

Installation of <SFpkgbuild> was successful.
Installing package CBEant

Installation of <CBEant> was successful.
Installing package CBEautoconf

Installation of <CBEautoconf> was successful.
Installing package CBEautomake

Installation of <CBEautomake> was successful.
Installing package CBEbison

Installation of <CBEbison> was successful.
Installing package CBEcmake

Installation of <CBEcmake> was successful.
Installing package CBEcoreutils

Installation of <CBEcoreutils> was successful.
Installing package CBEcvs

Installation of <CBEcvs> was successful.
Installing package CBEdiff

Installation of <CBEdiff> was successful.
Installing package CBEflex

Installation of <CBEflex> was successful.
Installing package CBEgettext

Installation of <CBEgettext> was successful.
Installing package CBEgawk

Installation of <CBEgawk> was successful.
Installing package CBEsed

Installation of <CBEsed> was successful.
Installing package CBElibtool

Installation of <CBElibtool> was successful.
Installing package CBEm4

Installation of <CBEm4> was successful.
Installing package CBEmake

Installation of <CBEmake> was successful.
Installing package CBErsync

Installation of <CBErsync> was successful.
Installing package CBEsvn

Installation of <CBEsvn> was successful.
Installing package CBEyasm

Installation of <CBEyasm> was successful.
Building CBEenv
INFO: Copying %use'd or %include'd spec files to SPECS directory
INFO: Processing spec files
INFO: Installing package CBEenv

Summary:

                         package |      status | details
---------------------------------+-------------+-------------------------------
                          CBEenv |   INSTALLED | 
CBE setup complete
Run
. /opt/dtbld/bin/env.sh [environment]
or
source /opt/dtbld/bin/env.csh [environment]
depending on your shell, to use this build environment.
You can also run /opt/dtbld/bin/env.sh [environment] to start subshell.
Installation log saved in /tmp/desktop-cbe-install-2010-03-21-17:42.log

pkgbuildのアップデート

ods-cbeに含まれているpkgbuildは古いため、最新版に入れ替えます。

1.3.1をアンインストール

pfexec pkgrm SFpkgbuild

最新版は、http://sourceforge.net/projects/pkgbuild/ からダウンロード出来ます。

  • http://pkgbuild.sourceforge.net/download.php

まずは、環境を適応

. /opt/dtbld/bin/env.sh
wget http://prdownloads.sourceforge.net/pkgbuild/pkgbuild-1.3.101.tar.bz2
gtar jxvf pkgbuild-1.3.101.tar.bz2
cd pkgbuild-1.3.101/
./configure --prefix=/usr
pfexec make install

aclocal周りの設定

dirlistへ追加

CBE m4関連のファイルが見つからないと、コンパイル時にACLOCALでエラーが出ることがあります。/opt/dtbld/share/aclocal/dirlistに、/opt/dtbld/share/aclocalがあるか、確認する必要があります。

正しい例( /opt/dtbld/share/aclocal/dirlist )

/usr/share/aclocal
/usr/sfw/share/aclocal
/opt/dtbld/share/aclocal

正しくなければ、追加します。

pfexec sh -c 'echo "/usr/sfw/share/aclocal\n/opt/dtbld/share/aclocal" >> /opt/dtbld/share/aclocal/dirlist'

ビルド用ユーザ環境の設定

cbe-setupによって、~osduser/packages/以下に、ワークディレクトリが作られているはずです。

packages/
|-- BUILD
|   `-- CBEenv-1.7.0-rc1
|-- PKGMAPS
|   |-- copyright
|   |-- depend
|   |   `-- CBEenv.depend
|   |-- pkginfo
|   |   |-- CBEenv-src.pkginfo
|   |   `-- CBEenv.pkginfo
|   |-- proto
|   |   |-- CBEenv-src.proto
|   |   `-- CBEenv.proto
|   `-- scripts
|       `-- CBEenv.preremove
|-- PKGS
|   `-- CBEenv
|       |-- install
|       |   |-- depend
|       |   `-- preremove
|       |-- pkginfo
|       |-- pkgmap
|       `-- reloc
|           `-- bin
|               |-- env.csh
|               |-- env.sh
|               |-- env_include.sh
|               |-- gendiff
|               `-- ld-wrapper
|-- SOURCES
|   |-- env.csh
|   |-- env.sh
|   |-- env_include.sh
|   |-- gendiff
|   `-- ld-wrapper
|-- SPECS
|   |-- CBE.inc
|   `-- default-depend.inc
`-- SPKGS
    `-- CBEenv-src
        |-- pkginfo
        |-- pkgmap
        `-- reloc
            `-- share
                `-- src
                    `-- CBEenv-1.7.0-rc1
                        |-- SOURCES
                        |   |-- env.csh
                        |   |-- env.sh
                        |   |-- env_include.sh
                        |   |-- gendiff
                        |   `-- ld-wrapper
                        `-- SPECS
                            |-- CBE.inc
                            |-- CBEenv.spec
                            `-- default-depend.inc

環境変数の設定

cbe-setupの最後に書かれているメッセージの通り、下記の通り設定すると、環境が読み込まれます。

sh系

. /opt/dtbld/bin/env.sh

csh系

source /opt/dtbld/bin/env.csh

osduserは、専用のユーザなので、/opt/dtbld/bin/env_include.shを投入しておきます。

echo . /opt/dtbld/bin/env_include.sh >> ~/.zshrc
echo init_dt_cbe  >> ~/.zshrc

私が配布しているVirtualBox環境では、.zshrcに(私の用の)小細工をしてあります :)

workディレクトリの作成

適当に掘っておきます。

mkdir ~/work/

サンプルのspecの取得

サンプルのspecファイルを取得します。

spec-filesのincludeファイルと、いろいろなincludeファイルを取得します。下記の例ではtrunkを引っ張ってきます。

ダウンロード(レポジトリから取得なので多少時間はかかります)

cd ~/work/
svn co svn+ssh://anon@svn.opensolaris.org/svn/jds/spec-files/trunk spec-files

gnomeなどのbuild環境が必要であるならば、下記を参照してください。

  • http://hub.opensolaris.org/bin/view/Project+jds/building
    • 4. OSD Build Sources

特別gnome系のソースがいらない場合は、この中にある基本的なspecファイル用のincludeファイルがあります。これをコピーします。

cp ~/work/spec-files/include/*.inc ~/packages/SPECS/

参考サイト

  • http://blogs.sun.com/mattman/entry/how_to_build_jds_on
  • http://opensolaris.org/os/project/jds/contributing/building/

パッケージ作成用開発環境の作成(SFE)

  • 記事が0件です

コンピュータTips/Solaris

Recent Updates

ディスクの不良を確認する(iostat -EnのError等)

ディスク関係のスタックをざっくり書くと次の様になっています 例、SAS Expanderを使う場合、 例、AHCIなどを使う場合、 これらのエラーは、次の様なコマンドで知ることができます。 出力結果例 このなかで、 たとえば、SATAディスクを利用している際に負荷が上がってしまい、ディスクの応答が間に合わないシチュエーションでは、Transport Errorが一気に …
»続きを読む

2017年、新年明けまして、おめでとうございます。

日記/2017年、新年明けまして、おめでとうございます。

新年明けまして、おめでとうございます。今年もよろしくお願いします。 昨年中は、皆様にお世話になりました。 昨年は、コツコツと3年程前から行ってきた改革がある程度完成された年で、この先5年、10年を見据えて、次のフェーズへと進む為の土台が完成した年でもありました。 それにキャッチアップする形で、個々の従業員一同が、役割を自覚し、明確に動けた年であったかと考えています。 …
»続きを読む

RSA鍵認証のみにし、Password認証を無効化する

意外に覚えきれなくて、いつも忘れるので、メモついでに残しておきます。 古いOpenSSHや、SunSSHの場合は、これも無効にします。 ユーザ目線でのザックリとした説明を。OpenSSHではなく別のSSH実装も含めて考えているので、OpenSSHのソースをじっくり読んだわけではないため、間違ってたらすみません。 まず、Password認証を無効にする場合、 PasswordAut …
»続きを読む

Nexus7 2013をMarshmallow(Android 6.0)化

OTAでない方法で。 だいたい ここに書いてある方法 なんだけど、adbなどが一式使えている状態で。 まずは自分の機種のものをダウンロードする。僕のは、 Android 6.0 Marshmallow for Nexus 7 2013 Wi-Fi 。tgzを展開し、zipも解いておく。 まずはboot loaderへ。 bootloader自体のアップデート。一式、updat …
»続きを読む

OS X 10.11 El Capitanで、phpのモジュールインストール

Yosemiteからのアップデートは割と簡単です。なぜならYosemite時に、すでにapache 2.4になり、php 5.5になっているから(笑 アップデート前に、まずはphp.iniとhttpd.confをバックアップしておきましょう きになるなら、hostsとかapache以下全てをバックアップしておいてもいいかも。 後はEl Capitanにアップデートする。 アッ …
»続きを読む

EasyAcc Powerbank PB4000CB

スマフォTips/モバイルバッテリー/モバイルバッテリー製品レビュー/EasyAcc Powerbank PB4000CB

薄型のモバイルバッテリーEasyAcc Powerbank PB4000CBです。 今や、モバイルバッテリーは大型のものが好まれるのか、隙間無く商品があります。20,000mAh越えで、「でけえ!」とか言ってますけど、大きいのを探せば、100Wh(27,000mAh)、200Wh当たり前、探せば500Wh(135,000mAh)とか、もっともっとあるのです。用途がどんどん異なっていくので …
»続きを読む

EC Technology Sports Headsets S10-JWH07B

デバイスTips/Bluetooth/EC Technology Sports Headsets S10-JWH07B

Bluetoothのスポーツヘッドセット、 S10-JWH07B について。 今までブログに記載することはなかったのですが、実は割とBluetoothと言うか無線型のヘッドフォンを沢山持っています。赤外線や独自物、Bluetoothなどいくつもストックを持っていたりします。普通の人からするとマニアです。でも、マニアからみるとそうでもないレベルです。 ただ「ヘッドフォンの音質」というの …
»続きを読む

静岡県内をVPNでつなぐ(割と特殊な例)

静岡というのはある意味特殊な土地で、ほとんどのインターネットプロバイダのPOIは静岡でつながれておらず、NTT西圏内のどこかで繋がっているので、大抵大阪折り返しになる。仮に静岡県内にPOIがあっても、だいたい静岡でルーティングしてないので、やっぱり東京折り返しになってたりする。例え 同じプロバイダを使っていたとしても 。 だから静岡←→静岡のVPNは、静岡←→東京や、静岡←→大阪よりも遅 …
»続きを読む

最新  |  << 前ページ  |  次ページ >>  |  最初