转自 http://blog.sina.com.cn/s/blog_71553b090101jxb5.html
简单粗暴点:
1.登录网站:http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.6/
2.下载者四个包: g++-4.6_4.6.3-1ubuntu5_amd64.deb、gcc-4.6_4.6.3-1ubuntu5_amd64.deb、gcc-4.6-base_4.6.3-1ubuntu5_amd64.deb和libstdc++6-4.6-dev_4.6.3-1ubuntu5_amd64.deb
3. 运行:# dpkg -i *.deb
4.检测: #g++-4.6 -v
- 从Ubuntu 12.04的iso镜像中安装,默认带有gcc-4.6.3,在/usr/bin/下有gcc,gcc-4.6等四个子目录。
- 离线安装是指,Ubuntu 12.04不接入network,不能从网络的软件源处下载,就是不能使用apt-get install了。
- 离线安装的几种方法有:从安装光盘上直接安装、使用synaptic或其他软件管理器、在命令行中使用dpkg安装、自己搭建一个源供内网用户下载。
- 这里,先采用了在命令行中使用dpkg命令安装g++的方法。
- 第一个问题是从哪里下载安装包,安装包是什么格式的。dpkg命令的操作对象是.deb格式的,首先找的下载源是gcc.gnu.org,在页面右侧的Download->Mirror Sites下找了一个UK的,解压后有gcc和libstdc++两个文件夹,其中libstdc++文件夹中的configure运行起来会报错“缺少install.sh”,网上的几个经验帖是让把解压路径和编译路径分开设置,也就是要另外mkdir一个路径,后续工作都比较麻烦,没看懂所以就没采用这个方法。从另一个网站下载,网址是http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.6/,这里应该是gcc的全部安装包。从http://packages.ubuntu.com/precise/amd64/g++/filelist 和
http://packages.ubuntu.com/precise/g++ 中知道了必须下载的几个安装包是g++-4.6_4.6.3-1ubuntu5_amd64.deb、gcc-4.6_4.6.3-1ubuntu5_amd64.deb、gcc-4.6-base_4.6.3-1ubuntu5_amd64.deb和libstdc++6-4.6-dev_4.6.3-1ubuntu5_amd64.deb,这是由安装包之间的依赖关系决定的。在联网的情况下,试一下apt-get install g++,也可以知道需要哪些安装包。 - 将这四个安装包放在一个路径下,然后在命令行中输入sudo dpkg -i ......(四个安装包),就将g++安装好了。
- 第二个问题是带有这样一个背景的,在命令行下输入gcc -v时,会返回gcc的版本等信息,输入whereis gcc和which gcc时返回了/usr/bin。上面的第一步完成后,在命令行中输入g++会提示没有安装,whereis g++和 which g++则无返回信息。
- 这时,看到在/usr/bin在是有g++-4.6这样的目录的(一共有两个带有g++的目录),启发我在命令行中输入g++ -v,这时会返回g++的版本信息,而且whereis g++-4.6和which g++-4.6都有返回值。同样g++-4.6 可以编译cpp文件,说明g++编译器安装成功。