Date: Tue, 12 Mar 2002 10:24:15 -0800 From: "Jay Krell" <jay.krell@cornell.edu> To: "Mike Meyer" <mwm-dated-1016357299.b208e5@mired.org> Cc: <questions@freebsd.org> Subject: Re: ports -- recursive make vs. recursive make install vs. su Message-ID: <002301c1c9f3$1e939970$4600a8c0@mshome.net> References: <000701c1c9a5$224e7b00$0100a8c0@jayk1> <15501.51763.23175.569530@guru.mired.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Ok, thanks. I understand most of this. I understand stuff may not run if not installed..I'd kind of hoped the directory structure under work tended to mimic the structure under "/usr/local" so they'd kind of run "rerooted" but that may be a pipedream, at least for all ports. I didn't realize some of the dependencies were only build dependencies..I guess stuff like autoconf/make/m4 are build only. > you generally don't want non-root users installing software. Right..but I was hoping to minimize what root did..like not do the build, takes a while, only do the quicker install..I was kind of thinking there's this ideal -- "minimize time running as root" -- I should try to live by..I guess that's at odds with *nix in a nonprofessional (home) environment and its infinite configurability, maybe I should always be root.. (yes, yes, I know that's considered a cardinal sin.) So the generally accepted practise is to make and make install ports as root? Or to manually follow the dependencies yourself? Make, su, make install each one, so that when it comes time to make, all deps are already met? - Jay ----- Original Message ----- From: "Mike Meyer" <mwm-dated-1016357299.b208e5@mired.org> To: "Jay Krell" <jay.krell@cornell.edu> Cc: <questions@freebsd.org> Sent: Tuesday, March 12, 2002 1:28 AM Subject: Re: ports -- recursive make vs. recursive make install vs. su > Jay Krell <jay.krell@cornell.edu> types: > > Here's something that bugs me about the ports, but I hope it's just due to > > some lack of understanding on my part: > > > > cd /usr/ports > > su > > chmod -R a+rw . > > control-d back to non-root > > cd net/foo > > make > > foo depends on bar, make automatically goes to ../net/bar, does make, tries > > make install, it fails > > Which is the correct behavior, as you generally don't want non-root > users installing software. > > > What I'd _like_..and I guess this might just be really hard, I'd like for > > dependencies to be meetable via /usr/ports/net/bar/work/... instead of > > requiring bar to be make installed..or at least that's one "solution" I can > > imagine. What I know works is that I can go to /usr/ports/net/foo, su, make, > > and so both make and make install run as root. > > Some ports already do that, but it's kind of kludgy. Possibly they've > all stopped as well. > > First thing to understand is that there are two types of dependencies: > RUN and BUILD. If foo has a runtime dependency on bar, then you've got > to have bar installed for foo to run properly. If someone comes along > and "cleans" the port. foo is going to quit working. If it's just a > build dependency - well, those are the cases I've seen do that in the > past. The problem here is that the port may not run properly without > it's configuration files installed, etc. I.e. - even if you could run > it out of the work area, there's no guarantee that it would behave > properly. > > > Or am I missing something? Is there already an option to "run" ports out of > > the built/work directory, instead of make installing them? > > Nope, there isn't such an option. In fact, there are ports that have > no dependencies that won't work until you install them, because > installing them installs data files or libraries that they need. > > <mike > -- > Mike Meyer <mwm@mired.org> http://www.mired.org/home/mwm/ > Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information. 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?002301c1c9f3$1e939970$4600a8c0>