ところが、ports/packageを考えなしに更新すると最新版にしたくないports/packageも一緒に更新されてしまうことがある。
今回は間違って更新してしまったports/packageを戻したいバージョンにダウングレードする方法を実例で。 ports-mgmt/portdowngradeをインストールしていないなら次2行を実行。
# cd /usr/ports/ports-mgmt/portdowngrade # make install
ダウングレードは普通のportsツリーから外れて指定したportsを置くので自分のホームディレクトリなどで実行する。
# cd ~ # portdowngrade textproc/kibana6
最初はダウングレードしたい「ports or pkgの名前」または「ジャンルdirとports or pkgの名前」を指定するだけ。 たいていの場合にズラズラ表示される筈。(次)
Choose a revision from this list and run /usr/local/sbin/portdowngrade textproc/kibana6 revision ------------------------------------------------------------------------ r495337 | meta | 2019-03-11 18:28:38 +0900 (Mon, 11 Mar 2019) | 21 lines textproc/kibana6: Fix do-install again The previous commit installs few files. Sorry for the breakage. $ pkg info -l kibana6 kibana6-6.5.4_1: /usr/local/etc/kibana/kibana.yml.sample /usr/local/etc/rc.d/kibana /usr/local/share/licenses/kibana6-6.5.4_1/APACHE20 /usr/local/share/licenses/kibana6-6.5.4_1/LICENSE /usr/local/share/licenses/kibana6-6.5.4_1/catalog.mk /usr/local/www/kibana6/bin/kibana /usr/local/www/kibana6/bin/kibana-keystore /usr/local/www/kibana6/bin/kibana-plugin /usr/local/www/kibana6/config $ PR: 236243 Reported by: tobik Reviewed by: tobik (via ports-committers@) ------------------------------------------------------------------------ r495328 | meta | 2019-03-11 17:08:28 +0900 (Mon, 11 Mar 2019) | 9 lines textproc/kibana6: Fix do-install I broke in the previous commit I meant WWWDIR_REL not WWWDIR here but the usage of @mode macro was wrong. It does not take a file argument. Use COPYTREE_BIN instead to keep executable permissions for binaries. PR: 236243 Reported by: tobik ------------------------------------------------------------------------ r495326 | meta | 2019-03-11 14:43:19 +0900 (Mon, 11 Mar 2019) | 9 lines textproc/kibana6: Update to 6.5.4 While here, - Quit using ${CHMOD} during do-install, handle permissions in pkg-plist PR: 236243 Submitted by: gettoknowmi <gettoknowmi@yahoo.com> Reported by: Yuta MASUMOTO <owata@owatan.jp> (plist issue) ------------------------------------------------------------------------ r484109 | feld | 2018-11-05 01:58:30 +0900 (Mon, 05 Nov 2018) | 2 lines ElasticSearch6: Update to 6.4.2 ------------------------------------------------------------------------ r477876 | feld | 2018-08-24 01:27:11 +0900 (Fri, 24 Aug 2018) | 4 lines ElasticSearch: Update to 6.3.2 Differential Revision: https://reviews.freebsd.org/D16597
rXXXXXで始まる行とその周辺を見て、ダウングレードした目的のバージョン/リビジョンを見つける。そのrXXXXXをメモする。(黄色の字の部分)
今回はElasticSearch6の6.4.2に対応した(同バージョンの)Kibana6にしたいので6.4.2というキーワードを探すとr484109がそれであることが判る。そこで2回目はバージョン/リビジョン付きで実行する。(下)
# portdowngrade textproc/kibana6 r484109 Checked out revision 484109. You should be done-- now cd into kibana6 and you can run # make deinstall install clean Please note that portdowngrade no longer modifies the ports tree; the checked out port is at /root/kibana6
この例ではホームディレクトリにkibana6というディレクトリが作成されたのでそこに移ってから表示されているコマンド(黄色の字の部分)をコピーして実行する。(下)
# cd kibana6 # make deinstall install clean
これで現在インストールされているports/packageが削除されてダウングレードしたバージョンがインストールされる。 確認してみる。(下)
# portversion -vf | grep kibana
[Reading data from pkg(8) ... - 222 packages found - done]
kibana6-6.4.2 < needs updating (port has 6.5.4_2)
予定通り、低いバージョンになっている。 迂闊に更新してしまわないようロックしておく。(次のコマンド)
# pkg lock kibana6-6.4.2 kibana6-6.4.2: lock this package? [y/N]: y Locking kibana6-6.4.2
これで、特定のports/packageをダウングレードして、ついでにロックできたので一安心。