From owner-freebsd-questions@freebsd.org Wed Dec 12 19:55:09 2018 Return-Path: Delivered-To: freebsd-questions@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 924B91323604 for ; Wed, 12 Dec 2018 19:55:09 +0000 (UTC) (envelope-from pschmehl_lists@tx.rr.com) Received: from dnvrco-cmomta02.email.rr.com (dnvrco-outbound-snat.email.rr.com [107.14.73.231]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id AFF8D75D09 for ; Wed, 12 Dec 2018 19:55:08 +0000 (UTC) (envelope-from pschmehl_lists@tx.rr.com) Received: from [192.168.0.5] ([70.121.63.82]) by cmsmtp with ESMTPA id XAazgFimusismXAb4gLIgo; Wed, 12 Dec 2018 19:55:07 +0000 Date: Wed, 12 Dec 2018 13:55:01 -0600 From: Paul Schmehl Reply-To: Paul Schmehl To: Polytropon cc: FreeBSD Questions Subject: Re: Forcing port reinstalls without rebuilding over and over again Message-ID: <296D11C4E1B5870932452073@Pauls-MacBook-Pro.local> In-Reply-To: <20181212204151.659fb436.freebsd@edvax.de> References: <47758EF2A172AE3BCA2F6E66@Pauls-MacBook-Pro.local> <1793865D5AEE79C2FC27331F@Pauls-MacBook-Pro.local> <20181212204151.659fb436.freebsd@edvax.de> X-Mailer: Mulberry/4.0.8 (Mac OS X) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-CMAE-Envelope: MS4wfDdNcoX+rf+cOoxhUDGINjGDjI/brxoqBGdPjinn5BVF+Io6Xf65NjkXt79y3oAba6+eghfpzoN5flZXy5T87hQHLjus4mZcXEh7/IjwHJDcpWAHfPLM j0LM6hFfG2eB2gj4nl2Lua7eTrnuuqeiYUEo75WRwSfcdmBWoBU0ZTvx1Utm0reCqUYA6xPjugoInclwtVXHNIhWCRAcscfFv0l3bKEVX5AGcq1/gkkB8UUx X-Rspamd-Queue-Id: AFF8D75D09 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of pschmehl_lists@tx.rr.com designates 107.14.73.231 as permitted sender) smtp.mailfrom=pschmehl_lists@tx.rr.com X-Spamd-Result: default: False [-3.72 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; HAS_REPLYTO(0.00)[pschmehl_lists@tx.rr.com]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:107.14.73.0/24]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[rr.com]; REPLYTO_EQ_FROM(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; MX_GOOD(-0.01)[cached: dnvrco-cmedge01.email.rr.com]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[231.73.14.107.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_SHORT(-0.98)[-0.975,0]; NEURAL_HAM_MEDIUM(-1.00)[-0.996,0]; IP_SCORE(-1.44)[ipnet: 107.14.73.0/24(-3.94), asn: 7843(-3.15), country: US(-0.09)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:7843, ipnet:107.14.73.0/24, country:US]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 19:55:09 -0000 --On December 12, 2018 at 8:41:51 PM +0100 Polytropon wrote: > On Wed, 12 Dec 2018 12:52:36 -0600, Paul Schmehl wrote: >> --On December 12, 2018 at 2:07:35 AM -0600 Paul Schmehl >> wrote: >> >> > Is there a way, using portmaster, to force the rebuild of all ports >> > without rebuilding the same ports over and over and over again? >> > >> > I've noticed that using portmaster -f forces the rebuild of every >> > dependency. I think I've now rebuild perl and python at least 20 or 30 >> > times. Once should be enough. I guess if you're going to rebuild >> > everything, it would be ok to ignore dependencies for ports, since >> > they're all going to be rebuilt anyway. >> > >> > What's the magic potion for that? >> >> After reading through the man page, I thought that portmaster -Rfd would >> do the trick, but it didn't. >> >> ISTM that, when you're building every port on a box, you shouldn't need >> to build all the dependencies for every port, because they're all going >> to be built anyway. Rebuilding perl (for example) repeatedly, makes no >> sense at all. It would be nice if there were a >> --force-with-no-dependencies switch so that every port could be built >> once and once only. > > Maybe I'm thinking into the wrong direction, but how about > the following thoughts? > > The task of building is different from the task of installing. > If you run each build task separatedly, both depencency trees > (build dependencies + runtime dependencies) need to be resolved > from scratch. > > For normal usage, and taking your perl example, the following > situation would be present: > > 1. port "foo" requires perl as a build dependency > > 2. port "perl" is installed and can then be used > > 3. port "foo" is built, using the just installed perl > > 4. port "bar" requires perl as a build dependency > > 5. port "bar" is build, using the already installed perl > (and perl is not built again) > > It should work the same with runtime dependencies. This thought > experiment includes the assumtion that the correct _versions_ of > perl are always the same. ;-) It should, but it doesn't seem to. I found this near the end of the man page. I believe I'll try this next time. Using portmaster to do a complete reinstallation of all ports: 1. portmaster --list-origins > ~/installed-port-list 2. Update the ports tree 3. portmaster -ty --clean-distfiles 4. portmaster -Faf 5. pkg delete -afy 6. rm -rf /usr/local/lib/compat/pkg 7. Back up any files in /usr/local you wish to save, such as configuration files in /usr/local/etc 8. Manually check /usr/local and /var/db/pkg to make sure that they are really empty 9. Install ports-mgmt/pkg and then ports-mgmt/portmaster. Remove both from ~/installed-port-list. 10. portmaster --no-confirm `cat ~/installed-port-list` Paul Schmehl, Retired As if it wasn't already obvious, my opinions are my own and not those of my employer. ******************************************* "It is as useless to argue with those who have renounced the use of reason as to administer medication to the dead." Thomas Jefferson "There are some ideas so wrong that only a very intelligent person could believe in them." George Orwell