From owner-freebsd-users-jp@FreeBSD.ORG Sat Nov 22 09:09:37 2014 Return-Path: Delivered-To: freebsd-users-jp@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 599545BC for ; Sat, 22 Nov 2014 09:09:37 +0000 (UTC) Received: from mail.allbsd.org (gatekeeper.allbsd.org [IPv6:2001:2f0:104:e001::32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.allbsd.org", Issuer "RapidSSL CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F00DE7F1 for ; Sat, 22 Nov 2014 09:09:36 +0000 (UTC) Received: from alph.d.allbsd.org ([IPv6:2001:2f0:104:e010:862b:2bff:febc:8956]) (authenticated bits=56) by mail.allbsd.org (8.14.9/8.14.8) with ESMTP id sAM99Cia064071 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Sat, 22 Nov 2014 18:09:23 +0900 (JST) (envelope-from hrs@FreeBSD.org) Received: from localhost (localhost [IPv6:::1]) (authenticated bits=0) by alph.d.allbsd.org (8.14.9/8.14.8) with ESMTP id sAM99AZ6015821 for ; Sat, 22 Nov 2014 18:09:12 +0900 (JST) (envelope-from hrs@FreeBSD.org) Date: Sat, 22 Nov 2014 18:08:04 +0900 (JST) Message-Id: <20141122.180804.237598041542367481.hrs@allbsd.org> To: freebsd-users-jp@freebsd.org From: Hiroki Sato In-Reply-To: <20141122113504.A8A1.BD318DDB@aypio.net> References: <20141122113504.A8A1.BD318DDB@aypio.net> X-PGPkey-fingerprint: BDB3 443F A5DD B3D0 A530 FFD7 4F2C D3D8 2793 CF2D X-Mailer: Mew version 6.6 on Emacs 24.4 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Multipart/Signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="--Security_Multipart0(Sat_Nov_22_18_08_04_2014_203)--" Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.97.4 at gatekeeper.allbsd.org X-Virus-Status: Clean X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (mail.allbsd.org [IPv6:2001:2f0:104:e001::32]); Sat, 22 Nov 2014 18:09:27 +0900 (JST) X-Spam-Status: No, score=-98.0 required=13.0 tests=CONTENT_TYPE_PRESENT, ISO2022JP_BODY,RDNS_NONE,SPF_SOFTFAIL,USER_IN_WHITELIST autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on gatekeeper.allbsd.org Subject: [FreeBSD-users-jp 95358] Re: =?iso-2022-jp?b?cGFja2FnZRskQiROJSIlQyVXJTAlbCE8JUlKfUshGyhC?= =?iso-2022-jp?b?GyRCJEskRCQkJEYbKEI=?= X-BeenThere: freebsd-users-jp@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion relevant to FreeBSD communities in Japan List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Nov 2014 09:09:37 -0000 ----Security_Multipart0(Sat_Nov_22_18_08_04_2014_203)-- Content-Type: Multipart/Mixed; boundary="--Next_Part(Sat_Nov_22_18_08_04_2014_989)--" Content-Transfer-Encoding: 7bit ----Next_Part(Sat_Nov_22_18_08_04_2014_989)-- Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit NISHIMURA Yutaka wrote in <20141122113504.A8A1.BD318DDB@aypio.net>: is> pkgで導入したものと、make configでコンパイルオプションを is> 変更してインストールしたportsが有りますが、 is> is> pkg upgrade ではportsで入れたものもpkgから入れられていまうようです。 is> 昔はportupgradeを使っていたのですが、 is> これはすべてコンパイルしてしまうので時間が掛かります。 is> is> デフォルトから変更されていないものはpkgで導入 is> デフォルトから変更されているものは、portsから導入すると言う条件で is> インストールされたパッケージ群をアップグレードする方法は無いでしょうか? pkg(8) にはオプションが変更されているか判別する機能が 一応あるのですが、現時点では確実に動作しません。 なので、手動で検出するしかないと思います。 たとえばやっつけですが、添付のようなスクリプトを実行すると 変更されている ports の一覧が出せます。 % sh ./list_touchedpkgs.sh | tee ./list この結果を pkg lock に渡せば、インストール済みの package を ロックすることができます。 # sh -c 'cat ./list | while read L; do env ASSUME_ALWAYS_YES=yes pkg lock $L; done' ロック後に pkg upgrade を実行すれば、オプションを変更していない package のみが更新されるはずです。 lock したままでは ports を使っての再インストールもできないので、 pkg upgrade 後に次のように unlock して、 個別に手動で make install すれば、目的は達成できるように思います。 # sh -c 'cat ./list | while read L; do env ASSUME_ALWAYS_YES=yes pkg unlock $L; done' -- Hiroki ----Next_Part(Sat_Nov_22_18_08_04_2014_989)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="list_touchedpkgs.sh" #!/bin/sh PORTSDIR=/usr/ports for d in $(pkg query %o); do u=$( (cd $PORTSDIR/$d && (make showconfig | awk "/=on/ && \ !/IPV6=|DOCS=|NLS=|EXAMPLES=/{print \$1}"; \ for i in $(make -VOPTIONS_DEFAULT); do \ echo "$i=on" | grep -v "IPV6=\|DOCS=\|NLS=\|EXAMPLES="; \ done ) | sed -e "s/://g" | sort | uniq -u)) if [ -n "$u" ]; then echo "$d" fi done ----Next_Part(Sat_Nov_22_18_08_04_2014_989)---- ----Security_Multipart0(Sat_Nov_22_18_08_04_2014_203)-- Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEABECAAYFAlRwUnQACgkQTyzT2CeTzy1UwwCfX0Hea/4DC/2/aRMOukUmTlzH COUAmgPle4CgYmFqSrZz/YvF7VQ9s55H =EjND -----END PGP SIGNATURE----- ----Security_Multipart0(Sat_Nov_22_18_08_04_2014_203)----