[MacPorts] #58018: MacPorts fails to run after manual install via tarball

MacPorts noreply at macports.org
Mon Feb 4 01:54:34 UTC 2019

#58018: MacPorts fails to run after manual install via tarball
  Reporter:  dlo     |      Owner:  (none)
      Type:  defect  |     Status:  new
  Priority:  Normal  |  Milestone:
 Component:  ports   |    Version:  2.5.4
Resolution:          |   Keywords:
      Port:          |

Comment (by ryandesign):

 Replying to [ticket:58018 dlo]:
 > (Side note: I would recommend explaining to more technical users why
 "sudo" is necessary for the default MacPorts installation as it remains
 unclear to me after a fair amount of searching around.)
 > I decided to install MacPorts in my home directory, under
 > My configure command:
 > {{{
 > ./configure --with-no-root-privileges --prefix=$HOME/macports
 > }}}

 Installing without root privileges is possible but is not recommended
 because it is less secure. When started with root privileges, MacPorts
 drops to an unprivileged "macports" user. Thus, MacPorts cannot affect
 your files and it cannot affect your operating system files (because the
 "macports" user does not have permission to do that) except at those very
 limited times when MacPorts must elevate itself back to root in order to
 install files. This is more secure than a non-root installation in which
 MacPorts has the ability to affect your user files at any time and a
 badly-written Portfile or build system could harm your files. In addition,
 with a non-root MacPorts installation, any rogue process on your machine
 could overwrite MacPorts-installed files without your knowledge; with a
 root MacPorts installation, that would not be possible without you
 providing your administrator password.

 Configuring with a non-default prefix is possible but is not recommended
 because then you cannot benefit from our precompiled binaries and you will
 have to spend time compiling every port you want to install.

 I agree that we should add this information to our documentation.

 > I then ran:
 > {{{
 > make && make install
 > }}}
 > The last command seemed to run into a few failures, notably:
 > {{{
 > chmod -h 555 "/Users/dan/macports/bin/portf" "/Users/dan/macports/bin
 > chmod: invalid option -- 'h'
 > Try 'chmod --help' for more information.
 > make[2]: *** [install] Error 1
 > make[1]: *** [install] Error 1
 > make: *** [install] Error 1
 > }}}
 > Well, odd, I thought, but I didn't specify anything outside of the
 ordinary so figured that this must have been a false alarm. (After some
 digging, it turns out that coreutils / GNU chmod acts differently than the
 one bundled into macOS. May want to check for that in the configure

 That's correct. I guess we expect you to be using BSD chmod, as provided
 by Apple with macOS. Placing GNU utilities before BSD utilities in your
 PATH is a sure way to break things on macOS, so don't do that.

 Replying to [comment:1 dlo]:
 > Update: after removing coreutils chmod from my $PATH, the `make install`
 step still fails with the same error.

 Did you run `make clean` first, and rerun the `./configure` step? If not,
 try that.

 > Anywho, I then ran `port install git` to test things out and got this
 error message:
 > {{{
 > $ port install git
 > sources_conf must be set in
 /Users/dan/macports/etc/macports/macports.conf or in your
 /Users/dan/.macports/macports.conf file
 >     while executing
 > "mportinit ui_options global_options global_variations"
 > Error: /Users/dan/macports/bin/port: Failed to initialize MacPorts,
 sources_conf must be set in /Users/dan/macports/etc/macports/macports.conf
 or in your /Users/dan/.macports/macports.conf file
 > }}}

 The message is correct. `sources_conf` must be set in macports.conf. It is
 set there by default, so you either removed it or perhaps you have an
 ancient copy of macports.conf from a previous MacPorts installation from
 before the `sources_conf` option existed. Compare your macports.conf with
 our macports.conf.default and adopt all the changes that you can.

Ticket URL: <https://trac.macports.org/ticket/58018#comment:2>
MacPorts <https://www.macports.org/>
Ports system for macOS

More information about the macports-tickets mailing list