Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
I downloaded/uncompressed gtk+-2.10.14.tar.gz and created a rpm by
using checkinstall :
./configure --prefix=/opt/gnome/
make
su
#checkinstall :
I changed :
2 [gtk+] --> [gtk2]
7 [i386] --> [i586]
11 Provides [gtk+] --> [gtk2]
Weird! I got 10 requires [gtk2] and 11 Provides [gtk+]
If you give 'gtk2' as a 'requires' parameter, it's wrong because gtk2 doesn't require gtk2.
So either you give the real dependencies (atk, pango, ...) or you give nothing here.
What I don't understand is:
Quote:
I also tried with the default 10 [ ] 11 [gtk+] and got the same error.
Are you sure the package was recreated ?
And try to leave the 'requires' and 'provides' parameters blank.
Finally be sure you have the current SUSE binary gtk2 version 2.10.6-13-i586 rpm file available, in case you will have to reinstall it.
Quote:
gtk+-2 and gtk2-2 are rather confusing.
I agree it may be confusing but gtk+ and gtk2 are synonymous, and many distros use the name gtk2, to not use the '+' character in the name.
It's the same in the Arch Linux distro : gtk2 2.10.14-3
Hello again zigoto
You should have post that at the other thread you opened on this same subject.
I hesitated. Thread was old and name different...
Quote:
Originally Posted by berbae
(please give the entire and real error message)
The entire error message is: Dependences are required:
gtk2=2.10.6 is necessary for (yet installed) gtk2-doc-2.10.6.13.i586
gtk2=2.10.6 is necessary for (yet installed) gtk2-devel-2.10.6.13.i586
Quote:
Originally Posted by berbae
Are you sure the package was recreated ?
How can I make this sure?
Quote:
Originally Posted by berbae
And try to leave the 'requires' and 'provides' parameters blank.
Impossible. I can't get a blank 11 Provides [gtk+]
Possibly the problem is there. If I write something for the 11 item, it appears in the 10 item...
Quote:
Originally Posted by berbae
Finally be sure you have the current SUSE binary gtk2 version 2.10.6-13-i586 rpm file available, in case you will have to reinstall it.
With the entire error message, I can see what is the problem :
you have the packages gtk2-doc-2.10.6.13 and gtk2-devel-2.10.6.13 installed on your machine. It is these packages which depend on the original SUSE gtk2-2.10.6-13, and when you try to update the gtk2 package, the dependency for these packages is broken.
The solution is to first uninstall these 2 packages:
rpm -e gtk2-doc-2.10.6.13 gtk2-devel-2.10.6.13
(I think the i586 part is not included in the package name:
you can see the package names with 'rpm -qa|grep gtk2')
then to update the gtk2 package:
rpm -Uvh gtk2-2.10.14-1.i586.rpm
(here it is the binary rpm file, not the package name, so the '.i586.rpm' part is kept).
The doc and devel parts are already included in the package generated by checkinstall (remember this will not be a standard SUSE package).
Don't forget to run the command:
ldconfig
(and also presumably 'SuSEConfig' with SUSE).
And don't touch the 'provides' parameter (leave the default gtk+ value),
write nothing in the 'requires' field.
You say that the gtk2-2.10.6-13 package is installed, but if you have to reinstall it after the update, you need to have the binary rpm file available: gtk2-2.10.6-13.i586.rpm (you can download it from a SUSE repo).
I remind you the command to go backward, if something doesn't go well:
rpm -Uvh --oldpackage gtk2-2.10.6-13.i586.rpm
All this should do the trick for you.
At least I hope so.
Ask if something is not clear.
With the entire error message, I can see what is the problem :
you have the packages gtk2-doc-2.10.6.13 and gtk2-devel-2.10.6.13 installed on your machine. It is these packages which depend on the original SUSE gtk2-2.10.6-13, and when you try to update the gtk2 package, the dependency for these packages is broken.
The solution is to first uninstall these 2 packages:
rpm -e gtk2-doc-2.10.6.13 gtk2-devel-2.10.6.13
rpm -e gtk2-devel-2.10.6-13
erreur: Dépendances requises:
gtk2-devel est nécessaire pour (déjà installé) gtksourceview-devel-1.8.1-21.i586
gtk2-devel est nécessaire pour (déjà installé) libgcj41-devel-4.1.2_20061115-7.i586
gtk2-devel est nécessaire pour (déjà installé) libglade2-devel-2.6.0-23.i586
gtk2-devel est nécessaire pour (déjà installé) libgnomecanvas-devel-2.14.0-23.i586
gtk2-devel est nécessaire pour (déjà installé) libwnck-devel-2.16.1-18.i586
gtk2-devel est nécessaire pour (déjà installé) poppler-devel-0.5.4-20.i586
gtk2-devel est nécessaire pour (déjà installé) vte-devel-0.14.1-18.i586
gtk2-devel est nécessaire pour (déjà installé) gail-devel-1.9.3-17.i586
gtk2-devel est nécessaire pour (déjà installé) at-spi-devel-1.7.12-17.i586
gtk2-devel est nécessaire pour (déjà installé) libgnomeui-devel-2.16.1-20.i586
gtk2-devel est nécessaire pour (déjà installé) gucharmap-devel-1.8.0-28.i586
gtk2-devel est nécessaire pour (déjà installé) libgnomedb-devel-1.3.91-53.i586
gtk2-devel est nécessaire pour (déjà installé) gnome-desktop-devel-2.16.1-28.i586
gtk2-devel est nécessaire pour (déjà installé) ghex-2.8.2-28.i586
gtk2-devel est nécessaire pour (déjà installé) gtkhtml2-devel-3.12.2-4.i586
gtk2-devel est nécessaire pour (déjà installé) eel-devel-2.16.0-30.i586
gtk2-devel est nécessaire pour (déjà installé) librsvg-devel-2.16.0-28.i586
gtk2-devel est nécessaire pour (déjà installé) gnome-main-menu-devel-0.6.3-47.i586
gtk2-devel est nécessaire pour (déjà installé) nautilus-devel-2.16.1-32.i586
gtk2-devel est nécessaire pour (déjà installé) gnome-media-devel-2.16.1-30.i586
gtk2-devel est nécessaire pour (déjà installé) nautilus-cd-burner-devel-2.16.1-27.i586
gtk2-devel est nécessaire pour (déjà installé) libgail-gnome-devel-1.1.3-31.i586
gtk2-devel est nécessaire pour (déjà installé) libgtkhtml-devel-2.11.0-38.i586
Oh my God! If I have to uninstall all these packages... :-(
run:
rpm -e --nodeps gtk2-doc-2.10.6.13 gtk2-devel-2.10.6.13
to force the uninstallation.
The 'devel' part of the package will be included in the new updated one, so the dependency with the other packages will not be really broken.
That problem you are encountering stems from the non standard SUSE package produced by the checkinstall utility.
If you want something cleaner with SUSE, you must follow the other method I gave you at the other thread (with the source rpm file and the rpmbuild command).
But this one you are following can work, though you will have a rpm database with broken dependencies (not so serious but somewhat dirty for a rpm based distro).
I must add also that the devel packages contain header files only used to compile from source. So they are not absolutely necessary for a functioning system, but only if you want to compile programs. But as this is your intention, you probably need to keep them.
So go ahead with the '--nodeps' option concerning the gtk2-devel package.
Close every package manager which may be opened (YaST, apt, yum or smart).
I only have Konsole opened to run the command and still I get the error :-(.
Perhaps program are running that I don't know : my hard disk often is running and I don't know why (not connected to the Internet).
Yes! -doc- and -devel- are removed and gtk2 is updated :-)
I ran ldconfig: nothing happened.
I tried SuSEConfig and SuseConfig : "unknown command"
With Yast, I can see that gtk2-2.10.14 has a small bolt icon instead of a
checked box. Also m4 and automake, that I updated before, have this bolt icon; yet,
autogen-sh in my svn sandbox, which uses automake, works right. I am going to
install gimp which uses this gtk.
What this bolt means?
What is the role of ldconfig?
Congratulations for your obstinacy!
To know the ldconfig command, read the manual: 'man ldconfig'
It's normal that nothing appears on the screen when you run it, but it's necessary to run it.
The exact command is 'SuSEconfig', I'm not sure if it is necessary to run it in this case, but it can't produce no evil to run it.
As for the bolt icon in YaST, if I remember correctly, it means that YaST will not touch the package because it considers it a personal package not from a SUSE repo, but I am not sure as I don't use this distro at this time.
I hope you a good continuation in your compiling experiments to get more recent packages.
But think also to upgrade the entire distribution to a newer version (OpenSUSE 10.3 will be released soon) because it is the safest mean to get newer versions of programs in this distro.
Also I encourage you to try the other method I gave you because it is more adapted to SUSE and produces standard SUSE packages.
As long as you do not install the packages under root, it is without risk to try to produce the binary rpm package files.
To know the ldconfig command, read the manual: 'man ldconfig'
It's normal that nothing appears on the screen when you run it, but it's necessary to run it.
Must I run it just after 'rpm -U', or can I wait for another session?
Quote:
The exact command is 'SuSEconfig', I'm not sure if it is necessary to run it in this case, but it can't produce no evil to run it.
man SuSEConfig gives explanations, but the command --> 'Unknown command'...
Quote:
As for the bolt icon in YaST, if I remember correctly, it means that YaST will not touch the package because it considers it a personal package not from a SUSE repo, but I am not sure as I don't use this distro at this time.
This explains why automake-1.10 works in spite of this padlock.
And doesn't explain why my updated gtk is not recognized by gimp :
*** Could not run GTK+ test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GTK+ is incorrectly installed.
The config.log is a huge file I can't reproduce here. Here is an extract containing 'gtk':
configure:27732: checking for pkg-config
configure:27763: result: /usr/bin/pkg-config
configure:27785: checking for GTK+ - version >= 2.10.13
configure:27905: gcc -o conftest -g -O2 -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -pthread -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/libpng12 -I/opt/gnome//include/gtk-2.0 -I/opt/gnome//lib/gtk-2.0/include -I/opt/gnome/include/atk-1.0 -I/opt/gnome/include/pango-1.0 -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include conftest.c -pthread -L/opt/gnome//lib -L/opt/gnome/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lfreetype -lz -lfontconfig -lexpat -lglitz -lm -lpng12 -lXrender -lX11 -lpthread -lXau -lXdmcp -lgthread-2.0 -lglib-2.0 >&5
In file included from /opt/gnome//include/gtk-2.0/gdk/gdkcolor.h:31,
from /opt/gnome//include/gtk-2.0/gdk/gdkcairo.h:23,
from /opt/gnome//include/gtk-2.0/gdk/gdk.h:30,
from /opt/gnome//include/gtk-2.0/gtk/gtk.h:31,
from conftest.c:47:
/opt/gnome//include/gtk-2.0/gdk/gdktypes.h:51:23: error: gdkconfig.h: No such file or directory
configure:27908: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME "GIMP"
| #define PACKAGE_TARNAME "gimp"
| #define PACKAGE_VERSION "2.4.0-rc3"
rpm -qa|grep gtk shows that gtk2-2.10.14-1 is installed...
The ldconfig command should be ran just after the installation of the package.
The exact command is 'SuSEconfig' not 'SuSEConfig'.
Quote:
error: gdkconfig.h: No such file or directory
The configure script doesn't find this header file.
In the SUSE gtk2-devel package, this file is located in '/opt/gnome/lib/gtk-2.0/include/'.
But in the non SUSE gtk2 package, it may be located elsewhere.
You can seek for it and give the path to it using the CPPFLAGS environment variable :
export CPPFLAGS='-I<directory to the gdkconfig.h header file>'
./configure
You can also check what you have in the directory '/opt/gnome/lib/pkgconfig' :
ll /opt/gnome/lib/pkgconfig
The SUSE gtk2-devel package has :
/opt/gnome/lib/pkgconfig/gdk-2.0.pc
/opt/gnome/lib/pkgconfig/gdk-pixbuf-2.0.pc
/opt/gnome/lib/pkgconfig/gdk-pixbuf-xlib-2.0.pc
/opt/gnome/lib/pkgconfig/gdk-x11-2.0.pc
/opt/gnome/lib/pkgconfig/gtk+-2.0.pc
/opt/gnome/lib/pkgconfig/gtk+-unix-print-2.0.pc
/opt/gnome/lib/pkgconfig/gtk+-x11-2.0.pc
Do you have them?
Check if you have the pkgconfig package installed:
rpm -q pkgconfig
If not, you need it.
And study 'man pkg-config'.
I will be absent these next days, so I suggest that you try to solve the difficulties you may encounter reading the INSTALL file and the output of './configure --help'.
Bye for now.
Edit: as the subject is different, now you can open another thread about the compilation of Gimp.
There was probably a bug in my rpm or in gtk+-2.10.14 : the gtkconfig.h was absent in /opt/gnome/include/gtk2.0/gdk/, though it was present in the source.
I uninstalled gtk2-2.10.14 and installed gtk2-2.10.13 and the problem disapeared.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.