たぶん2007年ごろのメモ。sarge のときは xinetd を使っていたんだなぁ。サーバ名には okojo と付けていた。

以下、延々と長いメモ。


Debian GNU/Linux 4.0 ("etch") リリースノート (Intel x86 用) - 以前のリリースからアップグレードする
http://www.debian.org/releases/stable/i386/release-notes/ch-upgrading.ja.html

Debian GNU/Linux 4.0 ("etch") リリースノート (Intel x86 用) - Debian GNU/Linux 4.0 の最新情報
http://www.debian.org/releases/etch/i386/release-notes/ch-whats-new.ja.html

aptitude がこわいから apt-get でアップグレードしていく
aptitude を一度でも使ったら、その後 apt-get は使わないこと

データや設定情報をバックアップ(/home, /usr/local)
  Apache 2.0
    /etc.apache2

  / パッケージ情報をバックアップ
  # dpkg --get-selections > dpkglist.txt

  すべてのデータベースのバックアップ(200MBぐらいで2分ぐらい?)
  $ mysqldump --default-character-set=utf8 -u root -p -x --all-databases > dump.sql

  mysql は一応バックアップするけど、自動アップグレードにまかせてみたい
    mysqldump --default-character-set utf8 -u hogeuser -p hogedatabase hoge_table > ./hoge_table_backup_file.txt
    ## mysql ファイルサイズの大きさも考慮すべき
    mysqldump --default-character-set=utf8 -u root -p hogedb | bzip2 -9c > mysqldump-2007-hogedb.bz2
    # MySQLシステムDB
    mysqldump --default-character-set=utf8 -u root -p mysql | bzip2 -9c > mysqldump-2007-mysql-user-db.bz2

    $ mysqldump --default-character-set=utf8 -u root データベース名 > dump.sql
    $ mysql -O default-character-set utf8 -u root -p < ./hoge_table_backup_file.txt
  Tomcat 4.1
  xinetd

sarge 最新状態へ
  apt-get update
  apt-get upgrade

カーネルを2.6へ上げる
  apt-get install kernel-image-2.6-686
  shutdown -r now
  okojo:~# uname -srvmo
  Linux 2.6.8-4-686 #1 Mon Apr 30 07:01:37 UTC 2007 i686 GNU/Linux
  # COLUMNS=200 dpkg -l | grep kernel-image
  ii  kernel-image-2.4-686                         101sarge1                                    Linux kernel image for version 2.4 on PPro/Celeron/PII/PIII/P4
  ii  kernel-image-2.4.27-2-386                    2.4.27-10sarge1                              Linux kernel image for version 2.4.27 on 386
  ii  kernel-image-2.4.27-3-686                    2.4.27-10sarge5                              Linux kernel image for version 2.4.27 on PPro/Celeron/PII/PIII/P4
  ii  kernel-image-2.6-686                         101sarge2                                    Linux kernel image for version 2.6 on PPro/Celeron/PII/PIII/P4.
  ii  kernel-image-2.6.8-4-686                     2.6.8-16sarge7                               Linux kernel image for version 2.6.8 on PPro/Celeron/PII/PIII/P4.

パッケージの状態をチェック
  何らかのエラー状態にあるパッケージを表示
  # dpkg --audit

パッケージの取得先変更(aptlineをetch向けに)
  sarge を etch へ変更
  # vi /etc/apt/sources.list
  deb http://cdn.debian.or.jp/debian/ etch main contrib non-free
  deb-src http://cdn.debian.or.jp/debian/ etch main contrib non-free
  deb http://security.debian.org/ etch/updates main contrib non-free

アップグレード作業の記録を取る
  script -t 2>~/upgrade-etch2.time -a ~/upgrade-etch2.script

パッケージリストの更新
  apt-get update

不要なパッケージキャッシュの削除
  apt-get clean

ハードディスクの容量が足りるか確認
  df -h
  //apt-get -s dist-upgrade

システムの最小アップグレード
  apt-get upgrade
  apt-get install initrd-tools

デスクトップシステムのアップグレード

  libfam0c102 の存在チェック
    dpkg -l libfam0c102 | grep ^ii

  xlibmesa-glu の存在チェック
    dpkg -l xlibmesa-glu | grep ^ii

  xfree86-common の存在チェック
    dpkg -l xfree86-common | grep ^ii

  libfam0c102 が存在していたら libfam0 をインストールする
    apt-get install libfam0

  xlibmesa-glu が存在していたら xlibmesa-glu をインストールする
    apt-get install xlibmesa-glu

  xfree86-common が存在していたら x11-common をインストールする
    apt-get install x11-common

カーネルを更新(2.6.8->2.6.18ぐらいに上がる, あと付随する必要なパッケージのインストール)
  apt-get install linux-image-2.6-686

etch へアップグレード
  apt-get dist-upgrade

アップグレードできたか確認
  # apt-get --purge remove xinetd
  # vi /etc/inetd.conf
  # /etc/init.d/inetd restart
  telnet localhost して "Debian GNU/Linux 4.0" って出るか確認。

パッケージ情報を更新
  apt-get update

(存在するのならば)hotplug パッケージを削除
  # dpkg -l | grep udev
  ii  udev                           0.105-4                         /dev/ and hotplug management daemon
  apt-get remove hotplug

一応、再起動
  shutdown -r now
  # uname -srvmo
  # COLUMNS=200 dpkg -l | grep kernel-image

  okojo:~# uname -srvmo
  Linux 2.6.18-4-686 #1 SMP Wed May 9 23:03:12 UTC 2007 i686 GNU/Linux
  okojo:~# COLUMNS=200 dpkg -l | grep kernel-image
  ii  kernel-image-2.4-686                         101sarge1                                    Linux kernel image for version 2.4 on PPro/Celeron/PII/PIII/P4
  ii  kernel-image-2.4.27-2-386                    2.4.27-10sarge1                              Linux kernel image for version 2.4.27 on 386
  ii  kernel-image-2.4.27-3-686                    2.4.27-10sarge5                              Linux kernel image for version 2.4.27 on PPro/Celeron/PII/PIII/P4
  ii  kernel-image-2.6-686                         2.6.18+6                                     Linux 2.6 image on PPro/Celeron/PII/PIII/P4 - transition package
  ii  kernel-image-2.6.8-4-686                     2.6.8-16sarge7                               Linux kernel image for version 2.6.8 on PPro/Celeron/PII/PIII/P4.


Java のアップグレード: ref. http://www.nilab.info/zurazure2/000599.html
  # apt-get install sun-java5-jdk
  # apt-get install sun-java5-fonts
  # apt-get install sun-java5-plugin
  # apt-get --purge remove sun-j2sdk1.5
  # apt-get install sun-java5-jdk
  # apt-get install sun-java5-fonts
  # apt-get install sun-java5-plugin

  gij-4.1の削除
    okojo:/etc/default# /usr/bin/java -version
    java version "1.4.2"
    gij (GNU libgcj) version 4.1.2 20061115 (prerelease) (Debian 4.1.1-20)

    Copyright (C) 2006 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    okojo:/etc/default# dpkg -l | grep gij
    ii  gij-4.1                        4.1.1-20                        The GNU Java bytecode interpreter
    okojo:/etc/default# apt-get remove gij
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています... 完了
    パッケージ gij はインストールされていないため、削除はできません
    アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
    okojo:/etc/default# apt-get remove gij-4.1
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています... 完了
    以下のパッケージは「削除」されます:
      gij-4.1 java-gcj-compat
    アップグレード: 0 個、新規インストール: 0 個、削除: 2 個、保留: 0 個。
    0B のアーカイブを取得する必要があります。
    展開後に 242kB のディスク容量が解放されます。
    続行しますか [Y/n]? y
    (データベースを読み込んでいます ... 現在 55150 個のファイルとディレクトリがインストールされています。)
    java-gcj-compat を削除しています ...
    gij-4.1 を削除しています ...
    okojo:/etc/default# java -version
    java version "1.5.0_10"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_10-b03)
    Java HotSpot(TM) Client VM (build 1.5.0_10-b03, mixed mode, sharing)


Apache 2.0 -> 2.2
  自動アップグレード。設定見直し。

Apache 1.3.37
  再コンパイル&再インストール

MySQL 4.1 -> 5.0
  // 自動で5.0になるっぽい
  apt-get remove mysql-server-4.1

  MySQLのアップグレード手順
    参考
      MySQL AB :: MySQL 5.0 Reference Manual :: 2.4.17.2 Upgrading from MySQL 4.1 to 5.0
      http://dev.mysql.com/doc/refman/5.0/en/upgrading-from-4-1.html
    mysql_upgrade を実行
      # mysql_upgrade で以下のコマンドが実行される。
      mysqlcheck --check-upgrade --all-databases --auto-repair -p
      mysql_fix_privilege_tables
      (あるいは mysql プロンプトで mysql_upgrade を実行する?)

    MySQLサーバを再起動
    全文検索(FULLTEXT index)を使っているテーブル
      CHECK TABLE
        エラーが出たらインデックスを再作成)(optimize table か repair tableをする)
        mysql> optimize table t_hoge;

Tomcat 4.1 -> 5.0 or 5.5
  // tomcat5をインストールするとtomcat4が削除される
  apt-get install tomcat5
  CATALINA_OPTS, TOMCAT5_SECURITY=no, LOGFILE_DAYS=365, unset LANG
JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
CATALINA_OPTS="-Djava.awt.headless=true -Xms256M -Xmx256M -server -Xloggc:/var/lib/tomcat5/logs/gc.log -Dsun.net.client.defaultConnectTimeout=10000 -Dsun.net.client.defaultReadTimeout=15000 -Dinfo.nilab.lib.log.LoggerFactory=info.nilab.lib.log.nilab.Log4jLoggerFactory -Djavax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"

CATALINA_OPTS="-Djava.awt.headless=true -Xms256M -Xmx256M -server -Xloggc:/var/lib/logs/nilabwebapps/gc.log -Dsun.net.client.defaultConnectTimeout=10000 -Dsun.net.client.defaultReadTimeout=15000 -Dinfo.nilab.lib.log.LoggerFactory=info.nilab.lib.log.nilab.Log4jLoggerFactory"


  起動パラメータに -Djavax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl を追加
  vi /etc/default/tomcat5
  vi /etc/tomcat5/server.xml

  java5文法がtomcat5のjspでは使えない

  /var/lib/tomcat5/work/Catalina/localhost/nilab/org/apache/jsp/poisonmaps/location_jsp.java:403: for-each ループは -source 1.3 でサポートされていません
(for-each ループを使用可能にするには、-source 1.5 を試してください)

java.lang.NoSuchMethodError: org.w3c.dom.Document.getXmlEncoding()Ljava/lang/String;
  at info.nilab.lib.xml.dom.Documentz.toString(Documentz.java:36)
  at info.nilab.lib.net.ws.CachedRest.get(CachedRest.java:59)

アップグレード作業の記録を停止
  script を停止: プロンプトから exit と入力

tags: debian

Posted by NI-Lab. (@nilab)