You are not logged in.
I'm new to Arch, I've been using it for the past one or two months.
I have been doing "pacman -Suy" every day now and everything went fine.
Yesterday, Gnome 2.24 came through. So, I installed it. I noticed today that many parts of GNOME 2.24 have not been installed correctly. For example:
-> The deskbar applet was not there
-> The hamster-applet was not there
-> The Dwell-click applet was not there
...
Mostly, stuff belonging to gnome-extra meta.
When i decided to "pacman -Sy gnome-extra", it told me that it was going to "reinstall" and NOT upgrade all the corresponding packages because they were all up-to-date (some of them were not present on my system), but then again told me to download some 27MB of packages. So I decided to proceed with the install and, lo and behold, eveything checks out OK.
I'm baffled. Shouldn't "pacman -Suy" had upgraded everything the first time? I mean, check that gnome-extra was new and so re-install it with the new packages? What is going on here? Are there any more metas like gnome-extra that I should be upgrading by hand?
P.S. Note: I'm using Pacman-color v3.2.1.b instead of pacman. Could this be responsible?
Thanks!
Offline
Umm isnt it pacman -Syu ...not Suy?
DOnt you want to Sync first then upgrade?
But you could ignore my n00bness and im most probably wrong.
Certified Android Junkie
Arch 64
Offline
The order does not matter. So "pacman -Syu" == "pacman -Suy"
Pacman does not keep track of the groups installed. So when new packages join a group (either because they are new or have been split from an old package) you will need to install them.
A command to help you "pacman -S gnome-extra --needed"
Offline
So the only option I see to *really* upgrade the whole system is to remember what package groups I want installed, and issue something like this:
$ sudo pacman -Suy --needed base gnome gnome-extra compiz-fusion gstreamer0.10-plugins texlive-most xorg ... && sudo pacman -Suy
This is reasonable enough: If I wanted yesterday to install gnome-extras, why wouldn't I want today the (new) packages that the upgraded gnome-extras contains?
Is there any way for pacman to remember what package groups I have explicitly installed and upgrade these as well? Something like -e option, but which works for package groups. I haven't found anything resembling this for pacman, have I missed something?
(forgot the --needed option)
Last edited by yourself (2008-10-23 12:27:35)
Offline
No.
pacman -Syu will update all packages that are currently on the system that are currently out of date. It will not download new packages that have been added to a group since the install of that group. For instance:
If GroupA contains packages: foo1 foo2 foo3 and foo4
Pacman -Syu will not add package foo5 if/when foo5 is added to GroupA.
Offline
And there is currently no way to check for group dependencies?
Sounds like a nice added option, or am I missing something?
I did "install" group "xorg". I was kind of expecting -Syu to check for groups as well... hmmm...
*heads off to check missing group-dependencies*
Stand back, intruder, or i'll blast you out of space! I am Klixon and I don't want any dealings with you human lifeforms. I'm a cyborg!
Offline
I think there is/was a bug report about adding this functionality. The --needed option was added to cover this situation so I don't know if it is still open...
Offline
pacman -Syuyuyuyuyuyuyu works equally well
Offline
I'll check when i get home
lol@iphitus, what's the recommended dose of yu's? I wouldn't want to cut myself short on those
Last edited by klixon (2008-10-23 13:55:55)
Stand back, intruder, or i'll blast you out of space! I am Klixon and I don't want any dealings with you human lifeforms. I'm a cyborg!
Offline
I have sent a message to the pacman-dev ML, let's see where that gets us...
Offline
So, there is in fact a discussion about this issue:
Offline
pacman -Syuyuyuyuyuyuyu works equally well
Not equally... that will force a database refresh.
Here's a script (Python for a change ) that can check if a locally installed group is complete or not. If not, it will list the packages that are missing. If you pass it group names as arguments, only those groups will be checked. If you don't pass it any arguments, all groups found locally will be checked. Be careful in how you interpret this because you might have installed a package that belongs to a group and it might tell you that xx packages belonging to that group were not found on your computer. Obviously, if you haven't installed the group, that's what you'd expect.
The script does not install or update anything. It only displays some info. Save it as "group_checker.py" and make it executable. To check "gnome" and "gnome-extra", invoke as follows:
group_checker.py gnome gnome-extra
group_checker.py
#!/usr/bin/python
import sys
import os
import re
from sets import Set
from string import join
local_group_cmd = 'pacman -Qg'
for arg in sys.argv[1:]:
local_group_cmd += " %s" % arg
local_group_list = os.popen(local_group_cmd).read().rstrip()
if len(local_group_list) == 0:
exit()
regex = re.compile('(\S+)\s+(\S+)')
local_group_dictionary = {}
for line in local_group_list.split("\n"):
(group,pkg) = regex.search(line).group(1,2)
if local_group_dictionary.has_key(group):
local_group_dictionary[group].add(pkg)
else:
local_group_dictionary[group] = Set([pkg])
sync_group_cmd = 'pacman -Sg ' + join(local_group_dictionary.keys())
sync_group_list = os.popen(sync_group_cmd).read().rstrip()
sync_group_dictionary = {}
for line in sync_group_list.split("\n"):
(group,pkg) = regex.search(line).group(1,2)
if sync_group_dictionary.has_key(group):
sync_group_dictionary[group].add(pkg)
else:
sync_group_dictionary[group] = Set([pkg])
for group in local_group_dictionary.keys():
missing_pkgs = sync_group_dictionary[group].difference(local_group_dictionary[group])
if len(missing_pkgs) == 0:
print "%s is complete" % group
else:
print "%s contains the following %d package(s) not found on your system" % (group, len(missing_pkgs))
for pkg in missing_pkgs:
print "\t%s" % pkg
My Arch Linux Stuff • Forum Etiquette • Community Ethos - Arch is not for everyone
Offline
But the whole idea is that you *shouldn't* have to do version checking -- you let the package manager to it for you by issuing one command..!
The reason we find "pacman -Suy" convenient is that it checks automatically all the packages. If we had to do "pacman -Su <package>" for each package in our system, we wouldn't find it convenient...
My point is that we shouldn't be expected to check wether gnome-extras/whatever has changed, exactly for the same reason we are not expected to check if a specific pakage has changed.
Offline
Currently pacman ONLY has a concept of "installed packages" not "installed groups". That is the issue here. From pacman's point of view, a group is just a list of packages. When you install the gnome group, pacman really says "ok installing these 10 packages". When you check for an update, it says "are there updates to these 10 packages" NOT "are there updates to this group".
There is a bug report regarding this, but the changes needed are fairly complex. --needed was most likely added as an interim solution. Anyone is welcome to provide a patch if you're unhappy.
Offline
There is a bug report regarding this, but the changes needed are fairly complex. --needed was most likely added as an interim solution. Anyone is welcome to provide a patch if you're unhappy.
No no no! The changes (if this is done the "right way", using dummy metapackages that contain other normal packages as dependencies) are minimal (only in the repository: add the new dummy packages and you're done).
The only change that would be required in pacman is if we decided to completely drop the group concept and go with the metapackge concept. If both remain (I don't see a reason for groups to remain but other people might) absolutely no change in pacman is required...
Offline
groups don't require you to install everything in them like metapackages do.
With metapackages if you don't install all the dependencies it keeps bugging you that you have unfulfilled dependencies.
i prefer groups, but I doubt it would be hard to just make gnome-metapackage and gnome-extras-metapackage packages and update them every 6 months.
Offline
Make a metapackage and put it in the AUR if you really want one. That is what it is there for...
Offline
[shameless plug]
You can use "metapax" to create metapackages, among other things. The link is in my sig.
[/shameless plug]
My Arch Linux Stuff • Forum Etiquette • Community Ethos - Arch is not for everyone
Offline