一个实现 LFS(Linux From Scratch) 自动化的脚本(上)

Submitted by Dot on Fri, 12/09/2016 - 09:20

LFS ( Linux From Scratch ) , 即“从零开始构建 linux ”。具体是指,从最基本的 glibc, binutils, gcc 等开始,逐个编译 linux 运行所必须的各个软件,最终构建出一个可以启动并独立运行的 linux 。
一个完整的 LFS 过程至少要分为两个阶段——chroot 前和后。本文涉及 chroot 前的内容,基本可以完成 LFS 6.4 即 chroot (包括)之前的所有工作,包括软件包下载、环境设定、编译等,直到 chroot 命令本身。

resize2fs: Bad magic number in super-block

Submitted by Dot on Mon, 09/05/2016 - 20:25

这是在CentOS 7上扩展lv时遇到的问题。

当时为了给TrinityCore配置环境,需要编译较新的gcc。但之前只给这个CentOS虚拟机分配了8G的硬盘,编译时gcc目录竟然涨到了近5G,No space left one device,进行不下去了。

第一反应是扩展lv。
先添加一块硬盘,然后执行:
pvcreate /dev/sdb
vgextend centos /dev/sdb
lvextend -l +100%free /dev/mapper/centos-root
但是最后resize2fs报错:
resize2fs: Bad magic number in super-block while trying to open /dev/mapper/centos-root

最后在这里找到了答案

原来CentOS 7默认采用xfs而非ext4,resize2fs自然无效了。

CentOS 7.2 上编译 TrinityCore

Submitted by Dot on Sun, 09/04/2016 - 18:18

00 前言

  • TrinityCore 是什么?黑话,一个网络游戏框架;白话,一个魔兽世界服务器端
  • 本文描述在 CentOS 7.2 上部署 TrinityCore
  • 编译流程官方 wiki 讲的很详细,不赘述。这里只讲一些可能遇到的问题,以及 wiki 遗漏的一些细节
  • linux 上的编译可以借助这个脚本,它可以完成编译中几乎所有的步骤

01 Requirements

  • Processor with SSE2 support 
  • Boost ≥ 1.55
  • MySQL ≥ 5.1.0 
  • OpenSSL ≥ 1.0.0 
  • CMake ≥ 3.0
  • GCC ≥ 4.9.0 or Clang  ≥ 3.5 (recommended)
  • zlib ≥ 1.2.7