HowTo: Upgrade Slackware 12.0 to 12.1
作者:shadowsnipes
翻译:vvoody
原文:http://www.linuxquestions.org/questions/slackware-14/howto-upgrade-slackware-12.0-to-12.1-640473/
This HowTo will show you an example of how to upgrade Slackware 12.0 to 12.1.
这个 HowTo 展示了如何从 Slackware 12.0 升级到 12.1。
Note: This HowTo is just a guide and does not cover all possible scenarios. Rather it attempts to expand on the great information carefully compiled in the UPGRADE.TXT and CHANGES_AND_HINTS.TXT through a practical example. Again, this HowTo is just a guide and may not be correct for your situation. Use your brain and adjust accordingly. If you have any questions, concerns, comments, or complaints please voice them through posting. This is a forum after all
注意:这个 HowTo 只是一个指南,不会覆盖所有可能出现的情况。更确切地说,它试图通过一个实例对 UPGRADE.TXT 和 CHANGES_AND_HINTS.TXT 上的信息进行括展。又,这个 HowTo 仅是一个指南,对于你的情况未必正确。开动脑筋相应地调整。如果你有任何的问题,担心,评论或者不满,请回帖将它们说出来。要知道这里是论坛哦:)
Updates:
All of the recent changes are in RED.
红色部分为最近的改动。
The sections of this HowTo are:
Should You Upgrade?
Things You Need to Upgrade
Backup Computer
Getting 12.1 Sources
Create List of Non-Slackware Software
Begin Upgrade
Mass Upgrade
Alternative Mass Upgrade with slackpkg
LILO and the Fancy Bootsplash
Get Rid of Obsolete Slackware Packages from 12.0
Merge Changes for Config Files
Update Your Graphics Drivers (if needed)
Miscellaneous Fixes
Rebuild/Upgrade any Non-Slackware Packages (as Needed)
Fix Other Random Problems
HowTo 目录:
你应该升级吗?
升级前的准备
备份
获得12.1
建立非Slackware软件包的列表
开始升级
集中升级
用 slackpkg 集中升级(可选)
LILO和漂亮的启动画面
移除12.0的废旧软件包
合并配置文件的改动
更新图形驱动(如需)
杂项修补
重建/升级所有非Slackware软件包(如需)
修补其他怪问题
Should You Upgrade?
你应该升级吗?
This should be the first thing you ask yourself. What’s in it for you? If you aren’t sure, you should read the following docs:
这首先应该问问你自己。它里面有什么是你需要的?如果你不确定,你应该阅读下面的文档:
ANNOUNCE.12_1
RELEASE_NOTES
CHANGES_AND_HINTS.TXT
How much work will it take? Well that depends on your system. If your system is in a state of disaster with software installed who knows where then it might be a better idea to backup and install a fresh Slackware 12.1 instead.
有多少工作量?嗯,这取决于你的系统。如果你的系统有不知道谁装的软件引起的麻烦,那么做好备份然后安装个全新的 Slackware 12.1 是个不错的注意。
Things You Need to Upgrade
升级前的准备
1) Slackware 12.1 sources – however you can get them: On a CD/DVD, local mirror, from a slackware mirror, network mount, etc
1) Slackware 12.1 的资源 - 无论如何你都能从 CD/DVD,本地镜像,slackware远程镜像,网络安装获得。
2) Slackware 12.0 installation – This is a HowTo on upgrading from 12.0 after all…
2) 已安装了 Slackware 12.0 - 这毕竟是一个从 12.0 升级的 HowTo。。。
Originally Posted by CHANGES_AND_HINTS.TXT
Note that upgrading from a Slackware version earlier than 12.0 is NOT supported at all and will almost certainly lead to breakage.
译注:从12.0前的版本直接升级到12.1会导致系统破坏。
So, for instance, you can’t directly upgrade (safely) from Slackware 9.0 to 12.1. You would probably need to upgrade incrementally to each version. After you’re done you need to post a member success story
所以,比如,你不能直接从 Slackware 9.0 (安全地)升级到 12.1。你的大概可能需要一个一个版本递增地升级。等你做完了写篇会员成功升级的文章哦:)
3) Time – This is not a one click upgrade process. It will require that you think. Take your time and do it right the first time.
3) 时间 - 这不是一键式的升级过程。你想想它需要多久。抽空来一次性完成安装。
4) (Newest Graphics Driver) – It might be a good idea, for instance, to grab the latest Nvidia driver now if you are going to need it later.
4) (最新图形驱动) - 如果你过会儿需要它,那么现在去下载最新的 Nvidia 驱动是个好注意。
Backup Computer
备份
This is without a doubt the first thing you should do before making any major system changes.
这无疑是你在做任何主要的系统改动前所做的头一件事。
Originally Posted by UPGRADE.TXT
Before you begin, I would strongly recommend making a backup of your
system, or, if not the entire system, at least the /etc directory. You
might find that you need to refer to a few things after the upgrade
process is complete. Back it up, or take your chances.
译注:不备份整个系统,起码 /etc 目录得备份一下。
Getting 12.1 Sources
获得12.1
Most people will probably download the full iso, but if you have downloaded some sources from -current previously it might be more worth your while to simply mirror. In my case I had previously used Alien Bob’s mirror-slackware-current.sh to create a local mirror of -current and install cds. I had used these to test -current. Before using mirror-slackware-current.sh I recommend you create mirror-slackware-current.conf based upon the options that you want changed from the defaults (see beginning of mirror-slackware-current.sh).
大部分人可能会下载完整的iso镜像,但如果你之前已经从 -current 下载了些文件,那么花些时间在简单的镜像上是值得的。我之前已经用 Alien Bob的 mirror-slackware-current.sh 来建立了一个 -current 和安装光盘的本地镜像。我已经用这些来测试 -current。在用 mirror-slackware-current.sh 之前我建议你根据默认选项(见脚本开始部分)做些改动建立一个 mirror-slackware-current.sh 的配置文件。
An example mirror-slackware-current.conf
mirror-slackware-current.conf示例
BUILDER="shadowsnipes [email@youremail.com]"
SLACKROOTDIR="/mnt/path/to/Slackware_Mirror"
ISO="NONE"
EXCLUDEFILE="/home/USERNAME/scripts/mirror-slackware/mirror-slackware-excludes"
My mirror-slackware-excludes contains
我的 mirror-slackware-excludes 包括
pasture/
source/
slackware/kdei/
Also, if you run the script with -h you can see the runtime arguments available.
脚本的 -h 选项可以查看所有可用的运行参数信息。
After -current became Slackware 12.1 all I had to do was
change my mirror folder names from slackware-current to slackware-12.1 and slackware-current-iso to slackware-12.1-iso.
-current 成为 Slackware 12.1 后,我做的就是
把镜像文件夹 slackware-current 改为 slackware-12.1,slackware-current-iso 改为 slackware-12.1-iso。
Then run
然后运行
mirror-slackware-current.sh -r 12.1
which mirrors the 12.1 release instead of -current. There were almost no changes between my latest copy of -current and 12.1.
用12.1来代替 -current的镜像。我最新的 -current 拷贝和 12.1 几乎没什么改变。
Another tip for using this script: If you have to mirror onto a non-linux partition take out the ‘p’ from the actual rsync commands in the script so that they don’t try to preserve permissions. In my case I only had enough free space on an external NTFS drive, so that is what I used. There are two places I had to change the script, since the sync is done twice. I simply changed a line that looks like
再来个使用这个脚本的技巧:如果你不得不在一个非Linux分区上做镜像,那就去掉 rsync 命令的 ‘p’ 选项,也就是不必保留权限。在我只有在外部的NTFS分区才有足够空间的情况下,我就是这么干的。脚本里有两个地方需要我改,因为同步操作有两次。我把下面这行
$RSYNC --delete --delete-excluded -z -rlptD \
to
改为
$RSYNC --delete --delete-excluded -z -rltD \
Also, for this to work correctly on a non-linux partition you must make sure the user running the script is the owner (mount using the uid option).
另外,为了能在非Linux分区上正确工作,确保运行脚本的是挂载该分区的所有者(用 uid 选项挂载)。
Create List of Non-Slackware Software
建立非Slackware软件包的列表
Before you move on into the upgrade you need to properly assess where you are, and in particular, what non-slackware software you have installed.
在升级之前你需要适当的评估你在什么样的系统里,特别是你已装了什么非Slackware的软件包。
By far the easiest way to do this is to use slackpkg, which you can find in /extra. It is recommended that you download the latest stable slackpkg release in order to have all the features used in this HowTo (such as batch and default_answer support). Do note, that the latest release is likely to be a later version than the one in the latest stable Slackware release, so you should add slackpkg to your blacklist to prevent accidentally downgrading it. You should also check the ChangeLog periodically to see if there are any crucial fixes.
目前做这个最简单的方法是用 slackpkg,你可以在 /extra 目录里找到。为了能用到这个 HowTo 里用到的所有特性(如批量处理和默认问答),请下载最新稳定版 slackpkg。注意,slackpkg的最新版本可能比最新的 Slackware 里的那个新,所以把 slackpkg 加入到黑名单里防止被意外降级。你也应该定期检查 ChangeLog,看看有什么重要的修补。
Once you install it, be sure to edit blacklist, mirrors, and slackpkg.conf under /etc/slackpkg as desired (set the mirror to one for 12.0 for now). Then to get your list you can simply do
一旦你安装好了它,根据需要一定要在/etc/slackpkg 里编辑黑名单,镜像以及slackpkg.conf(现在给12.0设定一个镜像)。然后做下面的得到列表
slackpkg update
slackpkg -dialog=off -batch=on -default_answer=no clean-system > NonSlackwarePackages.txt
NonSlackwarePackages.txt now contains a list of packages that aren’t a part of the Slackware tree.
NonSlackwarePackages.txt 包含了不属于Slackware 目录树的软件包列表。
Now is a good time to get rid of any of those non-slackware packages that you no longer need. There is a chance that you will have to rebuild some of your custom packages after the upgrade.
现在可以移除你不再需要的非Slackware的软件包。升级后仍有机会重建你定制的软件包。
I suggest organizing this list. You might want to, for instance, group some packages together that should be rebuilt or updated. You might also want to add any notes about software installed that is not packaged. It would be a good idea to refer to CHANGES_AND_HINTS.TXT again at this point.
我建议组织一下这个列表。比如把应该重建或者更新的包放到一起。也可以对一些没有打包的软件做些注释。这时候再次参考 CHANGES_AND_HINTS.TXT 是个好注意。
Begin Upgrade
开始升级
As root, go into runlevel 1.
用 root 用户进入 1 运行级别。(译注:请在控制台下执行telinit命令)
telinit 1
Mount mirror or install medium.
If the files are on a cd then you will have to mount the other cd(s) in order to install the other packages. In my example, I was using a local mirror on my external hard drive (second partition).
挂载镜像或安装媒体
如果文件在CD上那么你得挂载这些CD。在我的例子中,我使用在我的外部硬盘上(第二分区)的本地镜像。
mount -t ntfs-3g /dev/sda2 /mnt/externalNTFS
cd into the mirror’s directory
进入镜像目录
cd /mnt/externalNTFS/Slackware_mirror/Slackware-12.1/
upgrade glibc-solibs
升级 glibc-solibs
Originally Posted by UPGRADE.TXT
Upgrade your glibc shared libraries. This is important, or things might go haywire during the first part of the upgrade:
译注:必须先升级这个。
upgradepkg slackware/a/glibc-solibs-*.tgz
upgrade package utilities
升级包工具
upgradepkg slackware/a/pkgtools-*.tgz
Mass Upgrade
集中升级
The most basic way to upgrade/install all of the packages is to follow UPGRADE.TXT.
升级/安装所有软件包的最简单方法是跟着 UPGRADE.TXT 走。
Originally Posted by UPGRADE.TXT
3. Upgrade everything else (and install new packages):
upgradepkg –install-new /root/slackware/*/*.tgz
If you wish to upgrade everything except for the KDEI language
packs for KDE (these take a lot of space and can be dealt with
after the main upgrade more quickly and easily), running this
script in the “slackware” directory will do the trick:
#!/bin/sh
for dir in a ap d e f k kde l n t tcl x xap y ; do
( cd $dir ; upgradepkg –install-new *.tgz )
done
译注:先不要安装 KDEI 里的 KDE 语言包,这个脚本就是这个效果。
Keep in mind that if you are using cds your packages will be split among them, so you will have to use more than one instance of upgradepkg. By the same token, the for loop snippet given above should be altered to reflect which packages sections are actually on the cd.
记住,如果你是在用光盘,软件包会分布在这些盘中,因此你得用多次 upgradepkg 命令。基于同样的理由,上面的 for 循环需要修改,以反映哪些软件包部分在这张光盘上。
If you don’t want to upgrade/install certain packages (ie. blacklist them), then you will have to write a slightly more complicated script, install those package sections manually, or use something like slackpkg to help you.
如果你不想升级或安装某些包(例如把它们加入黑名单),那么你得写一个稍微复杂点的脚本,并手工安装这些部分。或者用像 slackpkg 这样的工具来帮助你。
Alternative Mass Upgrade with slackpkg
用 slackpkg 集中升级(可选)
The trick to using slackpkg to do this is to specify a mount point as the mirror in /etc/slackpkg/mirrors. Since it is just a mount point, it does not matter what kind of device the partition is on as long as you can read it. In my case I had a local mirror on a NTFS partition on an external hard drive. I simply added the following to /etc/slackpkg/mirrors
用 slackpkg 来集中升级的技巧就是在 /etc/slackpkg/mirrors 里指定一个挂载点作为镜像。因为只是个挂载点,无所谓分区在什么设备上,只要你能对它读就行了。我自己是在一个外部硬盘的 NTFS 分区上有一个本地镜像。我简单地把下面语句加入 /etc/slackpkg/mirrors。
cdrom://mnt/externalNTFS/Slackware_mirror/Slackware-12.1/
Of course, you could also specify a regular, non-local, mirror and use slackpkg in the usual way.
当然,你也可以按照平时的方法用 slackpkg 指定一个特别的,非本地镜像。
Blacklisting packages
把包加入黑名单
It is also important to make sure /etc/slackpkg/blacklist has all the packages listed you don’t want to be messed with. For instance, I do special things with my firefox packages so I list mozilla-firefox in the blacklist. Some people like to blacklist the kernel packages.
另外,确保 /etc/slackpkg/blacklist 里列出了所有你不想弄糟的软件包也是很重要的。例如,我特别定制了我的 firefox,所以我在黑名单里列出 mozilla-firefox。一些朋友喜欢把内核包列入黑名单。
A keen observer might note that by default a/aaa_elflibs is already blacklisted, while the instructions in UPGRADE.TXT clearly have you installing them. In general, yes, aaa_elflibs should be blacklisted because it will overwrite your core libraries. During a full system upgrade, however, you can upgrade them, but you don’t have to. The more important thing to realize is that this package is really only there to make sure you have the core libraries you need in case you do not do a full install of Slackware. As such, if you do a full install/upgrade of Slackware it is likely that you won’t need that package anyways. If you aren’t sure, simply check if all the files included are already installed (my pkg-sanity script is of some help for that). In this upgrade, I found no libraries where missing from not installing it. If you do choose install it, for whatever reason, just make sure it is one of the first packages installed (which is probably why it has ‘aaa’ in the front). Another post on aaa_elflibs
观察敏锐的朋友会发现 a/aaa_elflibs 默认已经被列入黑名单了,而 UPGRADE.TXT 里的说明明显会让你安装它们。一般来讲,aaa_elflibs 应该被列入黑名单,因为它会覆盖你的核心库。在完全升级系统中,你可以升级它们,但也不非得这么做。更加应该意识到的是,万一你没有完全安装Slackware,这个包在那儿的作用就是确保有你所需要的核心库。就这点而论,如果你完全安装或升级了 Slackware,你可能完全不需要那个包了。如果你不确定,那就简单地检查一下所有包含的文件是否都安装了(我的 pkg-sanity 脚本对这有些帮助)。这次升级中,我发现没有因为没装而缺少的库。不管什么原因如果你选择一定安装它,只要确保它是最先安装的几个包之一就行了(可能这就是为什么包名前是’aaa’吧)。另附一篇关于 aaa_elflibs 的帖子。
Once your slackpkg configuration is all set, update with the new mirror
一旦 slackpkg 的配置都设定好了,用新镜像更新一下
slackpkg update
and install the new packages
并安装新的软件包
slackpkg install-new
Review the list and deselect any you are not ready to install at this point.
这里重新回顾黑名单,并取消选择任何你不准备安装的。
Note: By default, slackpkg will prompt you to handle new config files after installing/upgrading packages. If you need help on this skip down to the “Merge Changes for Config Files” section momentarily.
注意:默认 slackpkg 会提示你操作安装/升级后新的配置文件。如果需要帮助,那暂时跳到 “合并配置文件的改动” 章节。
Upgrade all the packages
升级所有软件包
slackpkg upgrade-all
Again, review the list and deselect any you are not ready to install at this point. You might want to look at the kernel section of this HowTo before you upgrade them.
同样地,这里重新回顾黑名单,并取消选择任何你不准备安装的。在升级内核之前,你可能想看一下这个 HowTo 的内核部分。
Since I was using fuse and ntfs-3g (both created via slackBuilds from slackBuilds.org) for my external NTFS partition, I decided not to upgrade those packages just to be safe. After all the other packages were installed I copied the packages to my hard drive, unmounted the external drive, stopped fuse (/etc/rc.d/rc.fuse stop), and then upgraded the fuse and ntfs-3g packages using upgradepkg. After that I started fuse and remounted the drive.
因为我正用 fuse 和 ntfs-3g(都是通过来自 slackBuilds.org 的 slackBuilds 脚本创建的)来操作我的外部 NTFS 分区,安全起见我决定不升级这些包。等其他包都安装好,我把软件包拷回我的硬盘,卸载外部驱动器,停止 fuse (/etc/rc.d/rc.fuse stop),然后用 upgradepkg 升级fuse 和 ntfs-3g。我再开启 fuse 并重新挂载驱动器。
Kernel Packages
内核包
Keep in mind that the kernel image packages change the symlinks in /boot for System.map, config, and vmlinuz. This is important to note because a lot of people refer to vmlinuz in their boot manager’s configuration. Which ever kernel image package is installed last (usually huge-smp) will have the symlinks pointing to its respective files. So, after upgrading your kernel packages you might have to fix these symlinks and modify your bootloader’s configuration (/etc/lilo.conf for LILO) accordingly.
记住,内核包会改变 /boot 里 System.map,config 和 vmlinuz 的软链接。注意这个是很重要的,因为许多朋友在启动管理器配置里指向了 vmlinuz。无论哪个最后安装的内核镜像包(通常是 huge-smp),软链接会指向它各自的文件。所以,升级你内核包后,你可能得修改这些软链接并修改启动引导器的配置(LILO 的话是 /etc/lili.conf)。
Also, if you ever modified your past kernel sources or built custom kernels, you should take a look in the following places to see if any clean up is necessary:
如果你曾修改过你过去的内核源文件或者定制了内核,那么你应该看看下面这些地方,看看是否有清理的必要:
/usr/src
/lib/modules
/etc/rc.d/rc.modules*
In my case, I had a kernel sources folder and a module folder for a custom 2.6.21.5 kernel I had built that I needed to remove (I no longer intended to use them). I also had a rc.modules file for it that needed to be removed and the rc.modules symlink had to be fixed.
在我的例子中,我有一个内核的源文件文件夹和模块文件夹,那是我建立的定制过的 2.6.21.5 内核(我不打算再用它们了)。我还有一个需要删除的 rc.modules 文件,rc.modules 软链接也得修改。
Also, if you need an initrd you will need to set that up. Finally. since your kernels changed you will need to run lilo (assuming you are not using another bootloader). But first…
同样,需要 initrd 就建一个。最后,由于你内核的改动,你需要运行 lilo 命令(假设你没在用另一个启动引导器)。但首先。。。。。。
LILO and the Fancy Bootsplash
LILO和漂亮的启动画面
To use the bootsplash new to Slackware 12.1 you need to modify your lilo.conf. Slackware’s liloconfig has an option to add this for you, and looking at its code you can see what it is doing. It uses a function called boot_bmp() that simply cats the necessary text into lilo.conf, and then it makes sure that the boot message is turned off by commenting that line out.
为了使用新加入 Slackware 12.1 的 bootsplash,你需要修改 lilo.conf。Slackware的 liloconfig 工具有一个选项为你加入这个,让我们从它的代码中看看它做了什么。它用了一个叫 boot_bmp() 的函数,简单地把必要的文本写入 lilo.conf,并注释掉启动欢迎信息的那行,确保关闭它。
The beginning of my lilo.conf looks like this (the bold sections are what I manually changed for the bootsplash)
我的 lilo.conf 开始部分(粗体部分是我手工为 bootsplash 做的修改)
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
boot = /dev/hda
#compact # faster, but won't work on all systems.
# Boot BMP Image.
# Bitmap in BMP format: 640x480x8
bitmap = /boot/slack.bmp
# Menu colors (foreground, background, shadow, highlighted
# foreground, highlighted background, highlighted shadow):
bmp-colors = 255,0,255,0,255,0
# Location of the option table: location x, location y, number of
# columns, lines per column (max 15), "spill" (this is how many
# entries must be in the first column before the next begins to
# be used. We don't specify it here, as there's just one column.
bmp-table = 60,6,1,16
# Timer location x, timer location y, foreground color,
# background color, shadow color.
bmp-timer = 65,27,0,255
# Standard menu.
# Or, you can comment out the bitmap menu above and
# use a boot message with the standard menu:
#message = /boot/boot_message.txt
prompt
timeout = 40
Get Rid of Obsolete Slackware Packages from 12.0
移除12.0的废旧软件包
The CHANGES_AND_HINTS.TXT files does a good job of listing these.
CHANGES.TXT 文件很好地列出了这些。
Originally Posted by CHANGES_AND_HINTS.TXT
*** PACKAGE REMOVALS SINCE 12.0 ***
a/util-linux: Removed (replaced by util-linux-ng).
ap/espgs: Removed. This is replaced by ghostscript.
ap/gimp-print: Removed. This is replaced by gutenprint.
e/emacs-info: Removed (this is now included in the monolithic emacs package).
e/emacs-leim: Removed (this is now included in the monolithic emacs package).
e/emacs-lisp: Removed (this is now included in the monolithic emacs package).
e/emacs-misc: Removed (this is now included in the monolithic emacs package).
e/emacs-nox: Removed (this is now included in the monolithic emacs package).
l/libmusicbrainz: Removed.
l/libtunepimp: Removed.
l/mcs: Removed (renamed to l/libmcs).
x/dejavu-ttf: Renamed to x/dejavu-fonts-ttf.
x/xorg-server-xdmx: Removed. This is unmaintained upstream.
extra/ham: Removed due to lack of maintenance.
extra/intel-wlan-ipw3945/*: Removed; support for these devices is included
in the kernel now.
extra/linux-wlan-ng: This does not compile on 2.6.24.x kernels.
extra/ntfsprogs: Upgraded and moved to the AP seires.
extra/xf86-video-ati-6.6.3: Removed.
pasture/gcc-3.4.6/: Removed.
slackpkg is again useful here.
这里 slackpkg 再次派上用场。
slackpkg -onoff=off clean-system
will list all of the packages not found in Slackware 12.1 (none selected for removal). Compare this to the list you created earlier and select the obsolete slackware 12 packages (the ones appearing in the slackpkg dialog but not your original list). In my example, I found two obsolete packages not included in the CHANGES_AND_HINTS.TXT file.
列出了所有没在 Slackware 12.1 里找到的包(不是被选择删除)。把这个与之前建立的列表做比较,并选择废旧的 Slackware 12的包(那些出现在 slackpkg 的对话框里而不是你原来列表里的包)。我的例子中,我发现两个没有包含在 CHANGES_AND_HINTS.TXT 里的废旧的包。
xf86-input-acecad-1.2.0
xf86-input-void-1.1.0
Merge Changes for Config Files
合并配置文件的改动
Originally Posted by UPGRADE.TXT
6. Fix your config files. Some of the config files in /etc are going to
need your attention. You’ll find the new incoming config files on
your system with the “.new” extension. You may need to fill these in
with information from your old config files and then move them over.
译注:旧的配置文件还在新的配置文件则是以.new结尾的,按需改动。
Regardless of what method you choose to upgrade packages, you will have to devote some of your time deciding if there is anything in the new config files that you need.
不管你用什么方法升级软件包,你都得花点时间决定新的配置文件中是否有你需要的东西。
slackpkg has a nice feature that will find these files for you and ask what you want to do with them. This can be specifically done by running ‘slackpkg new-config‘. My personal preference is to Prompt for each one. If I know I didn’t modify the old config (perhaps because it is not something I use, such as bluetooth), I simply Overwrite it with the new one. For the ones I know I modified, I choose to Keep them, and I manually merge any changes I want later. For all the ones I am not sure about, I Diff them and make my decision from there.
slackpkg 有个很好的特性帮你找到这些配置文件,并询问你想对它们做什么。这可以通过运行 ‘slackpkg new-config‘ 很准确地完成。我个人偏好对每个文件都提示。如果我知道不曾改动过旧的配置(可能因为我没有使用一些东西,比如蓝牙),我会简单地用新文件覆盖它。那些我知道我改过的,我选择保留它们,并且以后我会手动合并任何改动。那些我不确定改过没有的,我会对比新旧文件,再做出决定。
One annoying thing I noticed with slackpkg, is that if you choose Overwrite, the old config file is backed up with a .orig extension. Since I had already backed up my entire system, I found these files to be clutter and used find to remove them. In particular, you need to be careful about any possible .orig files under /etc/modprobe.d.
slackpkg 有已经恼人的事我得指出,就是如果你选择了覆盖,旧配置文件会以.orig 的后缀备份起来。因为我已经备份了我整个系统,我发现这些文件变得杂乱,得用 find 命令删除它们。/etc/modprobe.d 里任何潜在的 .orig 文件你尤其得小心。
Originally Posted by CHANGES_AND_HINTS.TXT
The /etc/modprobe.d/blacklist file has been changed significantly; be sure to
move/merge the /etc/modprobe.d/blacklist.new file in its place. Also, you
must NOT leave a backup of the old blacklist file (such as blacklist.orig)
in /etc/modprobe.d/ — ALL files in that directory are checked, so if a
module is blacklisted in *any* of them, it won’t be loaded.
译注:任何在/etc/modprobe.d 里的文件都会被读取检查,无论什么后缀,什么文件名。因此可能引起不必要的麻烦。
It is important to note that slackpkg did not find all the .new files. I used the following command and came up with these additional files.
得注意,slackpkg 找不到所有的 .new 文件。我用下面的命令找出这些额外的文件。
find / -type f -name \*.new
/usr/lib/man.conf.new → Overwrite(覆盖)
/etc/group.new → Remove(删除)
/etc/passwd.new → Remove(删除)
/etc/shadow.new → Remove(删除)
/etc/gshadow.new → Remove(删除)
The new group and passwd files would only be useful if there were some new groups or users needed for some new feature, and something like that would have been mentioned in CHANGES_AND_HINTS.TXT. It wasn’t so they were removed promptly.
如果一些新特性需要一些新的组和用户,那么新的 group 和 passwd 文件才有用。有的话也会在 CHANGES_AND_HINTS.TXT 里提到,但没有,所以把它们删掉好了。
Update Your Graphics Drivers (if needed)
更新图形驱动(如需)
You probably need to upgrade to the newest driver if you intend on using hardware acceleration. For Nvidia cards there are slackBuilds for the driver and kernel module. The driver slackBuild also comes with a nice script called nvidia-switch that helps you to switch between your proprietary driver and the built in drivers.
如果你想要硬件加速,你可能需要升级到最新的驱动。对于 Nvidia 显卡,有针对驱动和内核模块的slackBuilds 。驱动的 slackBuild 还带有一个很好的叫 nvidia-switch 的脚本,帮你在私有驱动和内建驱动间切换。
Miscellaneous Fixes
杂项修补
These are all specified in CHANGES_AND_HINTS.TXT.
这些在 CHANGES_AND_HINTS.TXT 里都详细说明了。
Removed /etc/rc.d/rc.scanluns
删除 /etc/rc.d/rc.scanluns
Originally Posted by CHANGES_AND_HINTS.TXT
The provided kernels are now compiled with CONFIG_SCSI_MULTI_LUN=y so there
should be no need for the /etc/rc.d/rc.scanluns script (it should now be
deleted, as it’s not included in the sysvinit-scripts package any more).
If this configuration causes a problem with any real SCSI drives, then you
should add this to your kernel’s lilo stanza: append = “max_luns=1″
译注:内核内建了。
Removed /etc/rc.d/rc.hplip
删除 /etc/rc.d/rc.hplip
Originally Posted by CHANGES_AND_HINTS.TXT
HPLIP no longer requires daemons to be started at boot time, so any
/etc/rc.d/rc.hplip script should be removed.
译注:HPLIP 不再需要在开机时启动驻守程序了。
Added alias for hp-toolbox to either /etc/profile (system-wide) or ~/.profile (user specific)
为 hp-toolbox 添加一个 alias 到 /etc/profile (全局) 或者 ~/.profile (具体用户)
alias hp-toolbox='LC_ALL=$LANG.UTF8 hp-toolbox'
Added my user to lp group
把自己添加进 lp 组
Originally Posted by CHANGES_AND_HINTS.TXT
There is a minor problem with the HPLIP and CUPS versions in Slackware 12.1;
hp-toolbox will not work unless LC_ALL is set to a UTF8 locale.
An easy workaround is to start it with “LC_ALL=$LANG.UTF8 hp-toolbox” if
you’re not using a UTF8 locale. Also, your user account must be a member
of the “lp” group for hp-toolbox to work properly, and to use the scanner
portion of some (all?) HP print/scan/copy units, you’ll need to be a member
of the “lp” group. This is due to the fact that hplip’s udev rules set
the device with group “lp” ownership.
译注:hp-toolbox 需要 LC_ALL 设定为 UTF-8。属于 lp 组的用户才能正常使用HP设备。
Fix slow Xfce Terminal
修正迟钝的 Xfce Terminal
I noticed after the upgrade that having Terminal open caused workspace switching to be slower and Terminal also resized slower than normal.
我注意到升级后,让终端模拟器打开着会造成在工作区间切换变慢,改变终端模拟器的大小也比平时慢。
This is easily fixed by creating /etc/profile.d/x-fix.sh
这很容易通过建立一个 /etc/profile.d/x-fix.sh 来修正
#!/bin/sh
# This should fix slow Xfce Terminal in Slackware 12.1
export XLIB_SKIP_ARGB_VISUALS=1
Do not forget to make it executable.
别忘了让它可执行。
Originally Posted by CHANGES_AND_HINTS.TXT
If you notice Xfce’s Terminal and perhaps some other applications being drawn
very slowly in X, then you should try explicitly disabling the Composite
extension in /etc/X11/xorg.conf, or set XLIB_SKIP_ARGB_VISUALS=1 in your
environment prior to starting X. For more information on this, see:
http://bugzilla.xfce.org/show_bug.cgi?id=2792
Rebuild/Upgrade any Non-Slackware Packages (as Needed)
重建/升级所有非Slackware软件包(如需)
Depending on how much and what specific software you have installed, this portion of the upgrade process can take the longest or shortest chunk of time.
取决于你装了多少软件,以及软件有多特殊,这部分升级过程可长可短。
Looking at my list I had created previously, I had 75 Non-Slackware packages. Some of these I chose to simply remove and some had become part of slackware (and so were upgraded during the upgrade process). As for the rest of them, if there was a newer version that looked worth my time I chose to upgrade. The others I only upgraded if they were broken.
瞧我之前建的列表,我有75个非Slackware 的软件包。有些简单地删除了,有些成了 slackwere 的一部分(在升级过程中也被升级了)。至于剩下的,如果有一个新版本看上去值得花时间,那我会选择升级。其他的坏了我才升级。
Fortunately, almost all of my packages were created via slackBuilds (most scripts from slackBuilds.org), so I didn’t need to go looking through any repositories.
幸运的是,几乎我所有的包都是通过 slackBuilds 脚本(大多数来自 slackBuilds.org)建立的,所以我不必从其他任何软件仓库找软件包了。
Since some of the libraries were broken (no surprise) I chose to rebuild them all. A good number of the packages worked fine as is. For the few that didn’t, I ran ldd to see what libraries were causing problems and rebuilt/upgraded as needed.
因为有些库坏了(不用惊讶),我选择重建它们。大量的包都好好的。为了少数个别,我运行 ldd 看看是什么库引起的问题,然后按需要重建或升级。
It is important to note that even if you choose to have a fresh installation you will have to do this step of the process.
得注意,即使你是全新安装,你也得做这一步。
Fix Other Random Problems
修补其他怪问题
This is a separate section because there was no mention of the problem in CHANGES_AND_HINTS.TXT and also because it is probably specific to my machine.
这是单独的一章,因为有 CHANGES_AND_HINTS.TXT 里没有提到的问题,也因为可能仅针对我的机器而言。
Default 640×480 no longer displays
默认 640×480 分辨率不再显示
It seems that the newest Nvidia driver (169.12) for my 7600GS does not correctly handle my monitor (Dell 152FP) at a 640×480 resolution, while my previous driver (100.14.19) on Slackware 12.0 worked fine. The problem is that the driver now by default uses the wrong vertical sync. To fix it, I simply had to specify that 640×480 be used at 75Hz. This is easily done be changed my Modes under the Screen Section (in /etc/X11/xorg.conf) from
似乎是我的 7600GS 显卡的最新的 Nvidia 驱动(169.12)不能正确地在 640×480 分辨率上处理我的显示器(Dell 152FP),而之前Slackware 12.0上的驱动(100.14.19)工作正常。问题出在现在驱动默认使用了错误的垂直同步。为了修正它,我简单地指定 640×480 分辨率使用 75Hz 的刷新率。这很容易做到,在 Screen Section (in /etc/X11/xorg.conf) 下把 Modes 从
Modes "1024x768" "800x600" "640x480"
to
改为
Modes "1024x768" "800x600" "640x480_75”
The other VESA modes work fine in the VertRefresh range I specified in my Monitor section (60.0 - 75.0) and are auto-detected correctly.
其他 VESA 模式在我指定的垂直刷新率范围(60.0 - 70.0)内工作良好,且正确自动检测出了。
Enjoy Slackware 12.1!
===========================================================================
本人水平有限,如有错误也请指出:)
Note:
1. non-slackware packages 指的是不是原始Slackware版本中存在的包; ???
2. 引用部分均未译,可参照frenzy兄翻译的文字,但附”译注”简单说明;
3. 笔者并没有使用 slackpkg 来帮助升级;
ISSUES:
1. non-slackware software 的翻法;
2. Mass Upgrade 的翻法;
3. slackpkg 未用过,因此 slackpkg 部分请尽量参考原文;
4. Bootsplash 的翻法;
5. vertical sync 的翻法;
6. Mass Upgrade 的翻法;
Questions:
1. 在用slackpkg 建立非slackware包时,是不是需要一个完整的slackware12.0的镜像,根据原始的12.0的包,与当前系统的包做对照,找出非slackware的包?那如何是./configure && make && make install 安装的软件呢?slackpkg能否找到?
2. slackpkg 的工作原理?
Free as in freedom, slack as in Slackware.