Call for comments - pkg_trans

Norberto Meijome freebsd at meijome.net
Sat Aug 2 07:32:30 UTC 2008


On Thu, 31 Jul 2008 23:59:12 -0700
Doug Barton <dougb at FreeBSD.org> wrote:

> Norberto Meijome wrote:
> > On Thu, 31 Jul 2008 23:38:21 +0200 "Ivan Voras"
> > <ivoras at freebsd.org> wrote:
> > 
[...]
 
> > As a matter of fact, i don't really see why we need a transaction
> > system to have an option to {pkg management of choice} to uninstall
> > {unwanted_pkg} and all other dependencies ONLY needed by
> > {unwanted_pkg}. Anyway, pkg_cutleaves does part of it...but it'd be
> > much handier, i think, to handle it @ the uninstall time.
> 
> As I mentioned previously portmaster has the -s option to remove ports 
> that were installed as dependencies but are no longer depended on. It 
> also has the -e option to "expunge" leaf ports you don't want anymore, 
> and -e will run 'portmaster -s' after it's done deleting the port you 
> specify on the command line.

Sounds great. Sorry, i don't use postmaster. Why? been using the
portupgrade/install/etc tools for longer; i actually like having different cmds
rather than parameters for everything ... silly things really.

I seem also to recall, from my usual read of several of the MLs, that more
people have issues dealing with dependencies when using postmaster than
portupgrade...which i hardly find with portupgrade. I do remember reading
someone's post (yours maybe? ) comparing postmaster to the portupgrade port and
the points raised where interesting-  again, i haven't found most of the issues
raised in that post.... 

(i just realised that most of the port-related cmds I use are from base,
maybe it is time for a change... ;) )


> > And since we are just wishing for things, It'd be nice to have an
> > opportunity to back off from a install/remove after calculating
> > dependencies, such as that provided by yum (it shows everything it
> > will do and asks for confirmation before proceeding. )
> 
> portmaster has the --show-work option that gives you output like this:
> 
> ===>>> Port directory: /usr/ports/sysutils/fusefs-ntfs
> ===>>> Starting check for all dependencies
> ===>>> Gathering dependency list for sysutils/fusefs-ntfs from ports
> 
> ===>>> Installed archivers/unzip
> ===>>> Installed converters/libiconv
> ===>>> Installed devel/gmake
> ===>>> Installed devel/libtool15
> ===>>> NOT INSTALLED		devel/libublio
> ===>>> Installed devel/pkg-config
> ===>>> NOT INSTALLED		lang/ruby18
> ===>>> NOT INSTALLED		sysutils/fusefs-kmod
> ===>>> NOT INSTALLED		sysutils/fusefs-libs
> ===>>> NOT INSTALLED		textproc/ruby-deplate
> 
> Is that what you had in mind? That is currently a separate operation 
> because for ports with a lot of dependencies it can take a long time 
> to build the list. 

right, but that is partly the point of having this information handy. Sometimes
one doesn't realise how much extra stuff is going to be installed.

In my case, I don't need/want kde, and have managed to stay out of its
libraries ways quite well...but it usually means having to check each ports
dependencies AND the dependencies' dependencies. Both the transaction support
for failed installations that Ivan is designing, and the --show-work option in
portmaster would address this.

> But I suppose that if there is interest I could 
> create a new mode of operation to do that check first, then confirm 
> with the user that they want to proceed.

Right. for example, in a Centos 5 server :

$ yum install zenity 
[...]
Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 zenity                  i386       2.16.0-2.el5     base              1.2 M
Installing for dependencies:
 atk                     i386       1.12.2-1.fc6     base              222 k
 cairo                   i386       1.2.4-5.el5      base              394 k
 cups-libs               i386       1:1.2.4-11.18.el5_2.1  updates           181 k
[....]
 scrollkeeper            i386       0.3.14-9.el5     base              294 k
 sgml-common             noarch     0.6.3-18         base               40 k
 xml-common              noarch     0.6.3-18         base              5.8 k
 xorg-x11-filesystem     noarch     7.1-2.fc6        base              5.4 k

Transaction Summary
=============================================================================
Install     30 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 14 M
Is this ok [y/N]:

The size of the installed package would be nice, but I don't think we can
provide that now. But the separation of {what you requested} vs {what is needed
for dependencies} , and the summary @ the end, is definitely good.

yes, by default would be nice for me (but since I'm not a portmaster user yet it
hardly matters too much :D ) , i think, with an override ( --no-summary ? ) to
bypass it.


Thanks for your time :)
B
_________________________
{Beto|Norberto|Numard} Meijome

Law of Conservation of Perversity: 
  we can't make something simpler without making something else more complex

I speak for myself, not my employer. Contents may be hot. Slippery when wet.
Reading disclaimers makes you go blind. Writing them is worse. You have been
Warned.


More information about the freebsd-ports mailing list