From owner-freebsd-questions@FreeBSD.ORG Fri Sep 7 08:51:12 2007 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A1CA116A418 for ; Fri, 7 Sep 2007 08:51:12 +0000 (UTC) (envelope-from lars@larseighner.com) Received: from mail.team1internet.com (mail.team1internet.com [216.110.13.10]) by mx1.freebsd.org (Postfix) with ESMTP id 6F26B13C483 for ; Fri, 7 Sep 2007 08:51:12 +0000 (UTC) (envelope-from lars@larseighner.com) Received: by mail.team1internet.com (Postfix, from userid 12346) id CC01616B60D; Fri, 7 Sep 2007 03:50:56 -0500 (CDT) Received: from larseighner.com (unknown [216.110.13.86]) by mail.team1internet.com (Postfix) with SMTP id 241DC16B60B; Fri, 7 Sep 2007 03:50:53 -0500 (CDT) Received: by larseighner.com (nbSMTP-1.00) for uid 1001 lars@larseighner.com; Fri, 7 Sep 2007 03:50:50 -0500 (CDT) Date: Fri, 7 Sep 2007 03:50:49 -0500 (CDT) From: Lars Eighner X-X-Sender: lars@debranded.6dollardialup.com To: cothrige In-Reply-To: Message-ID: <20070907014230.K45407@qroenaqrq.6qbyyneqvnyhc.pbz> References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Sanitizer: Anomy and SpamAssassin mail filter - see http://www.6dollardialup.com/support/spaminfo.html X-Spam-Status: No, hits=-3.7 required=10.0 tests=EMAIL_ATTRIBUTION,IN_REP_TO,OACYS_SINGLE,QUOTED_EMAIL_TEXT, REFERENCES,SIGNATURE_SHORT_DENSE,SPAM_PHRASE_01_02, TO_LOCALPART_EQ_REAL version=2.43 X-Spam-Level: Cc: freebsd-questions@freebsd.org Subject: Re: Newbie questions about updating X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Sep 2007 08:51:12 -0000 On Fri, 7 Sep 2007, cothrige wrote: > assumption that one must run two cvsup operations with two separate > supfiles to update both the core OS and the ports. Am I understanding > this correctly? No. It is not "must." You "can" update your source and your ports tree with one supfile. You can add the line ports-all tag=. to either the standard or the stable supfile. The tag=. part is vitally important, because otherwise the tag from the system update will fall through (being right now either RELENG_6 (for stable) or RELENG_6_2 (for standard) and your whole ports tree will be deleted (because ports do not have a tag and so there are not any that match either of the other tags). If you do this once, you will forever be prejudiced against doing it in one operation. Many people do it it two operations because they really are two different things. > Assuming I am, my main confusion concerns just how these two systems > actually interact and relate to each other, and whether there are any > requirements connecting updating each of them together? There is no necessary, hard and fast, connection between the two. If your ports tree gets very, very stale, it will largely cease to work because many (some) of the source files will disappear or their dependencies will disappear or change. Many of the applications in the ports were not written to work specifically on FreeBSD by FreeBSD developers, but were written variously to work on any generally sort-of-Unix-like system, any system with a C++ compiler and so forth. Theoretically ports in a very old tree should build (FreeBSD keeps many old distribution files as a last resort), but as a practical matter, many won't. Occasionally there is a change in the operating system that breaks some old ports, often because the person who wrote the port was sloppy and took things for granted, but those things changed. > For instance, I have downloaded the FreeBSD 6.2 install discs and have > finished the basic installation and setup. Now at some point if I wish to > update the ports does that mean I have to update the OS to a particular > level? No. There certainly is no fixed point at which ports will become useless. But someday 6,2 will no longer be supported (like years from now). 6.2 will still run on the machine you have got, and the ports you have installed will still run on it, but much of the then current port tree will deal with hardware you don't have and so forth. When the Donovan's Brain Interface is invented 6.2 won't support it and you will want it because it is easier to think than to find your mouse (although I can think of an operating system that is designed for people who have it the other way around). General, upgrading the OS is a good idea about six months after the second release of a major version number (i.e. when 7.2 or 7.3 is a release and is about six-months old). > If I don't want to run stable and use "tag=RELENG_6_2" will I > be required to keep the ports as they have installed from the disc? No. In fact you shouldn't. (But as mentioned above, never use any tag with ports except ".".) Of course there are two different things here that you might be confusing. The ports tree, which is a skeleton for building applications from scratch, and packages, which are pre-built binaries for applications. Here's the best way to install 6.2 starting with the CD release (assuming you have internet connectivity which I guess you do since you mailed to this list). 1. Install 6.2 including source, but do not install Xorg. 2. Install cvsup from a package or the ports, but do not install any other ports. 3. Use cvsup to update the release source (use the standard supfile). 4. Build and install world and the kernel according to instructions at the end of the UPDATING file in /usr/src 5. Cvsup the ports tree using the ports-supfile. 6. Install Xorg (and other applications you may want) from the ports tree. Well, 5a is install ports management software from the ports-mgmt section of the ports tree. I use portupgrade because it is the way I have always done things, but I hear some of the others may be better. You can use the -N switch with it when you are installing fresh ports instead of just upgrading. 6.2 is now fairly static (but it isn't STABLE) so you will only rarely see anything happening when you cvsup with the standard supfile. If anything does happen it is usually error-correction/diasater-avoidance related, so you probably should rebuild the system (or at least read the UPDATING file to see if the changes really affect something that is important to you). The ports tree, on the other hand, will usually have dozens of updates every day. After the usually flurry of basic applications you install at first, you probably should update the ports tree, read the ports UPDATING file and upgrade all your ports (like portupgrade -a) before you install any major application. The main object is to keep the ports in synch with other ports. There are just a few ports that do things (like build loadable kernel modules) which just won't work if they are too out of synch with the operating system, but these are few and far between. > Is there any connection between how current the ports are and how > current the OS is? > One of the things which caused me to wonder about this was that some > time back I tried FreeBSD out for a while and ran into some oddities > concerning the ports system. When I first finished setting things up > I could install packages using "pkg_add -r", but noticed that after > updating the ports I could no longer do that. That struck me as odd, > and because of it I always had a suspicion that I had broken the > system with my out of whack updates (I did not move up to stable at > that time) but I just never could really find out if that were so. More than likely the packages were broken. Often the available packages are way out of date or do not exist (because of licensing restrictions or no one got around to building them). Packages depend to much greater extent on the OS release. > One last newb question is concerning cvsup itself. In reference to > ports is there a difference, in the end, between this and portsnap? > Do they result in the same ports? I am sure this is answered > somewhere, but the handbook and other sites seem to take a somewhat > ground-eye view of how to use them but don't dwell much on the > mysteries behind what they do and how they may differ. Portsnap is a different system from cvsup. They should get approximately the same tree (not exactly the same because the ports tree changes so rapidly). Portsnap is usually run automatically (as a cron job) every few days, or oftener if you are really complusive. It is said to save bandwidth if used this way, so if you are administering a large system, it probably pays off. If this is your home desktop, you probably aren't adding or upgrading ports every day (but there are always some people who spend more time customizing their cars than riding in them) and cvsup is perhaps better suited for occasional spells of upgrading. -- Lars Eighner http://www.larseighner.com/index.html 8800 N IH35 APT 1191 AUSTIN TX 78753-5266