zoukankan      html  css  js  c++  java
  • Linux 下源码安装大杂烩

      本文仅以记录平常源码安装部分软件是需注意的关键点。

      有时为了方便,如在 Ubuntu 系统中,采用 sudo apt-get install soft-version 来安装某一版本的软件显得更为便捷和少出错。

    Python 升级

      关于 Python 源码安装教程很多,如博文linux下python开发环境之一——安装python

      在 CentOS 6.5,Python 版本是 2.6,而且通过 yum 并不能升级,所以我们只能通过源码升级。其中值得注意的几点是:

      1. 新版本 Python 的安装目录

      有好多软件会调用到 Python,如 yum 就是用 Python 写的、YouCompletMe 也用到了 Python 库,所以我们可以将其安装在 /usr,方便后续使用:

    ...source code/build
    ../configure --prefix=/usr

      2. 安装完 Python 后,我们会发现 /usr/bin 下的 python 已经指向了新版本的 Python,如下图:

      

      但 yum 软件就出问题了(There was a problem importing one of the Python modules required to run yum. ...),但我们可以将 /etc/bin/yum 的第一行

    !/usr/bin/python

    改为

    !/usr/bin/python2.6

    这样就没问题了。

      存在多个版本的问题可以参考 GCC 源码安装部分的解决方法。

    GCC 源码安装

      博文在CentOS下编译安装GCC很不错,简明扼要。这篇文章跟其他教程不一样之处在于它指出了如何利用 GCC 源码自带 SHELL 脚本下载对应的依赖库:

    cd gcc-top-dir
    ./contrib/download_prerequisites    # download mpc/mpfr/gmp

      

      另外,我们还可以让系统共存多个 GCC 版本,具体方法见下文(也可参考 StackExchange 上的一个问答)。

      现在系统中已经存在 3 个版本的 GCC (gcc && g++-4.7、gcc && g++-4.9、gcc && g++-5),如下图:

      

      

      此时,默认的 gcc && g++ 指向 gcc-5 && g++-5。接下来,我们可以配置,让 gcc && g++ 指向另外的版本:

    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 47
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 49
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5   50
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 47
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 49
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5   50

      其中 47、49、50 表示的是优先级,数字越大优先级越高,所以通过这样的设置后,gcc && g++ 默认指向的还是 gcc-5 && g++-5。那我们怎么让 gcc && g++ 指向其他版本呢?具体方法如下:

    sudo update-alternatives --config gcc

      

      通过这样方法,同样可以将 g++ 改为指向 g++-4.7。

    LLVM-CLANG 源码安装

      官方有文档 Getting Started with the LLVM System 专门讲述如何安装 LLVM-CLANG。官方文档中推荐的生成 Makefile 的方法是用 cmake;如果我们习惯于使用 autotools,我们可以参考官方提供的另一文档 Building LLVM with Autotools

  • 相关阅读:
    左偏树初识到应用
    Linux用户管理简介
    Linux命令(二十五) 磁盘管理命令(三) fdisk
    Linux命令(二十四) 磁盘管理命令(二) mkfs,mount
    Linux命令(二十三) 磁盘管理命令(一) df,du,tune2fs
    操作系统学习(十四) 、中断描述符表和中断描述符
    操作系统学习(十三) 、中断和异常
    操作系统学习(十二) 、页级保护
    使用Ubuntu编译Linux内核
    操作系统学习(十一) 、一致代码段和非一致代码段
  • 原文地址:https://www.cnblogs.com/xiehongfeng100/p/4989338.html
Copyright © 2011-2022 走看看