符号说明

$ 表示在用户模式下执行命令

# 表示在root模式下执行命令

### 表示注释用于解释接下来一条命令的作用

更新环境源

  • 设置阿里源
$ sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
$ sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
$ sudo yum clean all
$ sudo yum makecache

编译spice

  • 安装编译依赖
$ sudo yum install -y libxml2-devel.x86_64 zlib-devel.x86_64 libffi-devel.x86_64 pixman-devel.x86_64 openssl-devel.x86_64 celt051-devel.x86_64 libjpeg-turbo-devel.x86_64 libmpc-devel.x86_64 mpfr-devel.x86_64 gmp-devel.x86_64
  • 编译python
$ wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
$ tar zJf Python-2.7.12.tar.xz
$ cd Python-2.7.12
$ ./configure --enable-shared --with-zlib
$ make -j8
$ sudo make install
$ sudo ldconfig
### 修改yum使用的python
$ sudo mv /usr/bin/python /usr/bin/python2.6.6
$ sudo ln -s /usr/local/bin/python2.7 /usr/bin/python
$ sudo sed -i 's/\#\!\/usr\/bin\/python$/\#\!\/usr\/bin\/python2.6.6/g' /usr/bin/yum
$ python -V
### 如果出现error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory需要重新ldconfig
$ sudo echo "/usr/local/lib" >> /etc/ld.so.conf
$ sudo ldconfig
$ sudo /sbin/ldconfig -v
### 安装pip
$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py
### 安装依赖
$ sudo pip install six pyparsing
  • 设置环境变量(二选一)
### 直接安装到当前系统的环境变量设定
$ export PREFIX="/usr/local/gnome"
$ export ACLOCAL="aclocal -I $PREFIX/share/aclocal"
$ export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig:$PREFIX/lib64/pkgconfig"
$ export CFLAGS=" -I$PREFIX/include"
$ export CPPFLAGS=" -I$PREFIX/include"
### 需要安装到其他系统的环境变量设定,打包$HOME/gnome下的usr目录即生成安装包
$ export PREFIX="$HOME/gnome/usr/local/gnome"
$ export ACLOCAL="aclocal -I $PREFIX/share/aclocal"
$ export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig:$PREFIX/lib64/pkgconfig"
$ export CFLAGS=" -I$PREFIX/include"
$ export CPPFLAGS=" -I$PREFIX/include"
$export LDFLAGS=" -L$PREFIX/lib -L$PREFIX/lib -Wl,--rpath -Wl,/usr/local/gnome/lib -L$PREFIX/lib64 -Wl,--rpath -Wl,/usr/local/gnome/lib64"
### 请保证后续所有操作都在设置了环境变量的shell中执行
  • 编译gcc
### 编译gcc需要内存大于1G,交换分区要大于1G,磁盘要大于10G,否则容易失败,失败后重新make即可
$ wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.0/gcc-4.8.0.tar.gz
$ tar zxf gcc-4.8.0.tar.gz
$ cd gcc-4.8.0
$ ./configure --prefix=$PREFIX --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++ --with-ppl --with-cloog --with-tune=generic --build=x86_64-redhat-linux --disable-multilib
$ make -j8
$ make install
$ export PATH="$PREFIX/bin/:$PATH"
  • 编译glib
$ wget ftp://ftp.gnome.org/pub/gnome/sources/glib/2.42/glib-2.42.2.tar.xz
$ tar zJf glib-2.42.2.tar.xz
$ cd glib-2.42.2
$ ./configure --prefix=$PREFIX
$ make -j8
$ make install
  • 编译spice-protocol
$ git clone https://anongit.freedesktop.org/git/spice/spice-protocol.git
$ ./autogen.sh --prefix=$PREFIX
$ make -j8
$ make install
  • 编译spice
### gcc版本要升级到4.5以上不然编译最新spice会出现typedef struct重复定义的情况
$ ./autogen.sh --prefix=$PREFIX
$ make -j8
$ make install

编译qemu

  • 安装编译依赖
$ sudo yum install -y libudev-devel.x86_64
  • 设置环境变量

和spice的保持一致

  • 编译autoconf
$ wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.xz
$ tar xJf autoconf-2.69.tar.xz
$ cd autoconf-2.69.tar.xz
$ ./configure --prefix=$PREFIX
  • 编译libusb
$ git clone https://github.com/libusb/libusb.git
$ cd libusb
$ ./autogen.sh --prefix=$PREFIX
$ make -j8
$ make install
  • 编译usbredir
$ git clone git://anongit.freedesktop.org/spice/usbredir
$ cd usbredir
$ ./autogen.sh --prefix=$PREFIX
$ make -j8
$ make install
  • 编译qemu
$ git clone git://git.qemu-project.org/qemu.git
$ cd qemu
$ ./configure --prefix=$PREFIX --target-list=x86_64-softmmu --enable-vnc --enable-kvm --enable-libusb --enable-usb-redir --enable-spice
$ make -j8
$ make install

参考资料

CentOS升级Python2.6到Python2.7并安装pip

qemu编译的更多相关文章

  1. Qemu编译qemu-system-arm

    /********************************************************************************* * Qemu编译qemu-syst ...

  2. (转)libvirt和qemu编译安装

    借鉴:https://www.cnblogs.com/grglym/p/8053553.html 借鉴:http://blog.chinaunix.net/uid-31410005-id-577189 ...

  3. QEMU编译安装

    QEMU是一个支持跨平台虚拟化的虚拟机,有user mode和system mode两种配置方式.其中qemu在system mode配置下模拟出整个计算机,可以在qemu之上运行一个操作系统.QEM ...

  4. qemu与libvirt编译与安装

    qemu与libvirt编译与安装 一 .qemu编译前准备 以下链接为的本次编译环境为前提继续进行. http://www.cnblogs.com/grglym/p/7891253.html 1.安 ...

  5. 编译适用于TP-Link WR703N的OpenWRT固件

    编译适用于TP-Link WR703N TP-Link MR11U 以及使用AR9331芯片组的单WAN/LAN复用口的路由. 注:刷机有风险,刷机需谨慎.一般情况下是不会失败的,若无法通过捅Rese ...

  6. 【转帖】Linux系统上面qemu 模拟arm

    零基础在Linux系统搭建Qemu模拟arm https://blog.csdn.net/weixin_42489042/article/details/81145038 自己没搞定 改天再试试 感谢 ...

  7. 基于 QEMU进行 arm 仿真开发 (以 vexpress-a9 为例)

    背景 基于 QEMU 的仿真可以节省 硬件成本. 参考:<qemu-system-arm仿真vexpress-a9踩坑记>.<在Ubuntu下使用QEMU搭建arm开发环境(一)搭建 ...

  8. linux定制

    http://cc.bingj.com/cache.aspx?q=OpenEmbedded+clfs&d=4706495287069596&mkt=zh-CN&setlang= ...

  9. 在Android上使用qemu-user运行可执行文件

    在Android上使用qemu-user运行可执行文件 作者:寻禹@阿里聚安全 前言 QEMU简要介绍: QEMU可以解释执行可执行程序.既然QEMU可以解释执行可执行程序,那么QEMU就能够知道执行 ...

随机推荐

  1. sort()函数到底是怎样进行数字排序的

    很多人会用sort(),并不见得知道它具体是怎样给数字排序的.其实不知道也行,会用就可以,感兴趣的可以来看看. var numberArray = [2,4,1,3]; numberArray.sor ...

  2. 基础学习笔记之opencv(6):实现将图片生成视频

    基础学习笔记之opencv(6):实现将图片生成视频 在做实验的过程中.难免会读视频中的图片用来处理,相反将处理好的图片又整理输出为一个视频文件也是非经常常使用的. 以下就来讲讲基于opencv的C+ ...

  3. linux怎么设置vsftp用户访问目录权限

    1.在指定的目录创建文件夹(访问的目录): mkdir picture 2.创建一个用户组(zdhgroup): groupadd zdhgroup 3.创建一个用户并指定路径和组: useradd ...

  4. PHP生成图片太慢了。。有些都不出来、

    现在为了使用不同宽高的图片,做了个动态生成的程序.每次根据图片传入的宽高来输出图片,然后 html 页面里用 <img src="xxx.com/img?src=c8d997dae15 ...

  5. Feature Selection 其一 —— Filter Approach

    这一个部分都将只涉及到选择特征的某个子集的方法,将高纬度的特征空间映射到低维度空间的方法(如PCA)都不会涉及到. 一. 单变量 优点:运算速度快,独立于分类器 缺点:忽略的特征之间的联系,忽略了与分 ...

  6. Swift 烧脑体操(三) - 高阶函数

    前言 Swift 其实比 Objective-C 复杂很多,相对于出生于上世纪 80 年代的 Objective-C 来说,Swift 融入了大量新特性.这也使得我们学习掌握这门语言变得相对来说更加困 ...

  7. [egret+pomelo]实时游戏杂记(1)

    [egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) 资料 egret pomelo pomelo捡宝项目 准备工作 1. ...

  8. 20145239杜文超 《Java程序设计》第8周学习总结

    20145239 <Java程序设计>第8周学习总结 教材学习内容总结 通用API 日志API 1.java.util.logging包提供了日志功能相关类与接口,使用日志的起点是logg ...

  9. android 内存泄漏问题【转】

    本文转载自:http://www.voidcn.com/article/p-hbnuyfwz-ee.html 内存泄露问题在一些压力测试的场景很容易暴露,例如一些常用应用场景反复操作(eg:反复切换前 ...

  10. POJ2104 K-th Number —— 静态区间第k小

    题目链接:http://poj.org/problem?id=2104 K-th Number Time Limit: 20000MS   Memory Limit: 65536K Total Sub ...