binary rpm repos?

Ryan Schmidt ryandesign at macports.org
Mon Mar 9 22:10:15 PDT 2009


On Mar 9, 2009, at 21:50, Bradley Giesbrecht wrote:

> On Mar 9, 2009, at 3:44 PM, Ryan Schmidt wrote:
>
>> There are the docbook xml ports now which print a message saying I  
>> need to run some command I'm never going to remember if I ever  
>> uninstall the port.
>
> I'm not sure what you are meaning here

I mean that when you install e.g. the port "docbook-xml-4.5" the  
following message is displayed to the user:

######################################################################
# As MacPorts does not currently have a post-deactivate hook,
# you will need to ensure that you manually remove the catalog
# entry for this port when you uninstall it.  To do so, run
# "xmlcatmgr remove nextCatalog /opt/local/share/xml/docbook/4.5/ 
catalog.xml".
######################################################################

If MacPorts had a post-deactivate hook, the port could do this task  
itself and not need to bother the user with it. I know I sure as heck  
am not going to remember what command some port asked me to run when  
I uninstall it, since it's probably been months or years since I  
installed it.

> but if there is anything that a user NEEDS to do after uninstalling  
> a port maybe the port uninstall command could pause with the  
> message and wait for confirmation, bailing is the user clicks [n].

We can't do that today because port is not interactive (except in  
interactive mode, but that still doesn't allow individual portfiles  
to interact with the user). Anyway that's also not the solution I  
would want; I would want proper deactivate and uninstall hooks.


> This isn't a big deal but some people may do something silly like  
> "port uninstall installed echo p5-*" not knowing that it's going to  
> uninstall everything.
> Ok, that was me :) Trying to figure out how to chain port commands.

There is no chain of port commands. You only get one action command,  
but it can then act on any number of ports. In the above case, the  
action you asked for is "uninstall", and you asked for it to act on  
the pseudoport "installed" (which expands to the list of all  
installed ports), and the nonexistent port "echo", and all ports  
matching "p5-*". Here is the usage for the port command, from its  
manpage:

      port [-vdqfonRusbckixpt] [-D portdir] [-F cmdfile] [action]  
[actionflags]
           [[portname | pseudo-portname | port-url]]
           [[@version] [+/-variant ...] ... [option=value ...]]

Part of the confusion arises because there are some keywords (for  
example "installed" and "outdated") which are both actions and  
pseudoports. As an action, "installed" shows you the versions and  
variants of all ports you have installed, and "outdated" shows you  
what ports are outdated along with their current and the newer  
version that's now available. As pseudoports, "installed" expands to  
the list of installed ports, and "outdated" to the list of outdated  
ports. This lets you do things like "port upgrade outdated" (upgrade  
all outdated ports) or "port info installed" (get info on every  
installed port).




More information about the macports-users mailing list