本章主要讲解如何编写源码和创建软件,对于RPM文件的打包者来说,这些是必备的背景知识。
CentOS
RPM打包指南文档,包含以下内容:
如何准备将要打包成RPM文件的源码。
这些内容适合于没有软件开发背景的读者。请参考《RPM打包指南(2)——准备打包的软件》。
如何将源码打包成RPM文件。 继续阅读RPM打包指南(1)——简介
通过SSH执行远程主机的命令或脚本时,经常会出现找不到自定义环境变量的问题。但是,如果通过SSH登录远程主机,然后再执行相同的命令或脚本,那么此时执行又是成功的。两种相似的方法,得到的结果却截然不同,看起来很诡异的现象,根本原因在于这两种方式使用的bash模式不同!
这种方式会使用Bash的interactive + login shell模式,这里面有两个概念需要解释:interactive和login。
在通过sudo运行命令时,系统会默认重置环境变量为安全的环境变量,也就是说,先前设置的变量都会失效,只有少数配置文件中指定的环境变量能够保存下来。
sudo的配置文件是/etc/sudoers
,需要root权限才能读取,运行以下命令:
sudo sed '/^#/d;/^$/d' /etc/sudoers
作为系统管理员,你计划在 Linux 上使用 OpenSSH,完成日常工作的自动化,比如文件传输、备份数据库转储文件到另一台服务器等。为实现该目标,你需要从主机 A 能自动登录到主机 B。自动登录也就是说,要在 shell 脚本中使用ssh,而无需要输入任何密码。
本文会告诉你怎样在 CentOS/RHEL 上设置 SSH 免密码登录。自动登录配置好以后,你可以通过它使用 SSH (Secure Shell)和安全复制 (SCP)来移动文件。
本章将会详述如何构建一个最小化的Linux系统。这个系统只会包含足够用于构建最终LFS系统(第6章的内容)的工具,并且它能提供的工作环境比最小化环境要便利得多。
构建这个最小化系统需要两个步骤。第一步,编译一个新的、不依赖于宿主机的工具链(编译器、汇编器、连接器和程序库,以及一些实用工具)。第二步,使用上述的工具链编译其他的重要工具。
在构建临时系统之前,还需要做一些最终的准备。本章会在$LFS
目录中创建一个目录,用于安装临时工具链;然后创建一个专用于编译LFS系统的无特权用户,这样便能减少宿主机系统的风险;最后为上述用户创建一个合适的编译环境。本章还会介绍用于测量LFS各个源码包的编译时间的时间单位,也被称为SBU(Standard Build Unit,标准构建单位)。除此之外,本章还会简单介绍LFS源码包的测试套件。
本章将会下载所有用于编译基本Linux系统的必要源码包和补丁,此处列出的源码包版本适用于本系列教程的操作步骤,不推荐使用其他版本的源码包!
某些源码包的下载链接并不总是能够访问的,有的开源项目会在新版本发布的时候,就把旧版本的源码包删除(例如file开源项目)。如果碰到这种情况,那么也可以访问LFS项目的FTP站点(ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/7.10/),在此处也可以下载本系列教程需要的所有源码包和补丁。
当使用Xshell、putty、SecureCRT等终端模拟器远程连接至Linux服务器时,如果需要执行一个耗时很长的命令或脚本,在尚未执行完毕之前,客户端突然断开网络连接,或者终端模拟器发生死锁,此时客户端便会失去先前和Linux服务器建立的会话。由于不能实时查看脚本或命令的执行日志,因此也就很难判断它们的执行状态,应该如何解决这个问题呢?
本章会描述如何搭建宿主机系统,大致分为以下三个步骤: