学习 Linux,302(混合环境): 安装和升级 Samba

启动和运行 Samba

与大多数软件一样,在使用 Samba 之前必须安装它。对此存在多种方法,但是主要归为两大类:从源代码编译和安装;安装预建的二进制软件包。前者更难但是也更灵活,而后者在大部分 Linux 发行版上较容易,但是您会受困于您的发行版维护人员围绕受支持版本、所应用补丁、编译时启动选项等做出的决策。

Roderick W. Smith, 顾问兼作家

Roderick Smith 的照片Roderick W. Smith 是一位顾问兼作家,他撰写了十多本关于 UNIX 和 Linux 的书,包括 The Definitive Guide to Samba 3, Linux in a Windows World 以及 Linux Professional Institute Certification Study Guide。他还是 GPT fdisk 分区软件的作者。他目前定居罗得岛州的 Woonsocket 市。



2011 年 6 月 20 日

关于本系列

本系列文章帮助您了解 Linux 系统管理任务相关知识。您可以使用本系列文章的资料准备 Linux Professional Institute Certification level 3 (LPIC-3) 考试

参见我们的 学习 Linux, 302(混合环境):LPI-302 路线图,查看本系列中各篇文章的介绍和链接。路线图目前仍在更新中,目前反映的最新内容是 LPIC-3 考试的最新目标(2010 年 11 月)。在我们完成文章后,我们会将其添加到路线图中。

在本文中,学习以下概念:

  • 安装 Samba 软件包。
  • 安装您自己编译的 Samba 二进制文件。
  • 升级现有的 Samba 安装。

本文帮助您准备 Linux® Professional Institute (LPI) Certification level 3 (LPIC-3) LPI-302 考试下的目标 311.2。该目标的权重为 1。

先决条件

本文假设您具有 Linux 命令行函数的工作知识且至少大致了解软件结构(源代码与二进制代码)和您的发行版的软件管理工具。要执行本文所描述的操作,您必须拥有一个工作的 Internet 连接或含有 Samba 软件包的 Linux 安装盘。


选择一种安装方法

关于可选的 LPI-302 考试

与其他许多认证一样,Linux Professional Institute Certification (LPIC) 提供多个不同级别,每个级别都比前一个级别要求更多知识和经验。LPI-302 考试是 LPIC 层级的第三级中的一个可选特性考试,要求具有高级 Linux 系统管理知识。

要通过 LPIC 级别 3 (LPIC-3) 认证,您必须通过前两个一级考试(101 和 102),两个二级考试(201 和 202),以及 LPIC-3 核心考试(301)。到达这个级别后,才能参加一些可选特性考试,比如 LPI-302。

安装 Samba 所使用的方法取决于您的 Linux 发行版、您可以使用的工具以及您对特定 Samba 版本和功能的需求。您会发现,有些安装方法在一些 Linux 系统上不可行。尽管 RPM Package Manager (RPM) 和 Debian 软件包方法通常是最好也是最容易的,只有通过源代码进行安装在所有 Linux 系统— 上都可行,且该方法需要安装其他软件。

大多数 Linux 发行版都是使用 RPM 或 Debian 软件包管理系统构建的。Red Hat、Fedora、OpenSUSE、Mandriva、PCLinuxOS 和其他一些操作系统使用 RPMs;而 Debian、Ubuntu 等使用 Debian 软件包。在使用这些发行版之一,安装 Samba 最简单的方式是一成不变地安装发行版维护人员提供的一个 Samba 二进制软件包。您可以使用一个简单的命令(或可能少量命令)安装这样一个软件包,安装过程通常只需几秒钟。一些发行版,比如 Slackware,提供来自其他软件包类型的简单安装,但是细节不同于这里提供的 RPM 和 Debian 软件包指令。

构建您自己的提要

您可以构建一个 RSS、Atom 或 HTML 提要,以便在我们添加新文章或更新内容时收到通知。访问 developerWork RSS 提要。选择 Linux 作为专区,Articles 作为类型,输入 Linux Professional Institute 作为关键字。然后选择您想要的提要类型。

通过源代码进行的安装能够让您定制 Samba 选项并为您的特定计算机和网络需求优化编译。您还可以使用源代码安装一个可能尚未发行的 Samba 版本。不过源代码安装需要额外的步骤,且会比一个二进制文件安装花更长时间。Gentoo 发行版通过源代码安装大部分软件,但是使用一个流线化过程,更像是使用一个 RPM 或 Debian 软件包;查询 Gentoo 的文档了解详情。

在多数情况下,您应当通过 RPM、Debian 软件包或其他特定于发行版的二进制软件包安装 Samba。如果这不可行或您有在构建过程中需要不寻常定制的古怪需求,那么源代码安装就适合。


源代码安装

学习 Linux,302(混合环境):从源码配置和构建 Samba 描述了如何编译 Samba 源代码。如果您需要通过源代码安装 Samba,应当从这一流程开始。本文假定您已经编译了源代码,只需要安装它。

进行初始安装

如果您已经编译了 Samba 源代码,可以通过在源代码的生成目录(在 Samba 源目录树中通常是 source3)中输入以下命令来安装它:

# make install

您必须作为 root 用户输入该命令。

通常,该命令将 Samba 安装到 /usr/local 目录树,这是本地编译的二进制文件的常用位置。

注意,通过源代码安装 Samba 不需要 安装 System V (SysV) 或 Upstart 启动脚本,因此在您重启计算机时 Samba 不会自动启动。下一节 启动 Samba 简要描述了这一主题。

使用源代码升级到一个新版本

如果您以前通过源代码安装了 Samba,遵循刚刚描述的过程重命名带有 .old 扩展名的旧程序文件。如果您认为新版本不能正常工作,输入 make revert恢复到旧的版本。

如果您想完全删除通过源代码安装的旧版 Samba,应当改成该版本的 的源代码目录并输入 make uninstall。该命令删除安装的软件。然后您可以(通过源代码或二进制软件包)安装一个新版本,而无需担心两个版本之间有冲突。

如果您之前使用二进制软件包安装了 Samba,理论上该版本与您本地编译的版本可在您的计算机上共存;但是,同时安装两者会导致混乱,因为可能只有一个会运行。因此,在安装新软件之前最好删除旧的二进制软件包。输入 rpm -e samba 卸载一个 RPM 软件包,输入 dpkg -r samba 卸载一个 Debian 软件包。(您可能需要更改软件包名称或卸载多个软件包,具体取决于您的发行版如何创建其 Samba 软件包。)在卸载二进制软件包之前,您可能需要备份其 SysV 或 Upstart 启动脚本;您可以修改该脚本启动您本地构建的 Samba 版本。


安装 RPM

RPM 是一款流行且功能强大的软件包管理系统。您可以通过两种方式安装该软件,要么下载 RPM 文件并使用 rpm 命令安装它们,要么使用一个 meta-packaging(元包装)系统,比如 Yellowdog Updater、Modified (YUM),处理一些繁琐的细节,包括安装或升级依赖项。

使用 YUM 安装软件包

YUM 是 Red Hat、Fedora 和其他一些基于 RPM 的发行版的一个标准组成部分。一些基于 RPM 的发行版提供具有类似功能的不同工具。

要使用 YUM 安装一个软件包,您可以作为 root 用户使用 yum 命令,后面紧接 install 子命令和要安装的软件包的名称:

# yum install samba

注意:Samba 软件包名称随发行版的不同而不同。有可能您需要使用 samba 之外的一个名称安装软件包,比如 samba-serversamba 这一名称可用于 Fedora Linux。

输入该命令之后,YUM 检查其存储库,下载最新的软件包,并安装它们。有些情况下,该命令安装不止一个 Samba 软件包或安装非 Samba 依赖项。例如在一个 Fedora 系统上,安装 samba 软件包就同时安装了 samba-commonsamba-client 以及 samba

图形化 YUM 实用程序,比如 Yumex(又称为 Yum Extender;命令名 yumex)也可用。您可以使用这样的一个工具搜索并安装 Samba 或相关软件包,如图 1 所示。Yumex 和其他图形用户界面(GUI)工具特别有助于查找与 Samba 相关的软件包,比如 Samba Web Administration Tool (SWAT; samba-swat) 软件包,如图 1 所示。

图 1. Yumex 提供一个 GUI 前端以供在一些基于 RPM 的系统上进行软件包管理
Yumex 提供一个 GUI 前端以供在一些基于 RPM 的系统上进行软件包管理

使用 rpm 安装软件包

有时,您不能使用 YUM,因为您的发行版不支持它。您可能还想要安装从一个 YUM 不支持的站点上获取的 RPM 软件包;例如,您可能会发现比您的发行版维护人员提供的版本更新的软件包。在这些情况下,您可能需要使用 rpm 命令来安装您的软件。

如果可能的话,在安装软件包之前您应当使用 gpg 检查其真实性,如本系列 学习 Linux,302(混合环境):从源码配置和构建 Samba 所述。完成之后 — 或者您不能或选择不执行这个测试 — 您可以对 rpm 使用 --install(或 -i)选项来完成工作。您可能需要添加 --verbose-v)和 --hash-h)选项来在安装程序包时提供一个显示。最终命令应当如下所示:

# rpm -ivh samba-3.5.6-69.fc13.x86_64.rpm

当然,您必须更改 Samba 软件包文件名来匹配您下载的文件。如果在尝试安装软件时引发一条错误消息,您将必须手动解决该问题。最常见的是,您必须安装必备软件。为此可以使用 YUM,或手动找到和下载必要的软件,在安装 Samba 软件包之前安装它,或者两者同时安装,方法是在一个 rpm 命令行上包含多个文件名引用。

使用 RPM 升级到一个新版本

使用 RPM 升级软件很简单。如果您使用 YUM,其过程就像是安装软件;但是,您可以选择使用 update 子命令,而非 install 子命令。如果您直接使用 rpm,那么应当使用 --upgrade (-U) 选项,而非 --install (-i)。事实上,您也可以使用 --upgrade/-U 安装新软件,甚至有些管理员对新安装使用该命令,而非 --install/-i

在使用 RPM 升级软件时,RPM 实用程序卸载旧版软件并安装新版软件,确保任何过时的文件被自动删除。您可能要检查您的配置文件,比如 /etc/samba/smb.conf。通常,您的现有配置文件保持不变,具有类似文件名的一个更新的样例配置文件会出现,比如 /etc/samba/smb.rpmnew,因此如果有任何配置文件变更需要调整您的文件,您可以引用它。为安全起见,在升级之前您可能要备份您的原始配置文件。


安装 Debian 软件包

Debian 软件包在概念上类似于 RPM 软件包,但是操作软件包所需的实用程序的细枝末节不同。Debian 和 Ubuntu 是使用 Debian 软件包的主要发行版,不过其他一些发行版也使用该软件包。

使用 APT 进行安装

Advanced Package Tools (APT) 套件提供支持网络的软件包管理,包括依赖项解析,类似于许多基于 RPM 的发行版使用的 YUM 套件。(APT 也可用于许多基于 RPM 的发行版,且至少一个 — PCLinuxOS — 默认使用 APT。)

在安装 Samba 之前,最好使用 APT 获取最新软件包列表。为此可以使用 apt-get 及其 update 子命令:

# apt-get update

输入该命令,让 APT 核对其配置的存储库,以获取可用软件包的最新列表,这样您就可以为系统安装最新版的 Samba。要使用命令行 APT 工具安装软件包,您可以使用 apt-get 命令及其 install 子命令:

# apt-get install samba

结果是要安装、删除和升级的软件包汇总以及可供安装的软件包建议。如果您同意更改,在出现提示时可以输入 Y。 然后该实用程序下载必要的软件包,并使用低级 Debian 软件包管理工具安装它们。

如果您喜欢使用一个 GUI 工具,Synaptic 实用程序(命令名 synaptic),如 图 2 所示,会做这个工作。与 Yumex 一样,如果您不确定要安装的软件包的确切名称或您需要找到附属包,Synaptic 特别有用。

图 2. Synaptic 提供一个 GUI 前端以供在大部分基于 Debian 的系统和一些基于 RPM 的系统上进行软件包管理
Synaptic 提供一个 GUI 前端以供在大部分基于 Debian 的系统和一些基于 RPM 的系统上进行软件包管理

使用 dpkg 进行安装

如果您不能或不想使用 APT 安装 Samba,可以使用低级的 dpkg 命令,该命令作用于 Debian 软件包文件(带 .deb 文件扩展名),您可以从 Internet 上下载该文件或以其他方式将其从一台计算机转移到另一台计算机。如有可能,最好使用 gpg 验证软件包的真实性,如 学习 Linux,302(混合环境):从源码配置和构建 Samba 所述。 您可以使用 --install (-i) 选项安装一个新软件包:

# dpkg -i samba_2:3.5.4~dfsg-1ubuntu8.1_i386.deb

假定已经安装了所有依赖的软件包,该命令安装相关的 Samba 软件包。如果依赖项不满意,dpkg 会抱怨。此时您必须安装相关的软件包,使用 APT 或手动通过 dpkg。(如果愿意,您可以使用一个 dpkg 命令安装多个软件包。)

使用 Debian 软件包升级到一个新版本

您可以使用 apt-getdpkg 升级 Samba,与您一开始使用这些工具安装 Samba 完全相同。不同于 RPM 工具,没有单独的选项用于升级软件。因为在使用 RPM 时,您应当检查您的配置文件,确保它们没有变更,并查找新的样例文件,以防新版本包含您可能会使用的新选项。

如果您在使用 APT,一定要升级可用软件的数据库,方法是在使用 install 子命令之前输入 apt-get update。您还可以更新您计算机上的所有 软件,方法是输入 apt-get upgradeapt-get dist-upgrade。(后一个命令执行更复杂的依赖项解析检查,这会导致一些过时的软件包被删除。)


启动 Samba

如果您使用专为您的发行版设计的二进制软件包安装 Samba,它会包含一个 SysV 或 Upstart 启动脚本,以便在您重启计算机时启动 Samba。不过在您首次安装软件包时该脚本不一定会被激活。您应当使用本地启动管理工具,比如 chkconfig(常见于 Fedora 和相关的发行版上)、rc-update(常见于基于 Debian 的系统),或手动检查 SysV 启动链接或 Upstart 配置文件,确定 Samba 会在哪些 Runlevels 下启动。

注意:尽管可以通过一台超级服务器,比如 inetdxinetd,运行 Samba,这样的配置很少见且会产生性能问题。

如果您通过源代码安装了 Samba,就必须创建自己的 SysV 或 Upstart 启动脚本,或通过本地启动脚本中的一个条目启动服务器,比如 /etc/rc.d/rc.local/etc/init.d/rc.local。通常您要同时启动 smbdnmbd 服务器,并传递给它们 -D 选项,这会导致服务器作为守护进程运行。最低配置应当如下所示:

/usr/local/sbin/nmbd -D
/usr/local/sbin/smbd -D

当然,您必须调整二进制文件的路径以适合您的配置。您可能还需要以类似的方式启动相关的服务器,比如 SWAT。


下期简介

LPIC-3 312.1 目标 — 本系列下一篇文章 — 描述 Samba 配置的基础知识,包括 Samba 配置文件的结构、基本 Samba 选项的设置和常见问题的调试。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Linux
ArticleID=681539
ArticleTitle=学习 Linux,302(混合环境): 安装和升级 Samba
publish-date=06202011