restoring a desktop environment in Linux

walla

Senior member
Jun 2, 2001
987
0
0
I've managed to screw up my Gnome Desktop to the point where all the icons are broken and the panel crashes when I try to use it.

I am sure this happened because I tried to upgrade gtk+, glib2. It compiled and installed without any problem, but it made my desktop unusable on reboot. Obviously, I need to plan the upgrade a little better.

Anyway, I've fallen back on KDE and it works. But I'd like to restore the Gnome desktop to a working version without having to reinstall the entire OS. I would prefer to restore all of the old libraries and file (or fresh install of Gnome). Any ideas on how to do this?

BTW, I am using SuSE 9.2, YaST updater - if that makes it any easier, please tell. Thanks.
 

Sunner

Elite Member
Oct 9, 1999
11,641
0
76
If it's just your user's desktop you can try deleting the .gnome* directories in ~.
 

walla

Senior member
Jun 2, 2001
987
0
0
I tried that to no avail. The problem appears to be much more serious.

Whether I log on as a user or root, both desktops' panels will scrash when you click a link on them. I have a feeling its because there is a component needing to be upgraded that doesn't play nice with the new gtk+,glib files. Perhaps this is gnome-panels, or gnome-desktop itself.

Sorry, trying to get over my linux newb phase... :)
 

cleverhandle

Diamond Member
Dec 17, 2001
3,566
3
81
Yeah, doesn't sound like a dotfile problem. That might get a messed-up panel or one that doesn't start, but probably not the click-and-crash behavior.

Sounds to me like a dependency or library versioning problem, like you suspect. But that sort of thing should really be taken care of by Yast. Is there anything at all non-standard about your GTK/GNOME packages (e.g. experimental or self-compiled)? You say you were upgrading Glib/GTK. Why were you upgrading, and were you using SuSe packages? Were there GNOME packages that Yast tried to upgrade as well (and maybe failed for some reason)?

Generally speaking, Glib, GTK, and GNOME all want to upgraded at the same time, from the same source - they're all very tightly tied together, and there are about a zillion compile-time options that vary widely from system to system.

If you can't sort out the problem, reinstalling GNOME and all of it's components is pretty difficult. In theory, you should be able to uninstall all the packages and just start over. But in practice, there are so many sub-packages, many of them tied to other non-GNOME programs, that it would be faster to simply reinstall the whole system (especially so if you're new to Linux).
 

walla

Senior member
Jun 2, 2001
987
0
0
Originally posted by: cleverhandle
Yeah, doesn't sound like a dotfile problem. That might get a messed-up panel or one that doesn't start, but probably not the click-and-crash behavior.

Sounds to me like a dependency or library versioning problem, like you suspect. But that sort of thing should really be taken care of by Yast. Is there anything at all non-standard about your GTK/GNOME packages (e.g. experimental or self-compiled)? You say you were upgrading Glib/GTK. Why were you upgrading, and were you using SuSe packages? Were there GNOME packages that Yast tried to upgrade as well (and maybe failed for some reason)?

Generally speaking, Glib, GTK, and GNOME all want to upgraded at the same time, from the same source - they're all very tightly tied together, and there are about a zillion compile-time options that vary widely from system to system.

If you can't sort out the problem, reinstalling GNOME and all of it's components is pretty difficult. In theory, you should be able to uninstall all the packages and just start over. But in practice, there are so many sub-packages, many of them tied to other non-GNOME programs, that it would be faster to simply reinstall the whole system (especially so if you're new to Linux).

I was self compiling a lot of files, like gtp+,glib,orbit,gnome-python, etc. The reason I did this is because I was trying to compile a program that needed new versions of everything. SuSE 9.2, through YaST, did not provide new enough files for this purpose, nor could I find RPMs for them, so I though I'd give it a shot and do it manual. That failed horribly :)

I would like to avoid wiping everything out and starting fresh, because it took me a heckuva long time to set up some of my drivers for the laptop. But if there is no easy way just to roll back to an old version of Gnome, then I guess I have no alternative other than pretending Gnome doesn't exist. I was hoping there was a way to do this through YaST, but I don't want to risk killing KDE as well.

If anyone could explain to me, point me to information about what I should have done (as far as properly upgrading GTK, glib, without breaking Gnome)...or give me some idea about the structure of Gnome and its components, I would appreciate that as well!
 

cleverhandle

Diamond Member
Dec 17, 2001
3,566
3
81
Originally posted by: walla
I was self compiling a lot of files, like gtp+,glib,orbit,gnome-python, etc. The reason I did this is because I was trying to compile a program that needed new versions of everything. SuSE 9.2, through YaST, did not provide new enough files for this purpose, nor could I find RPMs for them, so I though I'd give it a shot and do it manual. That failed horribly :)
1) In general, you don't want to dodge your package manager and hand-compile anything apart from trivial programs. Compiling your own stuff is a good way to confuse your system and break things.

2) Double the above advice when it comes to compiling libraries.

3) Triple the above advice when it comes to anything related to GNOME.

If you really must install new library versions, install them to their very own prefix and compile your new program using CFLAGS and/or LDFLAGS that point to that prefix. That way the rest of your system remains blissfully unaware of the new library's existence.
I would like to avoid wiping everything out and starting fresh, because it took me a heckuva long time to set up some of my drivers for the laptop. But if there is no easy way just to roll back to an old version of Gnome, then I guess I have no alternative other than pretending Gnome doesn't exist. I was hoping there was a way to do this through YaST, but I don't want to risk killing KDE as well.
YaST isn't going to help you now, since you bypassed it earlier. If you still have the build directories around, you could do a make uninstall from each one (or manually hunt through the directories if you already wiped the build dirs). If everything was installed to /usr/local (usually the default for tarballs), that might actually work. But if any of the new libraries overwrote the original ones, you'll have to force RPM to reinstall the originals. And you might need to do this from the console, in case KDE is using any of those new libraries.
If anyone could explain to me, point me to information about what I should have done (as far as properly upgrading GTK, glib, without breaking Gnome)...
As stated above, use separate prefixes for the new libs and set flags so that those are used during the new program's compile. I don't think you'll find any easy distillations of that process online - too much of it depends on the relationship between the libraries and other tools involved and on paths and other system-specific details. Mostly, it's just a matter of picking a PREFIX and using CFLAGS to point there. But with GNOME, there will likely be some complications with tools or components that aren't simply libraries (like the python stuff or scrollkeeper). If you have no idea what any of the above means, then you should start with something a bit more guided (maybe LFS) before you go blazing your own trail on a system that you actually want to use.
or give me some idea about the structure of Gnome and its components, I would appreciate that as well!
The underpinnings of GNOME are ridiculously complicated. There are dozens of packages involved without even counting any actual applications. You can get a sort-of overview at the GNOME Dev site, but to really understand much of it you'll need to know C well and be willing to spend a lot of time exploring the code.

Sorry to sound like a wet blanket, but this seems to me like an example of how the system allowing you to do anything you want doesn't necessarily mean that you should.

BTW, what package did you want that caused all these problems? 9.2 is current - I'm surprised that any programs absolutely require newer GTK-related libs to function.
 

walla

Senior member
Jun 2, 2001
987
0
0
Thank you for all of that advice.

I wiped out most of the build directories, so make uninstall is out of the question.

The package I was tring to install was "gDesklets", the latest version. The problem came because it needed the latest pyorbit bindings. Well, I tried to compile that, and I ran into errors that seemed to be related to its not recognising certain gtk constructs upon compile, as well as needing new "orbit" files, python librarires. So then, I decided to upgrade gtk+. This of course needed up to date versions of things like atk, glib. I can't believe I spent so much time and effort trying to get that dumb program to compile, and ended up killing Gnome.

What I am more concerned about is...the version of Gnome that comes with SuSE 9.2 is not the latest. But YaST does not give me an option to upgrade. As far as I can tell, it will never give me that option. So if I want to upgrade to the latest gnome how do I avoid either trying to install and understand everything in a manual build or completely reinstalling the distro when a new version finally supports the updated Gnome? I do not mind learning what I need to learn, but I mean how does Linux expect to embrace mainstream, less-than-geek users with its OS when even these "user-friendly" distros are so complex to upgrade?

In the future, I will tread more cautiously...thats for sure. But I do not look forward to having to reinstall my OS every time I want the latest and greatest :(
 

Sunner

Elite Member
Oct 9, 1999
11,641
0
76
Generally distributions like SuSE, Fedora, etc won't let you upgrade major versions, only minor versions for the sake of security and bug fixes.
If you want something that's always up to date, install Gentoo, if you're happy to stay a little bit behind, Debian, and if you want hand holding but a fast moving release schedule, Fedora might be a good idea.

But like cleverhandle said, you really don't want to confuse the package manager no matter what distro you pick.

Always having the latest and greatest means you will have to get your hands dirty sooner or later.
 

cleverhandle

Diamond Member
Dec 17, 2001
3,566
3
81
Originally posted by: walla
The package I was tring to install was "gDesklets", the latest version.
You just had to get the eye candy, didn't you? :)
What I am more concerned about is...the version of Gnome that comes with SuSE 9.2 is not the latest. But YaST does not give me an option to upgrade. As far as I can tell, it will never give me that option. So if I want to upgrade to the latest gnome how do I avoid either trying to install and understand everything in a manual build or completely reinstalling the distro when a new version finally supports the updated Gnome? I do not mind learning what I need to learn, but I mean how does Linux expect to embrace mainstream, less-than-geek users with its OS when even these "user-friendly" distros are so complex to upgrade?
Mainstream, less-than-geek users don't even know what a "desktop environment" is, much less that there's a new version of one that they're itching to upgrade to. Most distros only change major components (like GNOME) as part of whole-system upgrades when the new distro version is released. So, for example, if 9.3 comes out tomorrow it will have an upgrade option to bring all your packages up to date at once. Until then, you generally just have to be patient. Sometimes there are unofficial packages available for big things like GNOME, but those are often more trouble than they're worth.

Also, another issue is that SuSe has never been known for great GNOME support - they've always been the biggest supporter of KDE. So any given SuSe version might well be a GNOME version behind the competitors. If you want cutting-edge GNOME that's still user-friendly you might try Fedora instead.