LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1580|回复: 0

The Debian GNU/Linux FAQ [兼容]

[复制链接]
发表于 2003-4-14 20:35:31 | 显示全部楼层 |阅读模式
3. 兼容性问题
--------------------------------------------------------------------------------


3.1 可以在什么样的硬件系统上运行


 Debian GNU/Linux 包含所有程序的完整源代码,因此可以在所有Linux内核支持的硬件系统上运行.详见Linux FAQ.

 Debian GNU/Linux 现在的版本是3.0,包括在以下硬件系统上运行的完整的源代码和二进制程序.

  i386: 指基于Intel和兼容处理器的PC机,包括Intel的 386, 486, Pentium, Pentium Pro, Pentium II ( Klamath 和 Celeron), Pentium III, 以及 AMD, Cyrix 等制造的兼容处理器.
  m68k: 指基于Motorola 680x0 的Amiga 和 ATARI系列
  alpha: 指Compaq/Digital's Alpha 系统
  sparc: 指Sun的 SPARC 和大部分的 UltraSPARC系统
  powerpc: 指IBM/Motorola PowerPC ,包括CHRP, PowerMac 和 PReP
  arm: 指ARM and StrongARM
  mips: 指基于NEC 处理器的系统
  hppa: Hewlett-Packard的 PA-RISC (712, C3000, L2000, A500).
  ia64: Intel 的IA-64 ("Itanium")计算机
  s390: IBM 的 S/390

基于Sparc64 (UltraSPARC native) 的Debian的二进制版本正在开发阶段
更多的具体硬件支持详间用户安装手册,http://www.debian.org/releases/stable/installmanual.


--------------------------------------------------------------------------------

3.2与其他的linux发行版兼容行如何


 Debian 开发者努力与其他Linux发行版沟通,以保持软件的兼容性.大多数的软件都可以象在他们的开发环境下一样运行的很好.

 Debian GNU/Linux遵循Linux文件系统层次标准(Linux Filesystem Hierarchy Standard).但是在规则解释上存在一定的回旋余地因此某些细节上可能与其它发行版有所不同.


--------------------------------------------------------------------------------

3.3Debian 源码与其他Unix兼容性如何


 大多数Linux程序的源码是和其他Unix系统相兼容的.它几乎支持 System V Unix 系统和自由的和商业的 BSD 系统中的所有程序的源码。但是说法无法证明,因此对于UNIX没有什么价值。在软件开发中需要的是完全兼容,而不是大部分兼容。因此出现了今天的POSIX.1 (IEEE Standard 1003.1-1990) ,类UNIX系统源码兼容性的主要标准之一.

 Linux原本要基于POSIX.1的,但是POSIX不是免费的,而且POSIX.1证书相当昂贵.这使得Linux基于 POSIX 开发相当困难.证书费用使得Debian获得官方兼容性证明相当困难,即使已经完全通过确认条款(为了让更多的人在POSIX标准上工作,这些确认条款可以免费获得,).

 Unifix股份有限公司 (Braunschweig, 德国) 开发了一个获得了FIPS 151-2 证书的linux系统.这种技术用于Unifix的发行版Unifix Linux 2.0 和 Lasermoon的 Linux-FT.


--------------------------------------------------------------------------------


3.4我可以在RedHat/Slackware/...上使用Debian 的包(".deb"文件)吗?我可以在Debian 上使用RedHat的rpm包吗?


 不同的发行版使用不同的软件包格式和软件包管理程序.

 你或许能:
  通过一个程序可以把一个Debian包安装基于其它发行版的Linux系统中,通常可以正常运行,也可以把一个RedHat 或 Slackware 格式的包转换成Debian格式的包。这得益于Linux文件系统的层次标准。 Alien程序用于不同格式的包的转换.

 你或许不想:
  有些人在安装文件时,自己来写安装控制文件,通常这些文件是不标准的。因此在其它系统上安装一个Debian包,对于包管理系统可能产生不可预知的影响。同样一个其它系统上的程序也许可以成功的安装到Debian系统中,但是,可能会导致Debian包管理系统不能完成一些包升级或删除,甚至不能报告系统上安装了哪些包。


 一个比较好的方法:
  Linux文件系统规定/usr/local/ 下的目录完全由用户使用,因此可以将‘foreign' 软件安装到这个目录下,进行配置,升级,或删除.


--------------------------------------------------------------------------------

3.5 Debian 可以运行"a.out"程序吗?


 你确实还有这样的程序吗 ? :-)

 执行一个类似于a.out格式的程序:
  ·确定内核支持,要么内建支持,要么动态模块支持.(Debian的内核影像含有一个binfmt_aout模块)

   如果你的内核是动态模块支持,那么确保binfmt_aout模块已加载.你可以修改/etc/modules文件,使得binfmt_aout模块启动时加载.

   也可以执行insmod DIRNAME/binfmt_aout.o 命令来完成。DIRNAME 指和内核版本有关的路径名,在2.2.17内核的系统中DIRNAME 有可能是/lib/modules/2.2.17/fs/.

  ·安装可以在2.0以前版本找到的libc4包(因为2.0开始删除了那个包)。可以在老版的Debian光盘(Debian 1.3.1 仍然含有这个包)或者这里ftp://archive.debian.org/debian-archive/ 找到

  ·如果你执行的程序是个a.out图形客户端,安装xcompat 包.

 如果你有a.out 格式的商业程序,这是要求商家发给你一个ELF 升级版的好机会


--------------------------------------------------------------------------------

3.6 Debian 可以运行libc5程序吗?


 是的,只需要从oldlibs区域(与老程序兼容所需包)安装libc5 库。


--------------------------------------------------------------------------------

3.7 Debian 可以编译libc5程序吗?


 是的,从oldlibs目录安装libc5-altdev 和 altgcc 包,你会在/usr/i486-linuxlibc1/bin目录下发现所需的gcc 和 g++ ,把它放入你的$PATH 变量,是的make和其他程序首先执行它.

 编译客户端图形窗口系统(X clients),需要安装xlib6 和 xlib6-altdev 包。

 注意我们的其他软件包对libc5 环境不是支持的太好


--------------------------------------------------------------------------------

3.8如何安装非Debian 格式程序


 /usr/local/目录下的文件不在Debian报管理系统控制范围之内。因此把你的程序的源代码放到 /usr/local/src/目录下是个不错的习惯。例如你可以把一个名为“foo.tar”的包解压到/usr/local/src/foo目录,编译后,可执行程序放到/usr/local/bin/,库文件放到/usr/local/lib/,配置文件放到/usr/local/etc/。

 如果你的程序必须放到其它目录,你仍可以把它们放到这个目录,在需要的目录建立一个符号连接 指向/usr/local/目录下它的位置。如
  ln -s /usr/local/bin/foo /usr/bin/foo

 如果你获得一个可再分发的软件,可以把它做成Debian格式的包,然后把它加载到Debian系统中,在用户手册中有关于Debian格式包制作的介绍(详见11.1Debian GNU/Linux的其他文档)


--------------------------------------------------------------------------------

3.9 我运行foo时为什么提示无法找到libX11.so.6


 这个错误表明此程序使用的X11的库是libc5版本 ,这就意味着你需要安装xlib6

 你也可能碰到关于libXpm.so.4 的错误信息,这就需要从xpm4.7 包中安装libc5 版本的XPM 库 。


--------------------------------------------------------------------------------


3.10 为什么我不能编译需要libtermcap的程序


 Debian使用terminfo 数据库和ncurses 库文件而不是termcap 数据库和termcap 库文件.编译这些软件时应该用libncurses替换libtermcap,并且用户应该有一定的关于终端接口的知识。
  
 为了运行已经和termcap 库相连并且你没有源代码的程序,Debian提供了一个称作termcap-compat的包,它提供了libtermcap.so.2 和 /etc/termcap,安装这个包可以解决程序运行提示无法加载'libtermcap.so.2'库或缺少/etc/termcap 文件的问题。


--------------------------------------------------------------------------------

3.11 为什么无法安装AccelX


AccelX安装时会用到termcap库,详见 3.10为什么我编译程序需要libtermcap


--------------------------------------------------------------------------------

3.12 为什么我的XFree2.1Motif 崩溃了


 你需要安装motifnls 包,他提供了在XFree-3.1下运行基于XFree-2.1 编译的Motif程序的XFree-2.1 配置文件

 没有这些文件,一些Motif程序在做拷贝和粘贴操作时有可能会崩溃,也可能会出现其他的问题.


-------------------------
The Debian GNU/Linux FAQ

 version CVS, 14 February 2003
 Authors, Section 15.1
 中文翻译: eTony e-an@sohu.com
2003.04.14
2003.05.09校对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表