ubuntu gcc安装

2,623 阅读5分钟

环境搭建

安装gcc

# apt-get install  gcc g++ -y

无法安装

正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
E: 无法定位软件包 build-dep
root@yz:~# sudo apt-get  build-dep  gcc
正在读取软件包列表... 完成
选择 gcc-defaults 作为源代码包而非 gcc
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 dpkg-dev : 依赖: libdpkg-perl (= 1.19.7ubuntu3) 但是 1.20.5ubuntu2 正要被安装
 g++ : 依赖: cpp (= 4:9.3.0-1ubuntu2) 但是 4:10.2.0-1ubuntu1 正要被安装
       依赖: g++-9 (>= 9.3.0-3~) 但是它将不会被安装
       依赖: gcc-9 (>= 9.3.0-3~) 但是它将不会被安装
 gcc : 依赖: cpp (= 4:9.3.0-1ubuntu2) 但是 4:10.2.0-1ubuntu1 正要被安装
       依赖: gcc-9 (>= 9.3.0-3~) 但是它将不会被安装
 libc6-dev : 依赖: libc6 (= 2.31-0ubuntu9.1) 但是 2.32-0ubuntu3 正要被安装
             依赖: libc-dev-bin (= 2.31-0ubuntu9.1)
             依赖: libcrypt-dev 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

使用aptitude进行安装,aptitude 会对依赖关系进行智能处理

# apt-get install aptitude
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列软件包是自动安装的并且现在不需要了:
  ippusbxd libtepl-4-0
使用'apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
  aptitude-common libboost-iostreams1.71.0 libcgi-fast-perl libcgi-pm-perl
  libclass-accessor-perl libcwidget4 libfcgi-perl libio-string-perl
  libparse-debianchangelog-perl libsub-name-perl libxapian30
建议安装:
  aptitude-doc-en | aptitude-doc apt-xapian-index debtags tasksel
  libcwidget-dev libhtml-template-perl libxml-simple-perl xapian-tools
下列【新】软件包将被安装:
  aptitude aptitude-common libboost-iostreams1.71.0 libcgi-fast-perl
  libcgi-pm-perl libclass-accessor-perl libcwidget4 libfcgi-perl
  libio-string-perl libparse-debianchangelog-perl libsub-name-perl libxapian30
升级了 0 个软件包,新安装了 12 个软件包,要卸载 0 个软件包,有 2 个软件包未被升级。
需要下载 4,561 kB 的归档。
解压缩后会消耗 22.1 MB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://mirrors.aliyun.com/ubuntu focal/universe amd64 aptitude-common all 0.8.12-1ubuntu4 [1,711 kB]
获取:2 http://mirrors.aliyun.com/ubuntu focal/main amd64 libboost-iostreams1.71.0 amd64 1.71.0-6ubuntu6 [237 kB]
获取:3 http://mirrors.aliyun.com/ubuntu focal/universe amd64 libcwidget4 amd64 0.5.18-5build1 [306 kB]
获取:4 http://mirrors.aliyun.com/ubuntu focal/universe amd64 libxapian30 amd64 1.4.14-2 [661 kB]
获取:5 http://mirrors.aliyun.com/ubuntu focal/universe amd64 aptitude amd64 0.8.12-1ubuntu4 [1,323 kB]
获取:6 http://mirrors.aliyun.com/ubuntu focal/main amd64 libcgi-pm-perl all 4.46-1 [186 kB]
获取:7 http://mirrors.aliyun.com/ubuntu focal/main amd64 libfcgi-perl amd64 0.79-1 [33.1 kB]
获取:8 http://mirrors.aliyun.com/ubuntu focal/main amd64 libcgi-fast-perl all 1:2.15-1 [10.5 kB]
获取:9 http://mirrors.aliyun.com/ubuntu focal/main amd64 libsub-name-perl amd64 0.26-1 [11.5 kB]
获取:10 http://mirrors.aliyun.com/ubuntu focal/universe amd64 libclass-accessor-perl all 0.51-1 [21.2 kB]
获取:11 http://mirrors.aliyun.com/ubuntu focal/main amd64 libio-string-perl all 1.08-3 [11.1 kB]
获取:12 http://mirrors.aliyun.com/ubuntu focal/universe amd64 libparse-debianchangelog-perl all 1.2.0-13 [49.7 kB]
已下载 4,561 kB,耗时 2秒 (2,378 kB/s)               
正在选中未选择的软件包 aptitude-common。
(正在读取数据库 ... 系统当前共安装有 171088 个文件和目录。)
准备解压 .../00-aptitude-common_0.8.12-1ubuntu4_all.deb  ...
正在解压 aptitude-common (0.8.12-1ubuntu4) ...
正在选中未选择的软件包 libboost-iostreams1.71.0:amd64。
准备解压 .../01-libboost-iostreams1.71.0_1.71.0-6ubuntu6_amd64.deb  ...
正在解压 libboost-iostreams1.71.0:amd64 (1.71.0-6ubuntu6) ...
正在选中未选择的软件包 libcwidget4:amd64。
准备解压 .../02-libcwidget4_0.5.18-5build1_amd64.deb  ...
正在解压 libcwidget4:amd64 (0.5.18-5build1) ...
正在选中未选择的软件包 libxapian30:amd64。
准备解压 .../03-libxapian30_1.4.14-2_amd64.deb  ...
正在解压 libxapian30:amd64 (1.4.14-2) ...
正在选中未选择的软件包 aptitude。
准备解压 .../04-aptitude_0.8.12-1ubuntu4_amd64.deb  ...
正在解压 aptitude (0.8.12-1ubuntu4) ...
正在选中未选择的软件包 libcgi-pm-perl。
准备解压 .../05-libcgi-pm-perl_4.46-1_all.deb  ...
正在解压 libcgi-pm-perl (4.46-1) ...
正在选中未选择的软件包 libfcgi-perl。
准备解压 .../06-libfcgi-perl_0.79-1_amd64.deb  ...
正在解压 libfcgi-perl (0.79-1) ...
正在选中未选择的软件包 libcgi-fast-perl。
准备解压 .../07-libcgi-fast-perl_1%3a2.15-1_all.deb  ...
正在解压 libcgi-fast-perl (1:2.15-1) ...
正在选中未选择的软件包 libsub-name-perl。
准备解压 .../08-libsub-name-perl_0.26-1_amd64.deb  ...
正在解压 libsub-name-perl (0.26-1) ...
正在选中未选择的软件包 libclass-accessor-perl。
准备解压 .../09-libclass-accessor-perl_0.51-1_all.deb  ...
正在解压 libclass-accessor-perl (0.51-1) ...
正在选中未选择的软件包 libio-string-perl。
准备解压 .../10-libio-string-perl_1.08-3_all.deb  ...
正在解压 libio-string-perl (1.08-3) ...
正在选中未选择的软件包 libparse-debianchangelog-perl。
准备解压 .../11-libparse-debianchangelog-perl_1.2.0-13_all.deb  ...
正在解压 libparse-debianchangelog-perl (1.2.0-13) ...
正在设置 libxapian30:amd64 (1.4.14-2) ...
正在设置 libcgi-pm-perl (4.46-1) ...
正在设置 libboost-iostreams1.71.0:amd64 (1.71.0-6ubuntu6) ...
正在设置 libio-string-perl (1.08-3) ...
正在设置 libcwidget4:amd64 (0.5.18-5build1) ...
正在设置 aptitude-common (0.8.12-1ubuntu4) ...
正在设置 aptitude (0.8.12-1ubuntu4) ...
update-alternatives: 使用 /usr/bin/aptitude-curses 来在自动模式中提供 /usr/bin/aptitude (aptitude)
正在设置 libsub-name-perl (0.26-1) ...
正在设置 libfcgi-perl (0.79-1) ...
正在设置 libclass-accessor-perl (0.51-1) ...
正在设置 libcgi-fast-perl (1:2.15-1) ...
正在设置 libparse-debianchangelog-perl (1.2.0-13) ...
正在处理用于 man-db (2.9.3-2) 的触发器 ...
正在处理用于 libc-bin (2.32-0ubuntu3) 的触发器 ...

aptitude

aptitude 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具基于大名鼎鼎的APT机制, 整合了 dselect 和 apt-get 的所有功能, 并提供的更多特性,特别是在依赖关系处理上。。与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。

推荐使用aptitude命令来代替apt-get,下载或者删除依赖包的时候aptitude要比apt-get更好。不过aptitude和apt-get不能混用,要不然互相都不知道对方做了什么

使用

aptitude 选项 参数
-h:显示帮助信息
-d:仅下载软件包,不执行安装操作
-P:每一步操作都要求确认
-y:所有问题都回答“yes”
-v:显示附加信息; 
-u:启动时下载新的软件包列表
aptitude update            更新可用的包列表 

aptitude safe-upgrade      执行一次安全的升级 

aptitude full-upgrade      将系统升级到新的发行版 

aptitude install pkgname   安装包 

aptitude remove pkgname    删除包 

aptitude purge pkgname     删除包及其配置文件 

aptitude search string     搜索包 

aptitude show pkgname      显示包的详细信息 

aptitude clean             删除下载的包文件 

aptitude autoclean         仅删除过期的包文件