来源:鳥哥的 Linux 私房菜 - 基礎學習篇
http://linux.vbird.org/linux_basic/
http://linux.vbird.org/linux_basic/
2021年11月26日 RPM 的使用其实不难,只要使用 rpm 这个指令即可!鸟哥最喜欢的就是 rpm 指令的查询功能了,可以让我很轻易的就知道某个系统有没有安装鸟哥要的软件呢!此外, 我们最好还是得要知道一下,到底 RPM 类型的文件他们是将软件的相关文件放置在哪里呢?还有,我们说的那个 RPM 的数据库又是放置在哪里呢?
Tips 事实上,下一小节要讲的 yum 就可以直接用来进行安装的动作,基本上 rpm 这个指令真的就只剩下查询与检验的功能啰! 所以,查询与检验还是要学的,至于安装,通过 yum 就好了!
Tips 事实上,下一小节要讲的 yum 就可以直接用来进行安装的动作,基本上 rpm 这个指令真的就只剩下查询与检验的功能啰! 所以,查询与检验还是要学的,至于安装,通过 yum 就好了!
2021年11月26日 在前一章我们提到以源代码的方式来安装软件,也就是利用厂商释出的 Tarball 来进行软件的安装。不过,你应该很容易发现,那就是每次安装软件都需要侦测操作系统与环境、设置编译参数、实际的编译、 最后还要依据个人喜好的方式来安装软件到定位。这过程是真的很麻烦的,而且对于不熟整个系统的朋友来说,还真是累人啊!
那有没有想过,如果我的 Linux 系统与厂商的系统一模一样,那么在厂商的系统上面编译出来的可执行文件, 自然也就可以在我的系统上面跑啰!也就是说,厂商先在他们的系统上面编译好了我们使用者所需要的软件, 然后将这个编译好的可执行的软件直接释出给使用者来安装,如此一来,由于我们本来就使用厂商的 Linux distribution ,所以当然系统 (硬件与操作系统) 是一样的,那么使用厂商提供的编译过的可可执行文件就没有问题啦! 说的比较白话一些,那就是利用类似 Windows 的安装方式,由程序开发者直接在已知的系统上面编译好,再将该程序直接给使用者来安装,如此而已。
那么如果在安装的时候还可以加上一些与这些程序相关的信息,将他创建成为数据库,那不就可以进行安装、反安装、 升级与验证等等的相关功能啰 (类似 Windows 下面的“新增移除程序”)?确实如此,在 Linux 上面至少就有两种常见的这方面的软件管理员,分别是 RPM 与 Debian 的 dpkg 。我们的 CentOS 主要是以 RPM 为主,但也不能不知道 dpkg 啦!所以下面就来约略介绍一下这两个玩意儿。
那有没有想过,如果我的 Linux 系统与厂商的系统一模一样,那么在厂商的系统上面编译出来的可执行文件, 自然也就可以在我的系统上面跑啰!也就是说,厂商先在他们的系统上面编译好了我们使用者所需要的软件, 然后将这个编译好的可执行的软件直接释出给使用者来安装,如此一来,由于我们本来就使用厂商的 Linux distribution ,所以当然系统 (硬件与操作系统) 是一样的,那么使用厂商提供的编译过的可可执行文件就没有问题啦! 说的比较白话一些,那就是利用类似 Windows 的安装方式,由程序开发者直接在已知的系统上面编译好,再将该程序直接给使用者来安装,如此而已。
那么如果在安装的时候还可以加上一些与这些程序相关的信息,将他创建成为数据库,那不就可以进行安装、反安装、 升级与验证等等的相关功能啰 (类似 Windows 下面的“新增移除程序”)?确实如此,在 Linux 上面至少就有两种常见的这方面的软件管理员,分别是 RPM 与 Debian 的 dpkg 。我们的 CentOS 主要是以 RPM 为主,但也不能不知道 dpkg 啦!所以下面就来约略介绍一下这两个玩意儿。
2021年11月26日
2021年11月26日
2021年11月26日
2021年11月26日 前面提到很多升级与安装需要注意的事项,因为我们需要克服很多的程序漏洞,所以需要前往 Linux distribution 或者是某些软件开发商的网站,下载最新并且较安全的软件文件来安装才行。 好了,那么“有没有可能我们下载的文件本身就有问题?” 是可能的!因为 cracker 无所不在,很多的软件开发商已经公布过他们的网页所放置的文件曾经被窜改过! 那怎么办?连下载原版的数据都可能有问题了?难道没有办法判断文件的正确性吗?
2021年11月26日 在我们的 Linux 操作系统当中,函数库是很重要的一个项目。 因为很多的软件之间都会互相取用彼此提供的函数库来进行特殊功能的运行, 例如很多需要验证身份的程序都习惯利用 PAM 这个模块提供的验证机制来实作,而很多网络连线机制则习惯利用 SSL 函数库来进行连线加密的机制。所以说,函数库的利用是很重要的。不过, 函数库又依照是否被编译到程序内部而分为动态与静态函数库,这两者之间有何差异?哪一种函数库比较好? 下面我们就来谈一谈先!
2021年11月26日 在我们知道了源代码的相关信息之后,再来要了解的自然就是如何使用具有源代码的 Tarball 来创建一个属于自己的软件啰!从前面几个小节的说明当中,我们晓得其实 Tarball 的安装是可以跨平台的,因为 C 语言的程序码在各个平台上面是可以共通的, 只是需要的编译器可能并不相同而已。例如 Linux 上面用 gcc 而 Windows 上面也有相关的 C 编译器啊~所以呢,同样的一组源代码,既可以在 CentOS Linux 上面编译,也可以在 SuSE Linux 上面编译,当然,也可以在大部分的 Unix 平台上面编译成功的!
如果万一没有编译成功怎么办?很简单啊,通过修改小部分的程序码 (通常是因为很小部分的异动而已) 就可以进行跨平台的移植了!也就是说,刚刚我们在 Linux 下面写的程序“理论上,是可以在 Windows 上面编译的!”这就是源代码的好处啦!所以说,如果朋友们想要学习程序语言的话, 鸟哥个人是比较建议学习“具有跨平台能力的程序语言”,例如 C 就是很不错的一个!
唉啊!又扯远了~赶紧拉回来继续说明我们的 Tarball 啦!
如果万一没有编译成功怎么办?很简单啊,通过修改小部分的程序码 (通常是因为很小部分的异动而已) 就可以进行跨平台的移植了!也就是说,刚刚我们在 Linux 下面写的程序“理论上,是可以在 Windows 上面编译的!”这就是源代码的好处啦!所以说,如果朋友们想要学习程序语言的话, 鸟哥个人是比较建议学习“具有跨平台能力的程序语言”,例如 C 就是很不错的一个!
唉啊!又扯远了~赶紧拉回来继续说明我们的 Tarball 啦!
2021年11月26日 在本章一开始我们提到过 make 的功能是可以简化编译过程里面所下达的指令,同时还具有很多很方便的功能!那么下面咱们就来试看看使用 make 简化下达编译指令的流程吧!
2021年11月26日 经过上面的介绍之后,你应该比较清楚的知道源代码、编译器、函数库与可执行文件之间的相关性了。 不过,详细的流程可能还是不很清楚,所以,在这里我们以一个简单的程序范例来说明整个编译的过程喔!赶紧进入 Linux 系统,实地的操作一下下面的范例呢!
2021年11月26日 如果鸟哥想要在我的 Linux 服务器上面跑网页服务器 (WWW server) 这项服务,那么我应该要做些什么事呢?当然就一定需要“安装网页服务器的软件”啰!如果鸟哥的服务器上面没有这个软件的话,那当然也就无法启用 WWW 的服务啦!所以啦,想要在你的 Linux 上面进行一些有的没的功能,学会“如何安装软件”是很重要的一个课题!
咦!安装软件有什么难的?在 W 牌的操作系统上面安装软件时,不是只要一直给他按 “下一步”就可以安装妥当了吗?话是这样说没错啦,不过,也由于如此,所以在 Windows 系统上面的软件都是一模一样的,也就是说,你“无法修改该软件的原始程序码”,因此, 万一你想要增加或者减少该软件的某些功能时,大概只能求助于当初发行该软件的厂商了!(这就是所谓的商机吗?)
或许你会说:“唉呦!我不过是一般人,不会用到多余的功能,所以不太可能会更动到程序码的部分吧?” 如果你这么想的话,很抱歉~是有问题的!怎么说呢?像目前网络上面的病毒、黑客软件、臭虫程序等等, 都可能对你的主机上面的某些软件造成影响,导致主机的死机或者是其他数据损毁等等的伤害。 如果你可以借由安全信息单位所提供的修订方式进行修改, 那么你将可以很快速的自行修补好该软件的漏洞,而不必一定要等到软件开发商提供修补的程序包哩!要知道,提早补洞是很重要的一件事。
Tips 并不是软件开发商故意要搞出一个有问题的软件,而是某些程序码当初设计时可能没有考虑周全, 或者是程序码与操作系统的权限设置并不相同,所导致的一些漏洞。当然,也有可能是 cracker 通过某些攻击程序测试到程序的不周全所致。 无论如何,只要有网络存在的一天,可以想像的到,程序的漏洞永远补不完!但能补多少就补多少吧!
这样说可以了解 Linux 的优点了吗?没错!因为 Linux 上面的软件几乎都是经过 GPL 的授权,所以每个软件几乎均提供原始程序码, 并且你可以自行修改该程序码,以符合你个人的需求呢!很棒吧!这就是开放源码的优点啰!不过,到底什么是开放源码? 这些程序码是什么咚咚?又 Linux 上面可以执行的相关软件文件与开放源码之间是如何转换的?不同版本的 Linux 之间能不能使用同一个可执行文件?或者是该可执行文件需要由原始程序码的部分重新进行转换? 这些都是需要厘清观念的。下面我们先就原始程序码与可可执行文件
咦!安装软件有什么难的?在 W 牌的操作系统上面安装软件时,不是只要一直给他按 “下一步”就可以安装妥当了吗?话是这样说没错啦,不过,也由于如此,所以在 Windows 系统上面的软件都是一模一样的,也就是说,你“无法修改该软件的原始程序码”,因此, 万一你想要增加或者减少该软件的某些功能时,大概只能求助于当初发行该软件的厂商了!(这就是所谓的商机吗?)
或许你会说:“唉呦!我不过是一般人,不会用到多余的功能,所以不太可能会更动到程序码的部分吧?” 如果你这么想的话,很抱歉~是有问题的!怎么说呢?像目前网络上面的病毒、黑客软件、臭虫程序等等, 都可能对你的主机上面的某些软件造成影响,导致主机的死机或者是其他数据损毁等等的伤害。 如果你可以借由安全信息单位所提供的修订方式进行修改, 那么你将可以很快速的自行修补好该软件的漏洞,而不必一定要等到软件开发商提供修补的程序包哩!要知道,提早补洞是很重要的一件事。
Tips 并不是软件开发商故意要搞出一个有问题的软件,而是某些程序码当初设计时可能没有考虑周全, 或者是程序码与操作系统的权限设置并不相同,所导致的一些漏洞。当然,也有可能是 cracker 通过某些攻击程序测试到程序的不周全所致。 无论如何,只要有网络存在的一天,可以想像的到,程序的漏洞永远补不完!但能补多少就补多少吧!
这样说可以了解 Linux 的优点了吗?没错!因为 Linux 上面的软件几乎都是经过 GPL 的授权,所以每个软件几乎均提供原始程序码, 并且你可以自行修改该程序码,以符合你个人的需求呢!很棒吧!这就是开放源码的优点啰!不过,到底什么是开放源码? 这些程序码是什么咚咚?又 Linux 上面可以执行的相关软件文件与开放源码之间是如何转换的?不同版本的 Linux 之间能不能使用同一个可执行文件?或者是该可执行文件需要由原始程序码的部分重新进行转换? 这些都是需要厘清观念的。下面我们先就原始程序码与可可执行文件
2021年11月26日
2021年11月26日
2021年11月26日
2021年11月26日 之所以要备份当然就是预防系统挂点啦!如果系统真的挂点的话,那么你该如何还原系统呢?
2021年11月26日 每部主机的任务都不相同,重要的数据也不相同,重要性也不一样,因此,每个人的备份思考角度都不一样! 有些备份策略是非常有趣的,包括使用多个磁带机与磁带来自动备份企业数据哩 [3] 。
就鸟哥的想法来说,鸟哥并没有想要将整个系统完整的备份下来,因为太耗时间了!而且就鸟哥的立场而言,似乎也没有这个必要, 所以通常鸟哥只备份较为重要的文件而已!不过,由于鸟哥需要备份 /home 与网页数据,如果天天都备份,我想,系统迟早会受不了 (因为这两个部分就已经占去数 10 GB 的硬盘空间...),所以鸟哥就将我的备份分为两大部分,一个是每日备份经常性变动的重要数据, 一个则是每周备份就不常变动的信息。这个时候我就写了两个简单的 scripts ,分别来储存这些数据。
所以针对鸟哥的“鸟站”来说,我的备份策略是这样的:
主机硬件:使用一个独立的 filesystem 来储存备份数据,此 filesystem 挂载到 /backup 当中;
每日进行:目前仅备份 MySQL 数据库;
每周进行:包括 /home, /var, /etc, /boot, /usr/local 等目录与特殊服务的目录;
自动处理:这方面利用 /etc/crontab 来自动提供备份的进行;
异地备援:每月定期的将数据分别 (a)烧录到光盘上面 (b)使用网络传输到另一部机器上面。
那就来看看鸟哥是怎么备份的吧! ^_^
就鸟哥的想法来说,鸟哥并没有想要将整个系统完整的备份下来,因为太耗时间了!而且就鸟哥的立场而言,似乎也没有这个必要, 所以通常鸟哥只备份较为重要的文件而已!不过,由于鸟哥需要备份 /home 与网页数据,如果天天都备份,我想,系统迟早会受不了 (因为这两个部分就已经占去数 10 GB 的硬盘空间...),所以鸟哥就将我的备份分为两大部分,一个是每日备份经常性变动的重要数据, 一个则是每周备份就不常变动的信息。这个时候我就写了两个简单的 scripts ,分别来储存这些数据。
所以针对鸟哥的“鸟站”来说,我的备份策略是这样的:
主机硬件:使用一个独立的 filesystem 来储存备份数据,此 filesystem 挂载到 /backup 当中;
每日进行:目前仅备份 MySQL 数据库;
每周进行:包括 /home, /var, /etc, /boot, /usr/local 等目录与特殊服务的目录;
自动处理:这方面利用 /etc/crontab 来自动提供备份的进行;
异地备援:每月定期的将数据分别 (a)烧录到光盘上面 (b)使用网络传输到另一部机器上面。
那就来看看鸟哥是怎么备份的吧! ^_^
2021年11月26日 讲了好多口水了,还是没有讲到重点,真是的....好了,再来提到那个备份的种类,因为想要选择什么储存媒体与相关备份工具, 都与备份使用的方式有关!那么备份有哪些方式呢?一般可以粗略分为“累积备份”与“差异备份”这两种 [1]。当然啦,如果你在系统出错时想要重新安装到更新的系统时,仅备份关键数据也就可以了!
2021年11月26日 备份是个很重要的工作,很多人总是在系统损毁的时候才在哀嚎说:“我的数据啊!天那...!”此时才会发现备份数据的可爱! 但是备份其实也非常可怕!因为你的重要数据都在备份文件里面,如果这个备份被窃取或遗失,其实对你的系统资安影响也非常大! 同时,备份使用的媒体选择也非常多样,但是各种储存媒体各有其功能与优劣,所以当然得要选择啰!闲话少说,来谈谈备份吧!
2021年11月26日 “工欲善其事,必先利其器”,这是一句大家耳熟能详的古人名言,在我们的信息设备上面也是一样的啊! 在现在 (2015) 正好是 DDR3 切换到 DDR4 的时间点,假设你的服务器硬件刚刚好内存不太够,想要加内存, 那请教一下,你的主板插槽还够吗?你的内存需要 DDR3 还是 DDR4 呢?你的主机能不能吃到 8G 以上的单条内存? 这就需要检查一下系统啰!不想拆机箱吧?那怎办?用软件去查啦!此外,磁盘会不会出问题?你怎么知道哪一颗磁盘出问题了?这就重要啦!
2021年11月26日 我们的 CentOS 7 系统其实有很多东西需要来设置的,包括之前稍微谈过的语系、日期、时间、网络设置等等。 CentOS 6.x 以前有个名为 setup 的软件将许多的设置做成类图形界面,连防火墙都可以这样搞定!不过这个功能在 CentOS 7 已经式微~ 这是因为 CentOS 7 已经将很多的软件指令作的还不赖,又加入了 bash-complete 的功能,指令下达确实还 OK 啦! 如果不习惯指令,很多的图形界面也可以使用~因此,setup 的需求就减少很多了! 下面我们会介绍基本的系统设置需求,其实也是将之前章节里面稍微谈过个数据做个汇整就是了!