How to use changelog to update Slackware package?
Ok, so I've been burnt twice using Swaret to update/upgrade packages
Many have recommended to read the Slackware changelog before doing anything
It needs to be asked, how does one use or what is the best way to use the changelog to update/upgrade packages without getting burnt or running into problems?
not entirely sure what you mean
the changelog is fairly self-explanatory
eg: added X package and rebuilt Y against X etc
So I have some x11 packages that need to update/upgraded
Here are the other ones that I'm pulling out the changelog, cause I seem to have problems with x11 when it comes to update/upgrading packages
If you are running current you will find those packages in the corresponding directory (a,n,etc) on any slackware mirror.If you are running 10.2 they will be in the patches directory. Download them to your box, and ,as root, run:
(where xxxx is the complete name of the package, for example: upgradepkg x11-xvfb-6.9.0-i486-9.tgz)
This will replace the old package with the new one. Doesn't get much easier. I've been screwed by swaret also and decided this was a much safer aprroach for me. One less layer to screw up.
ps--you may need to restart some services that are upgraded
The important part to reading the changelog is looking for re-named packages, removed packages, an split packages. For instance, you are looking at upgrading x11. An important entry in the changelog is:
do not upgrade your official packages with linuxpackages.net packages
the recompiled in your example just indicates
that there weren't any changes to those packages
basically, just keeping the build numbers consistent
as long as you're not touching kernel* lilo glibc* aaa*
and you read the entire changelog relating to your upgrade
and take the necessary actions (adding new packages that
others depend on, upgrading other existing packages that
packages depend on, etc) you should be fine
for instance, if a while back you upgraded x11
and hadn't read that some packages were split out of it
and hadn't installed those new packages...
most everybody would have told you to read the changelog
What you do will depend on what you are running to some degree.
I have been running -current for a long time and it is easier for me to maintain my own copy of the entire -current tree on my server. I do this with a script that makes use of rsync. I then run upgradepkge --install-new against the entire tree to upgrade what has been upgraded and install any new additions. Anything removed I remove myself using pkgtool or removepkg.
I plan to stick with the stable release when slackware 11.0 is officially released. In that situation, I would only check the "patches" directory for official packages to install using "upgradepkg patchname.tgz".
In either case, the changelog will tell you what changes have happened and why. Then you go out and get them. Pretty simple.
Examples of mirrors for rsync would be:
These are just ftp sites that allow rsync. If you poke arround you will see how they are set up. There are directories for each release much like a repository except all the packages are official slackware packages. rsync is nice in that it only downloads the changes - nice for -current which gets changed often. If you start by copying the install disks to your drive, then you will only download the changes (at this point there have been many so maybe wait till 11 ;))
Check the stable trees while you are out there. You will see a directory called patches. If you are only running the stable release and have the install disks then all you need to download when indicated is the contents of the patches directory. Example:
I will include the script I use to rsync. It's pretty simple and mostly self-explanatory. I found it on usenet and made minor changes. I call it "check-current" and -c checks only, -d downloads. I put it in /usr/local/bin and make it executable.
Read man rsync to understand the options.
Alien Bob posted links his that also creates isos for you (very nice!)
The thread is here:
Sorry if this is over-kill on the question, but I remember being clueless regarding the same things.
As usual, the doing is the easy part. Figuring out what to do is harder.
Ok so I'm updating my packages by hand.
For example, the first one I've upgraded was libtiff...
Let me know if I'm doing this right.
First I go to
Use cntl + f to find libtiff and it returns this...
Next step, is that I hit the following url:
Cntl + F and find libtiff and d/l it
Use whereis to find libtiff
Change permission on the package and run
So that's it for libtiff, I have a bunch more I have to do...let me know if I'm doing right, and I'm sure I'll have more questions...
The only really interesting thing is that it looks like you have manually installed libtiff in the past (find shows it is in /usr/local/lib). You may want to remove that so that you don't have any conflicts.
So I don't get it. What directory do I install the pkg too?
And, I've never installed anything by hand before, I've always used slapt-get to update my packages. When I ran upgradepkg, it
said it was successful...?
Though running whereis was not needed, it did point out that you have some packages installed to /usr/local. You may want to look through there to see what else you have installed to /usr/local.
Generally, there are 3 main places where programs get installed:
Many distros put KDE in /opt, but some (like Debian) do not. You can really put things anywhere, but if you are making packages for others, it is best to keep with convention.
Lets say I want to install the KDE app digikam. In Slackware, this program is not included by default. If I were to compile from source, I would do the
BUT, before I did that I would check the options I could enable or disable when I compile the program by entering the following:
./configure -h or
One of the options to choose would be where I wanted to install the program. This is done by using the "prefix=" option. A program will always have a default location, but you can always change that by using this flag.
KDE programs - like digikam - usually have a default location of prefix=/opt/kde. If I were running a distro that had KDE in /usr, I might want to change the install location to /usr by using the "prefix=/usr" flag.
Others users will only install new (added) programs to /usr/local and, if /usr/local is on it's own partition, this can have some benefits if a re-install is ever needed.
Regardless, the point to take home here is that the location where a "package" is installed is determined at compile time "by the person who created the package". You, as a person installing foo.tgz with installpkg or pkgtool, don't need to be concerned about this because the decision has been made allready.
For example, if I created a digikam.tgz package with prefix=/usr/local, then everyone who used that package would have digikam installed to /usr/local with the binary in /usr/local/bin. If I built the package using the default (/opt/kde) then everyone who used that package would have it installed to /opt/kde and the binary would be found in /opt/kde/bin.
A package is a "precompiled program" in the form that is particular to a given distro: rpm for redhat etc., deb for debian etc., and tgz for slackware. Installing a program in package form vs. /configure, make,make_install is benificial in that it is easier to install, uninstall, or upgrade programs when they are installed this way.
When people create a slackware package like digikam.tgz, the location and other compile-time options have allready been determined by the person who made that package. If you got your package from a reputable source, then they will have followed established practices for slackware package-building and the program will be placed where it is expected to be found. But, even if they - or you for that matter - chose a different location, things will still work fine so long as the system and any other programs that might depend on that program know where to look for the libraries. This is done using ldconfig and the /etc/ld.so.conf file.
This was a very quick overview. I'm sure if I left something important out it will be posted.
I will post more to this thread as I continue to upgrade my packages manually.
So I updated all of my packages, but I used slapt-get.
Let me tell you why...
I was trying to use upgradepkg and pkgtool to upgrade Gimp. After reading thru the changelog, I though should be no problem.
Got the package and tried to install it but the package was corrupt, it was late at night..too tired...so I said to hell with it.
Grabbed the latest Gimp package from linuxpackages and then ran slapt-get and everything went ok.
Now I still have to upgrade some X11 packages on my main PC, so I will have to do these by hand becaues this is the machine I've had problems on the in past.
thanks again everyone...
You are not supposed to upgrade from linuxpackages.net
Is the current changelog for slackware stable. Just open that in a browser and look at the most recent entries(Every entry since the last time you upgraded).
You can find those packages inside this directory right here.
Just download the .tgz and run "upgradepkg filename.tgz" and then you can delete the TGZ. That is all. It's really very simple.
|All times are GMT -5. The time now is 10:10 PM.|