Date: Sat, 06 May 2000 19:33:05 GMT From: Salvo Bartolotta <bartequi@neomedia.it> To: Nils Holland <nils@nightcastleproductions.org> Cc: freebsd-questions@FreeBSD.ORG Subject: Re: Updating software from the ports-collection Message-ID: <20000506.19330500@bartequi.ottodomain.org> In-Reply-To: <Pine.BSF.4.21.0005061655160.753-100000@ilka.ncptiddische.net> References: <Pine.BSF.4.21.0005061655160.753-100000@ilka.ncptiddische.net>
next in thread | previous in thread | raw e-mail | index | archive | help
>>>>>>>>>>>>>>>>>> Original Message <<<<<<<<<<<<<<<<<< On 5/6/00, 3:59:44 PM, Nils Holland <nils@nightcastleproductions.org> wrote regarding Updating software from the ports-collection: > Well, imagine I have some software from the ports collection installed= on > my system. Now I update the ports collection using CVSup and I notice that > a new version of the software I have installed is available. I can now= > normally build and install the new version, but I wonder what happens to > the old version? Its files will be overwritten by the new version, so that > whenever I use the software I use the new version. But will the old > version remain marked as installed in FreeBSD's database? I'm asking this > question because I don't know if I should (for example) remove siag-3.2.0 > before I install siag-3.3.3 or if I don't need to worry about that... > Any suggestions are appreciated. > Nils Dear Nils Holland, Usually, you upgrade a package in order to **substitute** the new version for the old one. A recommended general procedure is the following: 1) issue "make clean" in the port directory; 2) issue "make" in the port directory; thus you make sure the new version actually builds before you replace it; 3) issue "pkg_delete [-f] <name_of_old_package>; "-f" (force) is necessary if the package in question is needed by other packages; a "pkg_info | grep <package_name>" will spit out the exact name (and version) of the package you currently have: thus you will be able to feed the above-mentioned pkg_delete command; 4) make install in the port directory; this command actually installs the package. This is a *general* approach. I have run into a couple of remarkable exceptions so far. Exception I Few months ago, I updated a package in a mega metaport. The metaport as a whole would NOT work. I might have spent some time trying to solve the problem if I had been interested in the solution. But I only wished to make it work. So I wrote a little script to grep, clean and deinstall the relevant old components of the metaport; next, I recompiled and installed the updated metaport. Needless to say, this cleared all difficulties. A similar method also makes sure that the relevant metaport components you recompile get the new patches ... Exception II Some programs must be able to run in more than one version. Some ports require a given version; other ports require a different one. In such cases, those ports are (should be) designed in order NOT to conflict with one another. You will find out if this is the case with a quick look at the port(s) directory/ies, viz at the .../pkg/PLIST. One last note. When you install a lot of ports, you should be careful, as is suggested in the handbook (chapter on ports, troubleshooting section.) HTH, Salvo To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000506.19330500>