Re: [macports] Building in a jail?
Forgot to send it to the list. Again! On Jan 23, 2008 10:17 PM, James Sumners <james.sumners@gmail.com> wrote:
Thanks for the suggestions. I have successfully built x86 binaries of TeXmacs, patched to depend on texlive ;), and texlive.
On Jan 23, 2008 5:14 PM, Ryan Schmidt <ryandesign@macports.org> wrote:
On Jan 23, 2008 4:21 PM, James Sumners wrote:
On Jan 23, 2008, at 15:06, Chris Pickel wrote:
On 23 Jan, 2008, at 12:34, James Sumners wrote:
I just upgraded from a PowerBook to a MacBook Pro. The migration assistant tool kept my old macports system intact. I can still run all of the ports I had installed; particularly, I can still use TeXmacs and teTeX. However, I had built all of my ports as PPC binaries, so they are running via Rosetta. This also means I can't update any of my ports because port fails to recognize the architecture. Since there have been so many posts lately about things failing to build on 10.5, I'm a little scared to wipe my old macports system and rebuild from scratch. I particularly can't afford to be without a LaTeX environment right now.
So, is there any way I can "jail" a new installation of macports? If I can build everything successfully, I want to be able to delete the old version and move the new one to the standard location.
You can have multiple installs of MacPorts on a single system. However, some ports may not work if you change the location of the installation. So, I would recommend that you move the existing installation aside (i.e. `sudo mv /opt/local /opt/ppc`) and install a new one in its place. If you succeed at getting the new one running sufficiently, you can get rid of the old one; otherwise move the old one back in place.
In order to quarantine two MacPorts installations, you should build them from source. The tarballs are available on the Downloads [1] page. You should ./configure them along the lines of the following:
% ./configure --prefix=/opt/local \ --with-tclpackage=/opt/local/share/macports/Tcl
You can pick something other than /opt/local if you want, but it might not work to move it back to /opt/local later, should you care. Also, it's possible that you might get conflicts for files installed in /Applications/MacPorts or /Library/Frameworks.
I was concerned about configuration files outside of /opt/local. But now that I think about it, even if there are any, the Intel port won't have a different configuration than the PPC one. So that could probably work. Thanks.
Configuration files go in ${prefix}/etc, so there shouldn't be any outside of ${prefix}. However, some ports do install other things outside of ${prefix}. For example, into /Applications/MacPorts. You should also rename /Applications/MacPorts to /Applications/MacPorts- ppc before installing MacPorts again, and remove it later once everything's ok. If you had any server programs, they may also have installed startup items in /Library/LaunchDaemons (if you were running Tiger and up) or /Library/StartupItems (for Panther and before).
Some ports will install other things outside the prefix, perhaps in / usr/X11R6. I'm guessing these items weren't migrated from the old system, therefore any ports that depend on this are now broken.
You don't need to build MacPorts from source; you could also just install from the Mac Ports 1.6.0 Leopard disk image. But before you do, you will also need to rename /Library/Tcl/macports1.0, for example to /Library/Tcl/macports1.0-ppc.
If your "port" command were working, "port contents foo" would show you what a port installed. You could run "port contents installed" to see everything installed by all ports, and filter this to see everything that was installed outside of the prefix, for example since your prefix is /opt/local you could run:
port contents installed | grep -v '^Port .* contains:' | grep -v /opt/ local
However, you said yourt "port" command isn't working, probably since it needs the Tcl libraries in /Library/Tcl/macports1.0, and these are for the wrong architecture.
If you still have this ports installation on the PowerPC Mac on which it was originally installed, you could run the above command there, to discover where else outside of ${prefix} items were installed, and use that information to remove those files on the Intel Mac prior to reinstalling MacPorts.
--
James Sumners http://james.roomfullofmirrors.com/
"All governments suffer a recurring problem: Power attracts pathological personalities. It is not that power corrupts but that it is magnetic to the corruptible. Such people have a tendency to become drunk on violence, a condition to which they are quickly addicted."
Missionaria Protectiva, Text QIV (decto) CH:D 59
-- James Sumners http://james.roomfullofmirrors.com/ "All governments suffer a recurring problem: Power attracts pathological personalities. It is not that power corrupts but that it is magnetic to the corruptible. Such people have a tendency to become drunk on violence, a condition to which they are quickly addicted." Missionaria Protectiva, Text QIV (decto) CH:D 59
Just a note. I had to move the old /opt/local to my desktop (or really, anywhere other than /opt/). For some reason ld tried to use libXm from /opt/local.ppc/ when building TeXmacs. Once I moved the local.ppc directory out of /opt/ and did a `port clean texmacs` I was able to successfully install the port. -- James Sumners http://james.roomfullofmirrors.com/ "All governments suffer a recurring problem: Power attracts pathological personalities. It is not that power corrupts but that it is magnetic to the corruptible. Such people have a tendency to become drunk on violence, a condition to which they are quickly addicted." Missionaria Protectiva, Text QIV (decto) CH:D 59
participants (1)
-
James Sumners