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.
这样就没问题了。
存在多个版本的问题可以参考 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 下源码安装大杂烩的更多相关文章
- linux下源码安装netcat
linux下源码安装netcat http://blog.chinaunix.net/uid-20783755-id-4211230.html 1,下载netcat源码,netcat-0.7.1-13 ...
- linux下源码安装软件
在linux下的很多软件都是通过源码包方式发布的,这样做对于最终用户而言,虽然相对于二进制软件包,配置和编译起来繁琐点,但是它的可移植性却好得多,针对不同的体系结构,软件开发者往往仅需发布同一份源码包 ...
- Linux下源码安装方式安装MySQL
1.下载安装包:https://downloads.mysql.com/archives/community/ 2.安装开发工具和安装包 因为要把源码编译成二进制数据,所以必须要有编译器和解释器 g ...
- linux下源码安装apache服务
1.搭建静态网站是,我们只需要搭建apache服务即可满足要求. 例如:如果我再客户端游览器输入地址,他会找到192.168.1.100这个服务器,然后根据端口会找到apache服务器.apache他 ...
- linux下源码安装rabbitMq
一.安装erlang前期环境安装1.利用yum安装erlang编译所依赖的环境 yum -y install make gcc gcc-c++ kernel-devel m4ncurses-devel ...
- Linux下源码安装MySQL-5.6.25
从mysql-5.5起,mysql源码安装开始使用cmake了,因此我们得先安装cmake,配置安装目录./configure --perfix=/.....的时候和以前的会有些区别. 一.安装cma ...
- Linux下源码安装JDK7
安装说明 安装环境:Red Hat Enterprise Linux7.1安装方式:源码安装 软件:jdk-7u80-linux-x64.gz 安装 #首先查看系统原有JDK信息 rpm -qa | ...
- linux下源码安装
●源码的安装(./configure –prefix 命令用法)一般由3个步骤组成:配置(configure).编译(make).安装(make install). Configure是一个可执行脚本 ...
- linux下源码安装jdk1.8和tomcat8.5
Java是目前可移植性较高的语言,相当火热,tomcat运行就需要Java语言环境 0.java简介 1)tomcat运行需要对应的Java环境,Java环境通过安装jdk来获得2)为了防止兼容性问题 ...
随机推荐
- Node.js Domain 模块
Node.js Domain(域) 简化异步代码的异常处理,可以捕捉处理try catch无法捕捉的异常.引入 Domain 模块 语法格式如下: var domain = require(" ...
- Docker控制组
控制组是 Linux 容器机制的另外一个关键组件,负责实现资源的审计和限制. 它提供了很多有用的特性:以及确保各个容器可以公平地分享主机的内存.CPU.磁盘 IO 等资源:当然,更重要的是,控制组确保 ...
- 解读Batch Normalization
原文转自:http://blog.csdn.net/shuzfan/article/details/50723877 本次所讲的内容为Batch Normalization,简称BN,来源于<B ...
- Hexo 简明教程
概述 对于个人独立博客的搭建,或者一些产品网站的介绍我个人比较推崇直接用静态网站生成器来完成这个事情,对于,静态网页部署方便,浏览速度快. 以下为部分静态网站生成器简要列表: Ruby Jekyll ...
- 目标管理体系:OKR
一.什么是OKR体系? OKR体系的全称是Objectives & Key Results,即目标与关键成果.所谓OKR,O = Objective 可以理解为企业目标,KR =Key Res ...
- Windows编译ejabberd
Windows编译ejabberd(金庆的专栏)安装 erlang OTP. 添加路径到 PATH, 使 erl 可以运行.git clone ejabberd安装 rebar:git clone g ...
- Appium移动自动化框架初探
作者:cryanimal QQ:164166060 本文简要介绍了appnium自动化框架的架构.加载流程.支持语言.相关配置,以及元素定位工具等. 官方网站: http://appium.io Ap ...
- 将meteor部署到自己的服务器(deploy meteor to your own server)
安装指定版本的node # 所有版本在:https://nodejs.org/download/release/# current dir:/rootwget -c https://nodejs.or ...
- Dynamics CRM2016 新功能之从CRM APP通过电子邮件发送页面链接
通过电子邮件发送页面链接在PC端早就有了,但APP端却始终没有,这版加上了这个功能,这里还是以case为例,发送页面链接的方式有两种 第一种在list界面,长按你要share的数据,会出来选项shar ...
- ExtJS学习(三)Grid表格
表格说明 Ext中的表格功能非常强大,包括排序.缓存.拖动.隐藏某一列.自动显示行号.列汇总.单元格编辑等实用功能.表格由类Ext.grid.GridPanel定义,继承自Ext.Panel,其xty ...