最佳技术支持

作者:Various
最佳技术支持

GCC 的 128 位精度

我正在使用 xlC 命令在 UNIX 平台上编译 C++ 程序。当需要将数学计算的精度从 64 位提高到 128 位时,以下命令很有用

xlC128 -qldbl128 <filename> [-lm]

其中 -lm 用于包含数学库(如果需要)。现在,我想在 Linux 上以相同的精度执行相同的计算。请指导我应该如何进行。如果需要任何数学库,也请指出我可以从哪里获取它们。

—Pramod, l_pramod@hotmail.com

获取 GMP (Gnu Math Precision),这是一个用于任意精度算术的免费库,可处理有符号整数、有理数和浮点数。您可以在 www.swox.com/gmp 找到它。

—Paul Christensen, pchristensen@penguincomputing.com

升级导致每周崩溃

在我将其中一个系统从 Red Hat 7.0 升级到 7.1 后,系统频繁崩溃,大约每周一次。崩溃总是在凌晨 4:00 A.M. 之后不久发生(在 cron.daily 执行之后)。内核输出是

Unable to handle kernel NULL pointer dereference
at virtual address 00000000.

我将内核升级到 2.4.3-12,但没有太大改善。

—Atsuko Crum, acrum@hood.edu

我使用不同的发行版但 2.4.x 内核时也遇到过类似的问题。结果证明,主板的 BIOS 升级解决了我的大部分问题。虽然我仍然有类似的发生,但它们发生的频率要低得多。

—David Brown, david@caldera.com

虽然硬件问题可能随时发生,但如果这是在您升级后开始发生的,您应该尝试将内核降级到 Red Hat 7.0 上的版本,或者如果您不介意重建内核,您可以尝试获取最新的 2.4 版本(在撰写本文时为 2.4.10)。2.4 内核的第一个版本修复了很多错误。如果您想排除硬件问题,您可以尝试一个出色的压力测试工具 Cerberus,您可以从 SourceForge 获取它,网址是 sourceforge.net/projects/va-ctcs

—Marc Merlin, marc_bts@valinux.com

安装空间不足

Slackware 一直提示我没有足够的空间继续安装。我简直不敢相信,因为我预留了 10GB 的空间。我像这样对硬盘进行了分区

5GB WinNT 4.0512MB 用于 root512MB 用于 swap4GB 用于 usr4GB 用于 home

—Cheppy, banggae@fisika.ui.ac.id

在格式化分区并设置挂载点后,切换到第二个虚拟控制台 (Alt-F2) 并使用 df 或 mount 验证它们是否实际已挂载。如果没有,您将在 512MB 的 root 分区上安装 Slackware。如果您要安装 X 或其他大型应用程序,则该大小可能太小。

—Chad Robinson, crobinson@rfgonline.com

我在这里打赌您将 / (root) 错误地标记为 /root 标签。尝试像这样标记您的分区:5GB WinNT 4.0512MB /512MB swap4GB /usr4GB /home 这应该为您提供足够的安装空间。

—Paul Christensen, pchristensen@penguincomputing.com

Slackware 上的 PAM?

当我在我的 Slackware 服务器上为用户安装更多应用程序时,我发现许多应用程序需要身份验证,但有一些应用程序不从 passwd 文件中读取数据。结果是用户需要在多个位置更改密码。

似乎有一种转向 PAM 和 LDAP 的趋势,这样如果我可以切换到支持它们,用户就可以从一个位置(例如基于 Web 的密码更改应用程序)更改其所有服务的密码,包括 Samba、电子邮件、pppd 和 phpgroupware。但是,Slackware 不支持 PAM,并且我找不到安装 PAM 的 HOWTO。

—Brian Johnson, bjohnson@jecinc.on.ca

在非 PAM 感知的发行版上安装 PAM 是可能的,但这涉及(除其他事项外)将所有执行身份验证的应用程序替换为 PAM 感知的应用程序(如果您的发行版不提供这些应用程序,则必须获取源代码,找到 PAM 补丁(如果它们未集成),并使用适合您系统的选项重新编译所有内容)。这是一项大量的工作,除非您正在寻求特殊的挑战,否则我建议您切换到像 Debian Linux 或 Red Hat Linux 这样的现代发行版(两者都原生支持 PAM)。这只是两个例子;许多其他发行版也支持 PAM。

—Marc Merlin, marc_bts@valinux.com

仅为一个驱动器进行 SCSI 仿真

我有一个 HP IDE CD-Writer,所以我正在使用 SCSI 仿真来配合 cdrecord 使用它。在 2.2.18 内核下,我可以告诉 ide-scsi 模块仅使用我的刻录机,而让我的 ATAPI CD-ROM 保持原样。我通过 lilo.conf 中的 append 选项实现了这一点

append="hdc=ide-scsi"

这效果很好,因为 /dev/hdc 是我的刻录机,/dev/hdd 是我的 ATAPI CD-ROM。不幸的是,在 2.4 内核下,这不再有效。ide-scsi 模块抓取了两个设备,导致 /dev/hdd 不可用,阻止 cdparanoia 与其一起工作,并迫使我使用 /dev/scd1 挂载它。如何在 2.4 下获得相同的效果并强制 ide-scsi 模块仅仿真 /dev/hdc?

—Michael Soulier, michael.soulier@home.com

您想要的是让 hdc 进行 SCSI 仿真,而 hdd 继续用作 IDE 设备。通常,IDE-CD 支持被禁用,而 SCSI 仿真被启用,以便两个驱动器都被视为 SCSI 设备。有关教程,请参阅 www.wizball.co.uk/linux/cd_rewriter.phpwww.teknospy.com/pages/howtos/cdburn.php

—Paul Christensen, pchristensen@penguincomputing.com

这个 RPM 依赖于什么?

我维护着 39 台 Red Hat 服务器,并且一直在添加更多服务器(Web 主机)。我总是尝试在安装过程中安装最少的软件包,考虑到如果我不包含客户稍后决定需要的东西,我总是可以弄清楚如何添加它。有时,请求的软件包会有一个有趣的依赖项列表,以至于本来应该是简单的 rpm -ivh package.rpm 变成了 30 分钟的依赖项添加游戏。是否有一个简单的开关可以输入,让 RPM 在我尝试安装软件包之前告诉我一个软件包需要什么?

—Bruce D. Meyer, gh1@rocsoft.net

您描述了许多 Linux 服务器管理员使用 Debian Linux 而不是 Red Hat 衍生产品的原因之一。使用 Debian,只需键入 apt-get install foo 即可。上次我检查时,RPM 没有一个神奇的开关来执行您想要的操作。在 Red Hat 上执行此操作的一种方法是使用 gnorpm 或 rpmfind。问题是,在任何一种情况下,对于基于 RPM 的解决方案,RPM 通常在不同发行版之间甚至在同一发行版的不同版本(如 RH 6.2 和 RH 7.1)中都不兼容。虽然 rpmfind/gnorpm 可能是您的最佳选择,但如果您下次可以选择安装 Debian Linux,它将解决所有这些问题。

—Marc Merlin, marc_bts@valinux.com

一个小小的瑰宝是 Red Carpet。文档和下载可以在 www.Ximian.com 网站上找到。

—Paul Christensen, pchristensen@penguincomputing.com

欢迎,访客打印机用户

我有一个 Linux 盒子充当我的 DHCP 服务器、防火墙和 Internet 网关。我的许多客户都是访问的 Windows 用户。是否可以将 Linux 盒子设置为打印服务器,以便 Windows 客户端可以通过 Linux 打印服务器进行打印,而无需客户端安装打印机驱动程序?

—Danny Patel, dharmesh@yahoo.com

我将为打印机和该打印机的 Windows 驱动程序设置一个 Samba 共享。

—Christopher Wingert, cwingert@qualcomm.com

您可能需要考虑使用 CUPS(通用 UNIX 打印系统)。它支持 IPP、LPD、SMB (Windows) 和 AppSocket (JetDirect) 协议。

—David Brown, david@caldera.com

cron 无法运行 Shell 脚本

我无法使用 crontab 执行 shell 脚本。我收到这个错误

cannot execute binary file

—Leonardo Fermoselle, lfermose@hotmail.com

您的脚本是否以 #!/bin/sh 作为文件的第一个字符开头?它应该是。如果这不是问题,脚本是否是在 DOS 机器上编写的?使用 joe 文本编辑器打开文件,如果您在每行末尾看到有趣的 M 字符,那就是您的问题。您可以使用 freshmeat.net/projects/fixdos 上的工具来修复它。

—Ben Ford, ben@kalifornia.com

运行命令 file /usr/backup/myscript.sh,或在 vi 中加载此文件,并确保文件中没有任何垃圾字符。确保您可以从命令行运行脚本。

—Usman Ansari, uansari@yahoo.com

加载 Disqus 评论