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

  有时为了方便,如在 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.

这样就没问题了。

  存在多个版本的问题可以参考 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
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-

  其中 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 下源码安装大杂烩的更多相关文章

  1. linux下源码安装netcat

    linux下源码安装netcat http://blog.chinaunix.net/uid-20783755-id-4211230.html 1,下载netcat源码,netcat-0.7.1-13 ...

  2. linux下源码安装软件

    在linux下的很多软件都是通过源码包方式发布的,这样做对于最终用户而言,虽然相对于二进制软件包,配置和编译起来繁琐点,但是它的可移植性却好得多,针对不同的体系结构,软件开发者往往仅需发布同一份源码包 ...

  3. Linux下源码安装方式安装MySQL

    1.下载安装包:https://downloads.mysql.com/archives/community/  2.安装开发工具和安装包 因为要把源码编译成二进制数据,所以必须要有编译器和解释器 g ...

  4. linux下源码安装apache服务

    1.搭建静态网站是,我们只需要搭建apache服务即可满足要求. 例如:如果我再客户端游览器输入地址,他会找到192.168.1.100这个服务器,然后根据端口会找到apache服务器.apache他 ...

  5. linux下源码安装rabbitMq

    一.安装erlang前期环境安装1.利用yum安装erlang编译所依赖的环境 yum -y install make gcc gcc-c++ kernel-devel m4ncurses-devel ...

  6. Linux下源码安装MySQL-5.6.25

    从mysql-5.5起,mysql源码安装开始使用cmake了,因此我们得先安装cmake,配置安装目录./configure --perfix=/.....的时候和以前的会有些区别. 一.安装cma ...

  7. Linux下源码安装JDK7

    安装说明 安装环境:Red Hat Enterprise Linux7.1安装方式:源码安装 软件:jdk-7u80-linux-x64.gz 安装 #首先查看系统原有JDK信息 rpm -qa | ...

  8. linux下源码安装

    ●源码的安装(./configure –prefix 命令用法)一般由3个步骤组成:配置(configure).编译(make).安装(make install). Configure是一个可执行脚本 ...

  9. linux下源码安装jdk1.8和tomcat8.5

    Java是目前可移植性较高的语言,相当火热,tomcat运行就需要Java语言环境 0.java简介 1)tomcat运行需要对应的Java环境,Java环境通过安装jdk来获得2)为了防止兼容性问题 ...

随机推荐

  1. qPCR检测基因表达的引物数据库

    老板推荐了一个专门用来做基因表达定量(qPCR)的引物数据库,还蛮好用的,都是别人实验验证过的,感觉比自己设计的更靠谱一下,附上链接:https://pga.mgh.harvard.edu/prime ...

  2. MySQL EXTRACT() 函数

    定义和用法 EXTRACT() 函数用于返回日期/时间的单独部分,比如年.月.日.小时.分钟等等. 语法 EXTRACT(unit FROM date) date 参数是合法的日期表达式.unit 参 ...

  3. Java 8新特性:新语法方法引用和Lambda表达式及全新的Stream API

    新语法 方法引用Method references Lambda语法 Lambda语法在AndroidStudio中报错 Stream API 我正参加2016CSDN博客之星的比赛 希望您能投下宝贵 ...

  4. Android 内置群组,联系人

    这样一个需求,手机第一次启动的时候,需要内置一个群组,并且里面有给定的联系人信息, 本来打算写双进程守护的,结果昨天接到一个这样的任务,就先把它做了,发现里面有些操作数据库的东西还是值得看一下. 首先 ...

  5. 微信小程序发布

    一.操作步骤 (1)打开[微信开发者工具]->新建一个默认项目->点击[项目]->点击[上传] (2)使用微信小程序公众平台管理员扫描二维码,在手机微信上点击[确认上传] (3)输入 ...

  6. Markdown对应Yelee主题语法

    概述 这里说的是Yelee主题的语法和原生语法是有些区别的:更多的基础语法可以到Cmd Markdown上面去查看:但是我觉得都会各有不同吧 注意这里说的不是真正意义上的Markdown语法 标题 一 ...

  7. boost::asio::spawn 将一统C++网络库

    boost::asio::spawn 将一统C++网络库(金庆的专栏)boost::asio::spawn()创建一个协程,使C++网络编程大大简化,个人认为这使得 asio 成为C++首选网络库.b ...

  8. 小米手机无法连接eclipse调试解决方案

    今天在做百度地图开发的时候,用genymotion调试一直出错,重启几次都是错的,后来我换成真机发现好了.当然我的小米3连接eclipse一直连不进去,折腾死我了,在网上查了很多资料,发现很多都不能用 ...

  9. 20 ViewPager Demo3指示器

    MainActivity.java package com.qf.day20_viewpager_demo3; import java.util.ArrayList; import java.util ...

  10. hbase高性能读取数据

    有时需要从hbase中一次读取大量的数据,同时对实时性有较高的要求.可以从两方面进行考虑:1.hbase提供的get方法提供了批量获取数据方法,通过组装一个list<Get> gets即可 ...