メランジ雑記帳

2010年3月25日

vista(ultimate) x86 ->windows 7(ultimate) x86の移行

カテゴリー: windows 7 — admin @ 11:39 AM

ここ2ヶ月ほど考えてきたことであるが、vistaはやはり遅い。sun のvirtual boxやsony のp styleにはwindows 7 をインストールしてその速さを実感していたので諸事情が許せば、移行すべきなのではというふうに考えていた。

昨日、エイヤーっと、実施した。動作しているVISTAにwindows 7のDVDを挿入した。自動的にインストラーが立ち上がり、アップグレードにするか、あるいは新規インストールにするかを選択させられる。ここでアップグレードを選択した。待つこと約5時間(このマシーンはそれほど遅くはないのであるが)、アップグレードは終了した。最後にキーを入れてOK。ドメイン認証もOK。

このマシーンの場合は、数時間アイドルにしていると、スタンバイになるのだが、それからの回復が早い。
コンパイラーはまだ2005を利用してるのだが、2008に移行しようかとも考えている。

PS: その後でやはりultimate版を別の機械に導入した。この時の所要時間は1時間45分ほどであった。しかも効果はかなりあった。サービスプログラムと一般プログラムでメモリー共有ができなくて、設計を修正したりしたことがあったが、VISTA系列、西田さんにいわせるとWindows Server 2003系列というべきか、は本当はよいOSであるのかもしれない。

2010年3月16日

jdk1.6のコンパイル

カテゴリー: JDKの研究 — admin @ 3:27 PM

fedora12でjdk1.6.0_18のコンパイルをおこなった。

jdk1.6.0_18のビルドをする。仕事である。

jar -jar jdk-6u18-fcs-src-b07-jrl-17_dec_2009.jar
jar -jar jdk-6u18-fcs-bin-b07-jrl-17_dec_2009.jar
jar -jar jdk-6u18-fcs-mozilla_headers-b07-unix-17_dec_2009.jar

で必要なものを展開しておく。(簡単なインストーラになっている)

その他にgcc 2.95.3のソースtar、
openmotif 2.1とそのdevelop用tarをダウンロードした。

(1)gcc2.9のインストール
mozilla用plugin作成(しなくても必要というバグ)のために必要だとあった。
まず、gcc 2.95.3をコンパイルする。これはそれほど苦労しない。gcc 2.95.1はかなりダメで
エラーがたくさんでた。
./configure –enable-languages=c,c++ –prefix=${HOME}/gcc2 –host=i686-pc-linux-gnu –target=i686-pc-linux-gnu
でconfigureする。
このgcc2というディレクトリはあらかじめ作成しておいた。

その後、makeでエラーがでたが、無視。make installで${HOME}/gcc2にインストール。

(2)awtのためにmotifをインストール(システムディレクトリでない場所に)
motif(openmotif-2.1.30-linux-i386.tgz)のtarを展開する。相対でusr/X11R6/などというディレクトリが作成され、以下のようになった。
.

├── X11R6
│ ├── bin
│ ├── include
│ │ ├── Mrm
│ │ ├── Xm
│ │ ├── bitmaps
│ │ └── uil
│ ├── lib
│ │ └── X11
│ │ ├── app-defaults
│ │ └── uid
│ │ ├── C
│ │ │ └── uid
│ │ ├── english
│ │ │ └── uid
│ │ ├── french
│ │ │ └── uid
│ │ ├── hebrew
│ │ │ └── uid
│ │ ├── japanese
│ │ │ └── uid
│ │ └── swedish
│ │ └── uid

cd ${HOME]/src/
tar xvf openmotif-2.1.30-linux-i386.tgz
mkdir motif
mv usr motif
mkdir include
mkdir lib
ln -s ${HOME}/src/motif/usr/X11R6/include/Xm ${HOME}/src/motif/include/Xm
ln -s ${HOME}/src/motif/usr/X11R6/lib/libXm.a ${HOME}/src/motif/lib/libXm.a

(3) CUPSのインストール
java printのため、以下のCommon Unix Printing System(CUPS)をインストールする。
yum install cups-devel.i686

(4) 環境変数の設定
以下の環境変数を設定すること

export ALT_BOOTDIR=/usr/java/latest
export ALT_JDK_IMPORT_PATH=/usr/java/jdk1.6.0_18
export ALT_MOZILLA_HEADERS_PATH=${HOME}/jdk1.6.0-18src/mozilla/share/plugin
export ALT_MOTIF_DIR=${HOME}/src/motif
export ALT_DEVTOOLS_PATH=/usr/bin
export ALT_GCC29_COMPILER_PATH=${HOME}/gcc2

(5) ALSAをインストール
これは、音の関係のライブラリの作成に使う。ALSAは入っていたのでOK。

(6) 環境チェック
cd control/make
make dev-sanity ARCH_DATA_MODEL=32 ALT_OUTPUTDIR=out MILESTONE=jdkicba \
BUILD_NUMBER=b10
としてみる。OKになるが警告がすこし。無視する。

WARNING: You are not building MOTIF workspace from
the control build. MOTIF libs will be obtained from
the usual location or from the ALT_MOTIF_DIR,
location, if it is defined.

WARNING: Your are not building INSTALL workspace from
the control build. This will result in a development-only
build of the J2SE workspace, lacking the installation bundles

WARNING: Your build environment has the variable DEV_ONLY
defined. This will result in a development-only
build of the J2SE workspace, lacking the documentation
build and installation bundles.

WARNING: The official linux builds use OS version 2.4.9-e.3.
You appear to be using OS version 2.6.31.12-174.2.22.fc12.i686.PAE.

WARNING: The build is being done on Linux (Constantine) .
The official linux builds use Linux Advanced Server,
specifically Linux Advanced Server release 2.1AS.
The version found was '2.6.31.12-174.2.22.fc12.i686.PAE'.

WARNING: LANG has been set to ja_JP.UTF-8, this can cause build failures.
Try setting LANG to "C".

WARNING: The linux compiler must be version 3.2
Specifically the GCC compiler.
You appear to be using compiler version: 4.4
The compiler was obtained from the following location:
/usr/bin/
Please change your compiler.

(7) make

make dev ARCH_DATA_MODEL=32 ALT_OUTPUTDIR=out \
MILESTONE=jdktest BUILD_NUMBER=b10

でコンパイルする。かなり重たい。

../../../../src/solaris/hpi/native_threads/src/interrupt_md.c:114: error: stati\
c declaration of ‘sigignore’ follows non-static declaration
/usr/include/signal.h:385: note: previous declaration of ‘sigignore’ was here

などとなる。

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6463269

をみると、static を消せとある。以下このようなヘッダーファイルにはstatic がないが、
cまたはc++のファイルの本体にはstatic があると言う矛盾を最近のgcc 4.4.3はチェックしているようだ。
おすすめは3.2らしい。

またUNIXProcess_md.cでexecvpe()の部分を

/* static -- melange 2010-03-16 */
int
/* execvpe(const char *file, const char *const argv[], const char *const envp[]\
) */
/* melange 2010-03-16 */
execvpe(const char *file, char *const argv[], char *const envp[])

にした。

HAE_API_LinuxOS_Capture.cで 以下のように不必要なヘッダーのincludeをコメントにした。

// for I_FLUSH \

// melange 2010-03-16 \

// #include \

とした。
また、undefined reference to `__ctype_b’というエラーがたくさんでるので、

http://www.webmo.net/support/download/ctype.c

をロードし、
cc -c ctype.c
で適当にコンパイル。

gcc でリンクしている最後あたりに
mawt.gmkの以下の部分を修正

ifeq ($(PLATFORM), linux)
OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH
OTHER_CFLAGS += -DMOTIF_VERSION=2
OTHER_CFLAGS += -DXMSTRINGDEFINES=1
#OTHER_LDLIBS = $(LIBXM) $(LIBXMU) $(LIBXTST) -lXext $(LIBXT) $(LIBSM) $(LIBICE) -lX11 -lXi
OTHER_LDLIBS = $(LIBXM) $(LIBXMU) $(LIBXTST) -lXext $(LIBXT) $(LIBSM) $(LIBICE) -lX11 -lXi -lXaw -lXt -lXp ${HOME}/jdk1.6.0-18src/ctype.o
endif

また、j2se/src/solaris/native/sun/awt/awt_motif21.c
の88行あたりで

if (im_height == 0) {
/* melange 2010-03-16 patch comment this */
/* im_height = _XmImGetGeo(w); */
}

としてリンクエラーが出ないようにした。ここのライブラリ呼び出しはgeometryを求めているのだろうが、なぜか解決できない。

また、
deploy/src/javaws/share/native/launchFile.c

/* melange 2010-03-16 removed static */
/*static*/ int isSecureProperty(char *key) {
とした。

さらに、

deploy/src/javaws/share/native/xmlparser.c

/* melange 2010-03-16 romoved static */
/* static */ void RemoveNonAsciiUTF8FromBuffer(char *buf) {

とした。

また、deploy/make/common/Release.gmk

@#
@# Copy the script L10N message files into the JRE image directory
@#
if [ -d $(LIBDIR) ]; then \
$(MKDIR) -p $(TMP_DEPLOY_IMAGE_DIR)/lib; \
$(CD) $(LIBDIR); \
  @# melange 2010-03-16 skip these tar copy
  @# $(TAR) cf - `$(FIND) . -name 'sunw_java_plugin.mo' -print` | \
  @# ($(CD) $(TMP_DEPLOY_IMAGE_DIR)/lib; $(TAR) xf -); \
fi

として、スキップするようにした。上記のファイルで修正した行は先頭に確実にTABが入るようにemacsではc-q tab
とすること。tabがどうのとか、UNIXのこの部分は古い設計でもういいのでは?
その後もこの関係のエラーが2ー3でるが、プラグインを作るのが目的ではないので、このあたりは適当にコメントにした。

2010年3月4日

fedora 12にしたので、postgresのDBを再構成する

カテゴリー: DB, LINUX — admin @ 3:45 PM

実は、fedora 10からfedora 12にしたマシーンのapacheのバージョンもかってにアップしてしまったので設定ファイルの一部が起動時に引っかかってしまった。

#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule mem_cache_module modules/mod_mem_cache.so

の部分をコメントにした。
さらにdovecot(IMAP/POP3サーバで設定が簡単で高機能)の設定ファイルにおいて、

# sieve=~/.dovecot.sieve
# sieve_storage=~/sieve

もコメントにした。

blogはそのままでOK。
postgresは起動すると

古いバージョンのデータベースフォーマットが見付かりました。
PostgreSQL を使う前にデータのフォーマットをアップグレードする必要があります。
より詳細な情報は /usr/share/doc/postgresql-8.4.2/README.rpm-dist を見てください。

というので、/var/lib/pgsql/dataを消して
initdb
createdb
createuser
..
pg_restore …..
などで、現状復帰。

やはりバックアップは必要。

2010年3月3日

fedora10からfedora12へのupgrade

カテゴリー: LINUX — admin @ 6:49 PM

そろそろfedora10のメンテナンスも終了になってきているので、社内のfedorea 10マシーンをfedora 12にアップした。
# preupgrade
(#はrootで実行を意味する)
でGUIの画面が表示され、何をアップグレードすべきか、そして、依存性に問題がないか、などのテストをしながらパッケージをダウンロードしてくれる。また、アップグレード用のGRUBエントリも作成する。
大変すばらしいのであるが…
/bootの容量がたりないとの警告が出る。見たら、/boot/upgradeというディレクリが作成されていて、これが140Mバイト程度のおおきなものであった。
通常自動レイアウトで/bootパーティションを作成すると、200Mバイトが確保されるが、これではアップグレードの時に困る。そこで、いくつかのファイルを/fc10というディレクトリを作成してmvした。
そしてめでたくpreupgradeは終了した。そしてbootした。GRUBのOS選択画面を表示し、upgrade to fedora 12を選択した。すると、anacondaというインストーラが表示され、かってにアップグレードすべきパッケージが自動的に更新され、アップグレードの本体が終了した。
しかーし。ブートをすると、GRUBはファイルがみつからないという。/bootの容量が足りないのでこの様になったと思われる。そこで、fc12が動作しているマシーンからブートに必要なファイルをUSBにコピーして/、そこからbootに慎重にコピーした。(LIVE CDなどを利用した)
それでOKであった。
ディスクの構成が違う場合などは/boot/grubをむやみにコピーしないこと。grub.confに間違ったパーティション番号が設定されてしまったり、ということが起きるかtらである。
root=(hd0, 0)
の後ろのゼロはパーティション1にブート関連のファイルがあることを示す。
以下で/dev/sda側の命名がVolGroup01になっているのは、/dev/sdbにVolGroup00があるので。

#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,1)
# kernel /vmlinuz-version ro root=/dev/mapper/vg_silver2-lv_root
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=0
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.31.12-174.2.22.fc12.i686.PAE)
root (hd0,0)
kernel /vmlinuz-2.6.31.12-174.2.22.fc12.i686.PAE ro root=/dev/mapper/VolGroup01-LogVol00 rhgb quiet SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTA\
BLE=us
initrd /initramfs-2.6.31.12-174.2.22.fc12.i686.PAE.img

Powered by WordPress