つい見逃してしまいそうな日々の生活の中の出来事から、何となく奇妙とか変とか思ったことを考え呟いています。



スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【--/--/-- --:--】 スポンサー広告 | TRACKBACK(-) | COMMENT(-) |

今更Solaris10
ということで、仕事でSolaris10を扱うことになりましたので、
(あくまでも私がどう思うかなので私が・^^)奇妙と思ったことをメモ。

きっかけは、今まで客先案件で稼動していて今はお役ごめんになった
SunFireV100を会社のwebサーバにせよ、とのお達しがあったこと。
「システムは任す!」とのことなので、
「ホントに?ホントに私に任していいんですね?(にやり)」
「(おびえながら…)い・いいです。」

ということで、せっかくなのでSolaris10で動かすことにして、
実はwebサーバとしては既に今は元気にデータセンターの
19インチラックに添えつけられて、24時間休むことなく
業務に励んでいる『太陽炎ヴイ百』なのでした。

概要は、
Solaris10
Apache2
  (レンタルサーバ的な需要も将来あるかもということで
   名前ベースのバーチャルホスト仕立て)
#もちろん、デフォルト仮想ホストは会社ドメインにしています

Open-SSL
  (個人情報を扱うhttps通信もあるもんで)

その他、それらを導入するためにインストールしたソフトは(gccなど)幾多

Solaris10のmakeではまりやすいと思ったのが、
標準のCヘッダファイル(*.h)ではgccが落ちること。
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/install-tools
配下の
mkheaders.conf
の一行目に『SHELL=/bin/sh』を追記して
同ディレクトリのmkheadersを実行せよ、とのことらしい。

そうしないと多くのmakeで以下の様なエラーが出てmakeが止まります。

/usr/include/sys/siginfo.h:259: error: parse error before "ctid_t"
/usr/include/sys/siginfo.h:292: error: parse error before '}' token
/usr/include/sys/siginfo.h:294: error: parse error before '}' token
/usr/include/sys/siginfo.h:390: error: parse error before "ctid_t"
/usr/include/sys/siginfo.h:392: error: conflicting types for `__proc'
/usr/include/sys/siginfo.h:261: error: previous declaration of `__proc'
/usr/include/sys/siginfo.h:398: error: conflicting types for `__fault'
/usr/include/sys/siginfo.h:267: error: previous declaration of `__fault'
/usr/include/sys/siginfo.h:404: error: conflicting types for `__file'
/usr/include/sys/siginfo.h:273: error: previous declaration of `__file'
/usr/include/sys/siginfo.h:420: error: conflicting types for `__prof'
/usr/include/sys/siginfo.h:287: error: previous declaration of `__prof'
/usr/include/sys/siginfo.h:424: error: conflicting types for `__rctl'
/usr/include/sys/siginfo.h:291: error: previous declaration of `__rctl'
/usr/include/sys/siginfo.h:426: error: parse error before '}' token
/usr/include/sys/siginfo.h:428: error: parse error before '}' token
/usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"
/usr/include/sys/siginfo.h:437: error: parse error before '}' token
In file included from /usr/include/signal.h:26,

Solaris10になって、推奨パッチが無償でなくなったのは痛いけど、
inetなどのサービスがsvcadmで一元的に管理できる様になったのは、
ネットでは賛否両論の様ですが、
インストール作業と運用では凄く楽になった感じがする。
restartもrefreshもstartもstopも、kill -HUPや/etc/init.dは
私は面倒ちかったし、
reboot時の自動起動までしのごのと/etc/rc2.dなんかのファイルを
mvしまくるのも面倒でしたよん。
永遠に止めたいサービスも、
svcadm disableでサクっと止まってくれるのは楽チンだと思いました。

今日はこんなところで…。^^
スポンサーサイト

【2006/02/08 19:22】 Solaris | TRACKBACK(0) | COMMENT(9) |

この記事に対するコメント
makeの件、助かりました~!!。
そして女性のブログだったのでビックリ。
【2006/04/18 17:50】 URL | kazu #-[ 編集]

mkheadersをやっとかないとsignal関係の
ヘッダファイルでエラーが出まくるって、
知ってないと焦りますよね。^^;
最初私は標準ヘッダファイルをデバッグしようと
決意しました、マジ。(笑)
#gnuもどうしてこんな仕様にしたんでしょうね?

今のご時世、c言語もsolarisもこの業界では
マイノリティになっちゃいましたけれども、
それだけにネットでも少なくなっちゃった情報は
ぜひに共有したいですよね。^^
【2006/04/18 19:20】 URL | Ayaka #aPzWC/ww[ 編集]

はじめまして。自分も初心者ですが、Solaris10(SPARCx64bit)で社内Webサーバを立ち上げようとしているモノです。。

makeエラーについてgoogleったところ、こちらに行き着きました。

自分も同様のエラーに苦しんでおり、mkheaders.conf
の一行目に『SHELL=/bin/sh』
を追記してみたのですが、やはり同じエラーが出てしまいます。


mkheaders.conf の中身
--------------------------------------------
SHELL=/bin/sh
SYSTEM_HEADER_DIR="/usr/include"
OTHER_FIXINCLUDES_DIRS=""
FIXPROTO_DEFINES=""
STMP_FIXPROTO="stmp-fixproto"
STMP_FIXINC="stmp-fixinc"
---------------------------------------------
現段階はといいますと、apacheやMySQLインストール以前の開発環境整備中です。
make-3.80を
pkgのmake3.80とpkgのgcc3.3.2で
configure→makeしたところで同様のエラーが出てしまいます。

何か良い情報やサイトや本をご存知でしたら、ご教授ください。m(_ _)m

【2006/05/06 09:53】 URL | saburo #-[ 編集]

同様のエラーがでるという投稿をしたのですが、
反映されないので、不思議に思って、テスト的に
再投稿・・・。「管理者にだけ表示を許可する」にチェックはいれてなかったのですが。

たびたびの投稿ですみません。。
【2006/05/06 09:58】 URL | saburo #-[ 編集]

>>saburoさま
投稿では混乱させてしまった様ですみません。
コメントやTBはスパムや荒らし投稿への対策として、
投稿メッセージがブログに反映するのは
管理人が承認した時に行われる仕様に
しているんです。^^;

mkheaders.confを編集した後、
同ディレクトリに置いてあるmkheadersは
実行されましたか?

一応、こちらのmkheadersのリストを
下に貼り付けておきますので参考にして下さいね。

#!/bin/sh

# Copyright (C) 2002 Free Software Foundation, Inc.

#This file is part of GCC.

#GCC is free software; you can redistribute it and/or modify it under
#the terms of the GNU General Public License as published by the Free
#Software Foundation; either version 2, or (at your option) any later
#version.

#GCC is distributed in the hope that it will be useful, but WITHOUT
#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
#FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
#for more details.

#You should have received a copy of the GNU General Public License
#along with GCC; see the file COPYING. If not, write to the Free
#Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#02111-1307, USA.

# Basic information
target=sparc-sun-solaris2.10
target_alias=sparc-sun-solaris2.10
version=3.3.2

VERBOSE=0
while [ x$1 = x-v ] ; do
shift
VERBOSE=`expr $VERBOSE + 1`
done
export VERBOSE

if [ x$1 = x--help ] ; then
echo "Usage: mkheaders [options] [prefix]"
echo "Options:"
echo " -v Print more output (may be repeated for even more output)"
echo " --help This help"
echo " --version Print version information"
exit 0
fi

if [ x$1 = x--version ] ; then
echo "mkheaders (GCC) version $version"
echo "Copyright 2002 Free Software Foundation, Inc."
echo "This program is free software; you may redistribute it under the"
echo "terms of the GNU General Public License. This program has"
echo "absolutely no warranty."
exit 0
fi

# Common prefix for installation directories.
if [ x$1 != x ] ; then
prefix=$1
else
prefix=/usr/local
fi
# Directory in which to put localized header files. On the systems with
# gcc as the native cc, `local_prefix' may not be `prefix' which is
# `/usr'.
# NOTE: local_prefix *should not* default from prefix.
local_prefix=/usr/local
# Directory in which to put host dependent programs and libraries
exec_prefix=${prefix}
# Directory in which to put the directories used by the compiler.
libdir=${exec_prefix}/lib
# Directory in which the compiler finds executables, libraries, etc.
libsubdir=${libdir}/gcc-lib/${target_alias}/${version}
# Since gcc_tooldir does not exist at build-time, use -B${build_tooldir}/bin/
build_tooldir=${exec_prefix}/${target_alias}
# Directory to search for site-specific includes.
local_includedir=${local_prefix}/include
includedir=${prefix}/include

itoolsdir=${libsubdir}/install-tools
incdir=${libsubdir}/include

. ${itoolsdir}/mkheaders.conf

cd ${itoolsdir}
rm -rf ${incdir}/*

if [ x${STMP_FIXINC} != x ] ; then
TARGET_MACHINE="${target}" target_canonical="${target}" \
${SHELL} ./fixinc.sh ${incdir} \
${SYSTEM_HEADER_DIR} ${OTHER_FIXINCLUDES_DIRS}
rm -f ${incdir}/syslimits.h
if [ -f ${incdir}/limits.h ]; then
mv ${incdir}/limits.h ${incdir}/syslimits.h
else
cp gsyslimits.h ${incdir}/syslimits.h
fi
fi

cp include/* ${incdir}

if [ x${STMP_FIXPROTO} != x ] ; then
mkinstalldirs="${SHELL} ${itoolsdir}/mkinstalldirs"
export FIXPROTO_DEFINES mkinstalldirs
${SHELL} fixproto ${incdir} ${incdir} ${SYSTEM_HEADER_DIR} || exit 1
fi
【2006/05/07 04:00】 URL | Ayaka #aPzWC/ww[ 編集]

Ayaka さん、
恥ずかしながら、ご指摘どおりmkheadersを実行してませんでした。
実行したら、うまく行きました。
本当にありがとうございました。大変助かりました。Ayakaさん最高です!!
こーゆーのってどうやって気づくんですか?
開発環境整備のトラブルシューティングっていうのは、千差万別なのでそれ専門の本とかもなさそうですしね・・・・やっぱひたすら検索なんすかね??何か良い情報サイトや書籍などをご存知でしたら、教えてください。。

ありがとうございました。
また、ちょくちょく拝見させていただきます!
【2006/05/07 21:55】 URL | saburo #-[ 編集]

解決できてよかったですねー。^^

この様な廃墟の様なブログでも、
世間様のお役に立てるなんて私も嬉しいですよ。w

情報源は、私は99%はネットから仕入れてますよ。
コツは、一般的なところしか言えないんですが、
日本語のサイトは情報が遅かったり
正確で無かったりすることが多いので、
米国人IT技術者の運営する英語サイトからの
情報収集がお勧めです。
対応を箇条書きにしてくれてるところであれば、
英語の苦手な人でも何とか手順は判ると
思いますよ。

私も日々是精進ですので、
これからもお互いに頑張りましょうね♪
【2006/05/08 02:23】 URL | Ayaka #aPzWC/ww[ 編集]

ご丁寧な回答ありがとうございますm(_ _)m

やっぱ英語ですかぁ~

前向きにがんばります!

Ayakaさんのブログを見た後で、改めて
http://www.sunfreeware.com
を見てみると、ちゃんと書いてましたね f(^^;)

【2006/05/09 03:22】 URL | saburo #-[ 編集]

私は英語はどっちかというと苦手なんですよ。ホントは。^^;

だけど英語サイトを避けてると必要な情報には
なかなか辿り着けないですよね。

もちろん、それぞれの英語のスキルにも
よるんでしょうけれども、
私は英語を読み込んで意味から理解するのは
苦手で、まずは具体的な手順から入りたいんですよ。
だから、次々にサイトを訪れては具体的な
手順を判りやすそうに書いてくれてるサイトを
見つけるやり方です。

問題の解法のコマンドベースの手順と、
その簡単な解説がコマンド毎に書いてある
感じのサイトを見つけると嬉しいです。^^
【2006/05/09 17:37】 URL | Ayaka #aPzWC/ww[ 編集]


この記事に対するコメントの投稿











管理者にだけ表示を許可する


この記事に対するトラックバック


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。