Engineer as a Lifestyle @tenkoma

tenkoma's testing blog

お手入れ(upgradeでエラーになる場合) cyrus-sasl2の場合

いままでは、upgradeでエラーになる→しばらくの間我慢する→我慢できなくなってMacPortsごと再インスコ
でしたが、さすがに手間かかりすぎるので、別の方法をとることにした。
とりあえず、問題になっているものを強制再インストールしてみる。基本的にport -f uninstall <名前> と port install <名前>
今までもこういう風にやっておけば、時間の短縮になるし、勉強にもなったかもしれないな。
ちなみに明示的にインストールしているものは以下にリストしている。

% sudo port upgrade installed
--->  Configuring cyrus-sasl2
Error: cyrus-sasl2 will not build when another version is active.
Error: Please deactivate or uninstall cyrus-sasl2, and then install
Error: the new version with `sudo port install cyrus-sasl2`.
Error: Target org.macports.configure returned: cyrus-sasl2 upgrade failed
Error: Unable to upgrade port: 1

--->  Configuring cyrus-sasl2
Error: cyrus-sasl2 will not build when another version is active.
Error: Please deactivate or uninstall cyrus-sasl2, and then install
Error: the new version with `sudo port install cyrus-sasl2`.
Error: Target org.macports.configure returned: cyrus-sasl2 upgrade failed
Error: Unable to upgrade port: 1
--->  Configuring cyrus-sasl2
Error: cyrus-sasl2 will not build when another version is active.
Error: Please deactivate or uninstall cyrus-sasl2, and then install
Error: the new version with `sudo port install cyrus-sasl2`.
Error: Target org.macports.configure returned: cyrus-sasl2 upgrade failed
Error: Unable to upgrade port: 1
--->  Configuring cyrus-sasl2
Error: cyrus-sasl2 will not build when another version is active.
Error: Please deactivate or uninstall cyrus-sasl2, and then install
Error: the new version with `sudo port install cyrus-sasl2`.
Error: Target org.macports.configure returned: cyrus-sasl2 upgrade failed
Error: Unable to upgrade port: 1
[~] <ttys001> 
% sudo port -f uninstall cyrus-sasl2
--->  Unable to uninstall cyrus-sasl2 2.1.21_0+kerberos, the following ports depend on it:
--->    subversion
--->    subversion-perlbindings
Warning: Uninstall forced.  Proceeding despite dependencies.
--->  Deactivating cyrus-sasl2 @2.1.21_0+kerberos
--->  Uninstalling cyrus-sasl2 @2.1.21_0+kerberos
[~] <ttys001> 
% sudo port install cyrus-sasl2
--->  Configuring cyrus-sasl2
--->  Building cyrus-sasl2
--->  Staging cyrus-sasl2 into destroot
--->  Installing cyrus-sasl2 @2.1.22_0+kerberos
--->  Activating cyrus-sasl2 @2.1.22_0+kerberos
--->  Cleaning cyrus-sasl2

upgradeでエラーでなくなりました。