Ubuntu下如何更快地安装gcc编译器

Wesley13
• 阅读 613

Ubuntu下如何更快地安装gcc编译器

最近操作系统开始上实验课了,瞟了一眼实验目录,看到了“gcc”的字样,一下子勾起了不好的回忆。记得上学期上计组的时候,曾经尝试在自己电脑的虚拟机上安装 gcc ,然而每次的速度都是 0%(比 git 还慢很多),几个小时过去了也一动不动,非常让人崩溃。当时知道是软件源的问题,但是不知脑子抽了还是怎么,换源一直失败。后来决定还是用学校机房的电脑得了,于是就一直没管这个问题。不过现在上网课,都得在自己电脑上做实验,所以还是决定花点时间解决这个问题。

换源

像往常一样,当我准备用 sudo apt update 查看更新的时候,一如既往卡在了 0% 这里,所以安装 gcc 的第一步是换源。找到 /etc/apt/ 文件夹下的 sources.list 文件,这个文件是包管理工具 apt 用来记录软件包仓库位置的配置文件。可以打开看一下,每一行的格式类似 deb http:*//mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse*deb 是档案类型,中间的是镜像地址,bionic 是版本号,剩下部分的则是软件包分类。

既然要换源,肯定是得编辑这个文件了。由于这个文件比较重要,所以我们先通过 sudo cp sources.list sources.list.bak 做一下备份。之后当我们想要编辑这个文件的时候,它会提示我们没有权限修改。因为我们默认是普通用户登录,文件对我们只开放 read-only 权限。这里有两种方式可以让我们修改这个文件。

修改文件读写权限

简单粗暴的方法,直接使用:

sudo chmod 777 /etc/apt/sources.list

修改文件权限为最高的 777。文件本来向普通用户只开放只读权限,这样设置就开放了读、写、执行权限,我们就可以修改文件内容了。(不过乱改重要文件的权限好像不太好?)

root 登录图形界面

说实话,如果单单为了修改文件而用这个方法的话,很麻烦,而且没有必要。不过,以 root 登录图形界面后,各种文件操作会更加方便(权限都是开放的),而且命令行也不再需要 sudo,所以勉强算是一种解决方法吧。

为了安全起见,Ubuntu 默认是不允许以 root 登录图形界面的,所以我们要做一些修改。

第一步:还是以普通用户登录系统,然后通过 sudo passwd root 创建 root 用户的密码(创建过的可以忽略这一步),接着 sudo su 切换到 root 用户。现在,我们的终端就切换到 root 了,不过登录身份还是普通用户。

第二步:通过 sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 以 root 身份打开文件(默认是 read-only,普通用户无法编辑),在文本最后添加如下两行并保存:

greeter-show-manual-login=true all-guest=false

第三步:通过 sudo gedit /etc/pam.d/gdm-autologin 以 root 身份打开文件,注释掉下面这行并保存:

auth required pam_succeed_if.so user != root quiet_success

同样的方法打开 gdm-password 文件,注释内容同上。

第四步:通过  sudo gedit /root/.profile 以 root 身份打开文件,将文件末尾的 mesg n || true 替换成 tty -s&&mesg n || true,再保存。

第五步:重启系统就 ok 了。默认展示的只有普通用户的用户名,点击下面的 Not listed? 手动输入 root 用户名和对应密码,这样就可以以 root 登录图形界面了。

之后可以右键查看 sources.list 文件的属性,可以看到我们已经有读写权限了。

安装 gcc

接下来就简单了, sources.list 文件里的镜像默认不是国内的,所以我们把里面的内容清空(开头我们备份过了,出事了可以还原回来)。之后的步骤,网上有一些博客可能会说,需要自己手动把国内的镜像地址复制粘贴进去,其实不需要这么麻烦,官方是有提供换源方法的(当然也可以自己去网上找源,这里就不说了)。

搜索“software & update”(中文版的话是软件与更新“),点击打开。这里可以把第一个选项卡的都勾选上,之后在”download from“这里选择”others“:

Ubuntu下如何更快地安装gcc编译器

这样就会弹出一个下载服务器列表,之后我们就可以手动选择国内的镜像了,比如阿里云。

Ubuntu下如何更快地安装gcc编译器

当然也可以直接点击右侧的”select best server“,这样的话就是自动匹配速度最佳的服务器。这里会花大概几分钟来测试:

Ubuntu下如何更快地安装gcc编译器

之后提醒你 reload,点击确定即可:

Ubuntu下如何更快地安装gcc编译器

现在我们再来 sudo apt update,可以看到速度是非常快的,不存在卡顿的情况(简直太爽了有木有!):

Ubuntu下如何更快地安装gcc编译器

之后安装 gcc 即可。不过我们这里不直接单独安装 gcc,而是通过 sudo apt install build-essential安装 Ubuntu 提供的 build-essential 软件包,它依赖了 gcc 和 g++,所以只要安装这个包的话,gcc、g++ 这些东西自动也会装上的。

最后我们再通过 gcc -v 查看是否成功安装了 gcc:

Ubuntu下如何更快地安装gcc编译器

大功告成!

Ubuntu下如何更快地安装gcc编译器

本文分享自微信公众号 - 漫游前端世界(gh_6ac344b74a01)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这