|
发表于 2008-5-16 14:32:58
|
显示全部楼层
[翻译]HowTo: Upgrade Slackware 12.0 to 12.1
HowTo: Upgrade Slackware 12.0 to 12.1
作者:shadowsnipes
翻译:vvoody
原文:http://www.linuxquestions.org/qu ... 2.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 [color="Red"]RED.
[color="Red"]红色部分为最近的改动。
2008-05-18
- Split HowTo into two parts
- Expanded Updates section
- More kernel package information, patching sources for non-SMP, UTF8 console
- Added more to Miscellaneous Fixes section - mostly because I saw a few threads crop up recently about some of the issues I had not discussed (though were still in the CHANGES_AND_HINTS.TXT).
- Discussed Remote Control changes in Audacious
- 把 HowTo 分成两部分(译注:译文不做分割)
- 扩展升级部分
- 更多关于内核包的信息,给 non-SMP 打补丁,UTF8 控制台
- 更多杂项修补 - 近期突然出现一些我没讨论到的问题(虽然 CHANGES_AND_HINTS.TXT 里提到了)
- 讨论 Audacious 中远程控制的更改
2008-05-08
- Latest Slackpkg recommendations added
- Notes about rc.modules symlink, files under etc/modprobe.d
- 增加最新的关于 Slackpkg 的建议
- 关于 rc.modules 软链接,etc/modprobe.d 下文件的笔记
The sections of this HowTo are:
Part 1
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
Kernel Packages
Part 2
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 -rl[b]p[/b]tD \
复制代码
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 [color="Red"](for alternate scripts see this thread about Listing Non Stock Slackware Packages[color="Red"]). 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 目录里找到[color="#ff0000"](可参看 Listing Non Stock Slackware Packages[color="#ff0000"])。为了能用到这个 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命令)
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 走。
[qutoe]
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
[/QUOTE]
译注:先不要安装 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 循环需要修改,以反映哪些软件包部分在这张光盘上。
[color="#ff0000"]If you need any non-en_US language packs for KDE please refer to UPGRADE.TXT.
[color="#ff0000"]如果需要非英语语言包,请参考 UPGRADE.TXT。
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 的配置都设定好了,用新镜像更新一下
and install the new packages
并安装新的软件包
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
升级所有软件包
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 并重新挂载驱动器。
[color="#ff0000"]If you need any non-en_US language packs for KDE please refer to UPGRADE.TXT.
[color="#ff0000"]如果需要非英语语言包,请参考 UPGRADE.TXT。
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 [color="Red"]and the rc.modules symlink had to be fixed.
在我的例子中,我有一个内核的源文件文件夹和模块文件夹,那是我建立的定制过的 2.6.21.5 内核(我不打算再用它们了)。我还有一个需要删除的 rc.modules 文件,[color="Red"]rc.modules 软链接也得修改。
[color="#ff0000"]Please note that it is not recommended that you run the huge kernel for daily use (though it may not cause problems). Also, if you have one of those machines that don't work well with a SMP kernel you will need to patch your kernel sources.
[color="#ff0000"]记住,不推荐 huge 内核作为日常使用(虽然可能不会引起问题)。另外,如果你的机器无法很好的工作在 SMP 内核下,你将需要为你的内核打补丁。
Originally Posted by CHANGES_AND_HINTS.TXT
As stated earlier, it is recommended that you use one of the generic kernels
rather than the huge kernels; the huge kernels are primarily intended as
"installer" and "emergency" kernels in case you forget to make an initrd.
For most systems, you should use the generic SMP kernel if it will run,
even if your system is not SMP-capable. Some newer hardware needs the
local APIC enabled in the SMP kernel, and theoretically there should not be
a performance penalty with using the SMP-capable kernel on a uniprocessor
machine, as the SMP kernel tests for this and makes necessary adjustments.
Furthermore, the kernel sources shipped with Slackware are configured for
SMP usage, so you won't have to modify those to build external modules
(such as NVidia or ATI proprietary drivers) if you use the SMP kernel.
If you decide to use one of the non-SMP kernels, you will need to follow the
instructions in /extra/linux-2.6.24.5-nosmp-sdk/README.TXT to modify your
kernel sources for non-SMP usage. Note that this only applies if you are
using the Slackware-provided non-SMP kernel - if you build a custom kernel,
the symlinks at /lib/modules/$(uname -r)/{build,source} will point to the
correct kernel source so long as you don't (re)move it.
If you decide to use one of the huge kernels anyway, you will encounter
errors like this:
kobject_add failed for uhci_hcd with -EEXIST, don't try to register
These occur because the respective drivers are compiled statically into the
huge kernels but udev tries to load them anyway. These errors should be safe
to ignore, but if you really don't want them to appear, you can blacklist the
modules that try to load in /etc/modprobe.d/blacklist. However, make sure you
remove them from the blacklist if you ever decide to use the (recommended)
generic kernels.
Also, if you need an initrd [color="#ff0000"](you do if running the generic kernel) you will need to set that up. [color="#ff0000"]Please see /boot/README.initrd for instructions on this if needed.
同样,需要 initrd 就建一个(如果你用 generic 内核)。[color="#ff0000"]请看 /boot/README.initrd 获得更多信息。
Stock Kernels use UTF8 conole now
主干内核现在用 UTF8 控制台
[color="#ff0000"]If you find you have problems with the console after this upgrade you might need to add the following append line for each of your kernel images listed in your /etc/lilo.conf. Personally, I had no such problems, so this was not needed for me.
如果你发现这次升级后控制台有些问题,你可能需要在你每个 /etc/lilo.conf 中列出的内核镜像添加下面 append 的一行。我个人没什么问题。
Originally Posted by CHANGES_AND_HINTS.TXT
The new 2.6.24.x kernels default to use a UTF8 console. This might break some
things, so if you prefer the "old" default, you'll need to add this to your
kernel's lilo stanza: append = "vt.default_utf8=0"
译注:新的 2.6.23.x 内核使用 UTF8 控制台。如果你还用老的,可能会破坏一些东西。
Finally. since your kernels changed you will need to run lilo (assuming you are not using another bootloader). Before you do that, make sure your /etc/lilo.conf is still pointing to the correct images, and you can also choose to add a bootsplash to your Lilo prompt. This is covered in the next section.
最后,因为你对内核做了修改,你将需要运行 lilo 命令(假设你没用其他的启动引导器)。做那之前,确保你的 /etc/lilo.conf 指向了正确的内核镜像。另外你也能选择给你的 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 的启动画面,你需要修改 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 开始部分(粗体部分是我手工为启动画面做的修改)
- # 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.
slackpkg 有已经恼人的事我得指出,就是如果你选择了覆盖,旧配置文件会以.orig 的后缀备份起来。因为我已经备份了我整个系统,我发现这些文件变得杂乱,得用 find 命令删除它们。
Here is a command that will find and list the .orig files under /etc
这个命令用来找到并列出 /etc 目录下的 .orig 文件
- find /etc -type f -name \*.orig
复制代码
And the command that will remove them
这个命令则是删除它们
- find /etc -type f -name \*.orig -exec rm -v '{}' \;
复制代码
In particular, you need to be careful about any possible .orig files under /etc/modprobe.d.
/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. [color="Red"]There are slackBuilds for the driver and kernel module for ATI and Nvidia cards. 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.
如果你想要硬件加速,你可能需要升级到最新的驱动。[color="#ff0000"]有针对 ATI 和 Nvidia 显卡的 酸辣参考Builds。驱动的 slackBuild 还带有一个很好的叫 nvidia-switch 的脚本,帮你在私有驱动和内建驱动间切换。
ATI SlackBuilds
Nvidia SlackBuilds
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设备。
Remove obsolete udev files
删除废旧的 udev 文件
[color="#ff0000"]The two files to remove are located under /etc/udev/rules.d/. I actually did not have a 70-persistent-net.rules file, and it was not created until I removed 75-network-devices.rules, so keep this in mind.
[color="#ff0000"]两个要删除的文件在 /etc/udev/rules.d/ 下。事实上,我之前没有 70-persistent-net.rules 文件,它直到删除 75-network-devices.rules 后才创建的,所以记住这个。
Originally Posted by CHANGES_AND_HINTS.TXT
If you have more than one network card and have been using the
75-network-devices.rules file, it is now called 70-persistent-net.rules
(and is generated from 75-persistent-net-generator.rules).
Rules for optical devices are now located in 70-persistent-cd.rules (and
are generated from 75-cd-aliases-generator.rules).
You will need to remove the old rules files (75-optical-devices.rules and
75-network-devices.rules) so that they don't conflict.
As stated above, Slac两个kware's udev implementation will automatically create
rules files for your optical devices and network interfaces on first boot.
If you add/remove/replace any of this hardware, and/or you "clone" a system
to another hard drive for deployment, you will need to either remove these
two rules files (so that udev will regenerate them to reflect the new or
changed hardware) or edit them accordingly.
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
Computer won't shutdown completely
电脑不能完全关机
[color="#ff0000"]I did not have this problem, but I added it here because I lot of people did. If you are one of those people (see "Slackware 12.1 - Halt Problem") just add the following append line to your /etc/lilo.conf.
[color="#ff0000"]我没有这个问题,但我添加了这个因为很多朋友有这问题。如果你是(参看 Slackware 12.1 - 关机问题),则把那面 append 行加到你的 /etc/lilo.conf 里。
Originally Posted by CHANGES_AND_HINTS.TXT
If you have an older machine (with a BIOS released prior to 2001) and it will
not power off on shutdown, try adding this to your kernel's lilo stanza:
append = "acpi=force"
Mouse does not work
鼠标不工作
[color="#ff0000"]I did not have this problem either, but many people seemed to have missed the notes about this in the CHANGES_AND_HINTS.TXT, so I felt it deserved attention here.
[color="#ff0000"]我也没这问题,但有些朋友似乎乎略了 CHANGES_AND_HINTS.TXT 中提到了这个问题,所以我觉得值得在这里提醒大家。
Originally Posted by CHANGES_AND_HINTS.TXT
The psmouse module is no longer blacklisted by default; instead, it is loaded
with the imps protocol per /etc/modprobe.d/psmouse -- if you need/want a
different protocol, edit that file. Note that options declarations have
no bearing on *if* a module is loaded - they only affect *how* it is loaded.
In other words, the module should now be loaded automatically (since it's no
longer blacklisted), and the options in /etc/modprobe.d/psmouse are the ones
applied when loading it.
[color="#ff0000"]So, for instance, if your mouse doesn't use imps then edit /etc/modprobe.d/psmouse so that it uses the correct protocol for your mouse. - Thread related to 12.1 mouse problems
[color="#ff0000"]举例来说,如果你的鼠标不用 imps,那么编辑 /etc/modprobe.d/psmouse,让你的鼠标使用正确的协议。- 有关鼠标问题的文章
[color="#ff0000"]There are more helpful hints in CHANGES_AND_HINTS.TXT. Read it if you haven't already done so!
[color="#ff0000"]CHANGES_AND_HINTS.TXT 里有更多有帮助的提示,如果你还没读过的话,请读一下!
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 640x480 no longer displays
默认 640x480 分辨率不再显示
It seems that the newest Nvidia driver (169.12) for my 7600GS does not correctly handle my monitor (Dell 152FP) at a 640x480 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 640x480 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)不能正确地在 640x480 分辨率上处理我的显示器(Dell 152FP),而之前Slackware 12.0上的驱动(100.14.19)工作正常。问题出在现在驱动默认使用了错误的垂直同步。为了修正它,我简单地指定 640x480 分辨率使用 75Hz 的刷新率。这很容易做到,在 Screen Section (in /etc/X11/xorg.conf) 下把 Modes 从
- Modes "1024x768" "800x600" "640x480"
复制代码
to
改为
- Modes "1024x768" "800x600" "640x480_[b]75[/b]"
复制代码
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)内工作良好,且正确自动检测出了。
Remote Control for Audacious broken
[color="Red"]This is not a problem with Slackware or Audacious, but rather a consequence of the remote control utility not keeping up with Audacious development. In my case, I had been using FoxyTunes and I had created a symlink at /usr/lib/libxmms.so that pointed to /usr/lib/libaudacious.so. This enabled FoxyTunes to work with Audacious by selecting XMMS as the player.
这不是Slackware或Audacious的问题,而是远程控制程序没有与Audacious的开发同步导致的结果。我的例子中,我已用 FoxyTunes,并在 /usr/lib/libxmms.so 创建了一个软链接指向 /usr/lib/libaudacious.so。通过选择XMMS作为播放器,使得 FoxyTunes 能与 Audacious 协作。
[color="#ff0000"]However, this was using Audacious 1.3.2 on Slackware 12.0. On Slackware 12.1, with Audacious 1.5.0, this no longer works because /usr/lib/libaudacious seems to have been removed. If you read the Audacious FAQ, you will see that this change has been in place since version 1.4. The remote control of audacious is now done through audtool (it has a man page), so keep this in mind when using remote control utilities.
[color="#ff0000"]然而,这是在Slackware 12.0上用的 Audacious 1.3.2。Slackware 12.1 用的是 Audacious 1.5.0,因为 /usr/lib/libaudaciou 似乎已被移除了,所以这不再工作。如果你读了 Audacious FAQ,你会看到这是从 1.4 版本就有了的变化。Audacious 的远程控制现在通过 audtool 完成(它有 man),所以当你要用远程控制时请记住这点。
[color="#ff0000"]For those interested in controlling Audacious through FoxyTunes feel free to post in this FoxyTunes thread. I've contacted the FT developers a couple times about official Audacious support, and I have been told it is on their ToDo list.
[color="#ff0000"]对通过FoxyTunes来控制 Audacious 有兴趣的朋友可以到这个 FoxyTunes 的文章中发帖。我已经联系了几次 FoxyTunes 的开发者关于Audacious的官方支持,并且我被告知这个已在它们的 TODO 上了。
Font Problems
字体问题
[color="#ff0000"]Here is a useful thread on font issues in 12.1.
[color="#ff0000"]这里有个有用的关于 12.1 中字体问题的文章。
Enjoy Slackware 12.1! |
|