2012年8月23日木曜日

OpenSim環境のアップデイト (mono, nantのダウングレード)

古いバージョンのmonoで試したら、うまく動作しているみたいなので、monoを2.10.6へ、nantを0.90にダウングレードしてみます。

portdowngrade

PortsツリーをCVSとかで取得・展開している場合は、「cvs update -r リビジョン」で素直に古いバージョンを取り出せばいいんですが、インストール時にPortsツリーも展開してたり、CVSupで最新版をとってきているような場合、portdowngradeというツールを使うと便利です(実は、最近知った ^_^;)。

portdowngradeの使い方を調べるのも面倒なら、CVSwebから直接該当するバージョンのPortsファイルをダウンロードして、手動で置き換えたほうが早いかもしれません。でも、ここはせっかくだからportdowngradeを使ってみます。

portdowngradeは以前は、「sysutils/portdowngrade」にあったのですが、現在は「ports-mgmt/portdowngrade」に移動しています。 portupgradeをインストールしているのであれば、次のコマンドでインストールできます。
# portinstall ports-mgmt/portdowngrade

ではダウングレードしてみましょう。環境変数CVSROOTにAnonymousCVSサーバーのpserverの情報をセットします。現在のFreeBSDハンドブックによると、今のところ、台湾とフランスのサーバーしか動いてないみたいです。昔は日本にもサーバーがあったのですけど、Subversionに移行したから、減ってるのかなぁ。
cvs pserverは、まず使う前にloginします。初回は~/.cvspassファイルが無いので警告がでますが、気にしないでいいです。2回目以降からでなくなります。
# setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
# cvs login
Logging in to :pserver:anoncvs@anoncvs.tw.freebsd.org:2401/home/ncvs
CVS password: (anoncvsといれる。なんでもいいみたいだけど)
cvs login: warning: failed to open /root/.cvspass for reading: No such file or directory
次に、portdowngradeでlang/monoを2.10.6にダウングレードします。
# portdowngrade lang/mono

portdowngrade 0.6 by Heiner Eichmann
Please note, that nothing is changed in the ports tree
unless it is explicitly permitted in step 6!

Seeking port lang/mono ...

Found several matches:
1: lang/mono
2: lang/mono-basic

Please choose one: 1 (<--- lang/monoに複数マッチするから、適切なものを選ぶ)

Downgrading port: lang/mono

Step 1: Checking out port from CVS repository
CVS root directory (from CVSROOT environment variable): :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs

Step 2: Reading the port history from the CVS repository

Step 3: Analyzing the port history from the CVS repository

Step 4: Load port version numbers and present results
Keys: <space> : next page                      d : details
            p : previous page
      <enter> : leave presentation and downdgrade if wanted
======================================================================================================================
number         date         portversion  comment
    1  2012/06/29 18:24:08  2.11.1       - Remove SITE_PERL from *_DEPENDS
    2  2012/05/13 07:48:35  2.11.1       Fix build when devel/libinotify is installed
    3  2012/05/02 18:16:19  2.11.1       Update to 2.11.1.
    4  2011/10/08 23:13:36  2.10.6       Update to 2.10.6.
    5  2011/09/21 17:52:24  2.10.5       Update to 2.10.5.
    6  2011/06/12 19:06:22  2.10.2       Hello Mono 2.10!
    7  2011/05/13 16:12:53  2.6.7_1      Force commit to fix wrong info in last commit log
   ... 
   ... ずらずらとでてくるので、適当なところで <enter>キーを押すと、
   ... そこで中断し、どの番号(number)のPortsを取り出すか聞いてくる。
   ...

Total lines: 113. Command:
Enter version number to change port to (0: exit): 4 (<--- 4番が2.10.6のバーション)


Step 5: Checking out choosen date of the port from the CVS repository

Step 6: Modifying the port
Port: lang/mono
at : 2011/10/08 23:13:36
Type 'yes' to bring the port to the state of the date above
or 'no' to exit without changing anything. Note, that this only changes
the port, not the installed software! yes or no:yes (<--- yesで修正をかける)

The port has been set to the selected version. Install it if you wish.
If you have portupgrade installed, you should run

portsdb -Uu

now, to see the changes in the ports database. In any case

portupgrade -f mono

will install the changed port. Note: if you run cvsup, the port
is changed back to the choosen label!
devel/nantも0.90にダウングレードします。
# portdowngrade devel/nant

portdowngrade 0.6 by Heiner Eichmann
Please note, that nothing is changed in the ports tree
unless it is explicitly permitted in step 6!

Seeking port devel/nant ... found: devel/nant

Step 1: Checking out port from CVS repository
CVS root directory (from CVSROOT environment variable): :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs

Step 2: Reading the port history from the CVS repository

Step 3: Analyzing the port history from the CVS repository

Step 4: Load port version numbers and present results
Keys:  : next page                      d : details
            p : previous page
       : leave presentation and downdgrade if wanted
======================================================================================================================
number         date         portversion  comment
    1  2012/07/27 06:50:38  0.91         SVN rev 301591 on 2012-07-27 06:50:38Z by erwin
    2  2012/01/21 18:54:09  0.91         - Extend BROKEN tag to all amd64
    3  2012/01/15 21:39:34  0.91         - Mark BROKEN on amd64/9:
    4  2011/10/27 17:30:50  0.91         - Update to 0.91
    5  2011/04/12 15:19:26  0.90         - Remove obsolete MD5 checksum
    6  2010/09/22 17:10:21  0.90         - Update MAINTAINER to my FreeBSD.org address
    7  2010/06/30 11:37:00  0.90         - Update to 0.90
    8  2009/11/18 22:39:50  ${PORTNAME}-0.85-src_1  - Mark MAKE_JOBS_UNSAFE
    9  2009/08/22 00:18:17  ${PORTNAME}-0.85-src_1  - Switch SourceForge ports to the new File Release System: categor
   ... 
   ... ずらずらとでてくるので、適当なところで <enter>キーを押すと、
   ... そこで中断し、どの番号(number)のPortsを取り出すか聞いてくる。
   ...

Total lines: 23. Command:
Enter version number to change port to (0: exit): 5 (<--- 5番が 0.90のバーション)


Step 5: Checking out choosen date of the port from the CVS repository

Step 6: Modifying the port
Port: devel/nant
at : 2011/04/12 15:19:26
Type 'yes' to bring the port to the state of the date above
or 'no' to exit without changing anything. Note, that this only changes
the port, not the installed software! yes or no:yes (<--- yesで修正をかける)

The port has been set to the selected version. Install it if you wish.
If you have portupgrade installed, you should run

portsdb -Uu

now, to see the changes in the ports database. In any case

portupgrade -f nant

will install the changed port. Note: if you run cvsup, the port
is changed back to the choosen label!
次に、portdowngradeで指示されていたようにportupgradeでインデックス等を作り直し(時間かかります)、まずmonoを作成しなおします。
# portsdb -Uu
...
# portupgrade -f lang/mono
...
次にnantを次のように作成しなおそうとしましたが、なんかエラーになりました。
 
# portupgrade -f devel/nant
...
...
Unhandled Exception: System.ArgumentException: failed to convert parameters
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in :0
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in :0
  at NAnt.Console.ConsoleStub+HelperArguments.CallConsoleRunner () [0x00000] in :0
  at System.AppDomain.DoCallBack (System.CrossAppDomainDelegate callBackDelegate) [0x00000] in :0
  at (wrapper remoting-invoke-with-check) System.AppDomain:DoCallBack (System.CrossAppDomainDelegate)
  at NAnt.Console.ConsoleStub.Main (System.String[] args) [0x00000] in :0
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentException: failed to convert parameters
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in :0
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in :0
  at NAnt.Console.ConsoleStub+HelperArguments.CallConsoleRunner () [0x00000] in :0
  at System.AppDomain.DoCallBack (System.CrossAppDomainDelegate callBackDelegate) [0x00000] in :0
  at (wrapper remoting-invoke-with-check) System.AppDomain:DoCallBack (System.CrossAppDomainDelegate)
  at NAnt.Console.ConsoleStub.Main (System.String[] args) [0x00000] in :0
gmake: *** [install] Error 1
*** Error code 2

Stop in /usr/ports/devel/nant.
*** Error code 1
...
いろいろやってみたところ、結局 portupgradeを使わずに、 手動でmake installすればうまくインスートルできました。
 
# cd /usr/ports/devel/nant
# make clean
# make install
エラーが起こってしまったのは、mono 2.11.1の残骸でも残っていたのだろうか...。 原因究明は、またの機会にします(^_^;)。

まあ、とりあえず、これでダウングレード完了です。

0 件のコメント:

コメントを投稿