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:次に、portdowngradeで指示されていたようにportupgradeでインデックス等を作り直し(時間かかります)、まずmonoを作成しなおします。: 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!
# 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いろいろやってみたところ、結局 portupgradeを使わずに、 手動でmake installすればうまくインスートルできました。: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 ...
# cd /usr/ports/devel/nant # make clean # make installエラーが起こってしまったのは、mono 2.11.1の残骸でも残っていたのだろうか...。 原因究明は、またの機会にします(^_^;)。
まあ、とりあえず、これでダウングレード完了です。
0 件のコメント:
コメントを投稿