centos 修改源?centos更换源的几种方法

Centos6.10解决yum源失效

在项目开发过程中,常常需要使用 CentOS 6.10和 devtoolset-6。然而, CentOS 6.10已于2020年11月30日停止维护,导致原有 CentOS系统自带的 Yum无法连接到旧版本的仓库,出现 YumRepo Error。此问题需要通过更新陈旧版本的仓库,使之指向可用的 vault来解决。

为了解决 Yum安装出现的错误,首先需要对 yum源进行修改。步骤如下:

1.备份系统旧源

2.编辑 CentOS-Base.repo

在该文件中,需要将所有配置项 mirrolist开头的源地址注释掉,然后拷贝所有配置项 baseurl开头的源地址行,并去除#号注释,同时将源地址修改为官方镜像源地址。文中以 centos6.10为例,将 baseurl中的$releaserver替换成 6.10。

修改后的 CentOS-Base.repo配置如下:

执行以下命令重建镜像源缓存,测试配置的镜像源是否生效:

yum主要常用命令如下:

完成上述操作后,接下来需要进行以下步骤以安装使用 SCL+devtoolset-6。

1.安装 SCL,安装完成后,会在/etc/yum.repos.d下生成 2个 repo源文件。

2.配置 SCL源。

在 CentOS-SCLo-scl.repo和 CentOS-SCLo-scl-rh.repo文件中,分别备份文件后,需要将 centos-sclo-sclo和 centos-sclo-rh项下的 mirrorlist注释掉,拷贝 baseurl行,去除#注释,并修改源地址为新的镜像源地址。

修改后的 CentOS-SCLo-scl.repo和 CentOS-SCLo-scl-rh.repo配置如下:

由于项目需求安装 devtoolset-6,因此需要将源地址中"centos/6"修改为"centos/6.9",以便指向 devtoolset-6安装包所在的 6.9目录,确保路径与 devtoolset版本需求相匹配。

5.清理重建 yum缓存

3.安装 scl工具

4.安装 devtoolset-6

通过以上步骤,可有效解决 CentOS6.10配置 yum源失效的问题,同时成功安装使用 SCL+devtoolset-6,满足项目开发需求。

linux的源代码linux程序源代码

Linux是开源的,那么如何查看源代码?

Linux的内核源代码可以从很多途径得到。一般来讲,在安装的linux系统下,/usr/src/linux目录下的东西就是内核源代码。

如何查看linux内核源代码?

一般在Linux系统中的/usr/src/linux*.*.*(*.*.*代表的是内核版本,如2.4.23)目录下就是内核源代码(如果没有类似目录,是因为还没安装内核代码)。另外还可从互连网上免费下载。注意,不要总到去下载,最好使用它的镜像站点下载。请在里找一个合适的下载点,再到pub/linux/kernel/v2.6/目录下去下载2.4.23内核。

代码目录结构

在阅读源码之前,还应知道Linux内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。Linux内核源码的各个目录大致与此相对应,其组成如下(假设相对于Linux-2.4.23目录):

1.arch目录包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是IntelCPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。

2.include目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。

3.init目录包含核心的初始化代码(不是系统的引导代码),有main.c和Version.c两个文件。这是研究核心如何工作的好起点。

4.mm目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下。

5.drivers目录中是系统中所有的设备驱动程序。它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于drivers/sound。

6.ipc目录包含了核心进程间的通信代码。

7.modules目录存放了已建好的、可动态加载的模块。

8.fs目录存放Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext3文件系统对应的就是ext3子目录。

Kernel内核管理的核心代码放在这里。同时与处理器结构相关代码都放在arch/*/kernel目录下。

9.net目录里是核心的网络部分代码,其每个子目录对应于网络的一个方面。

10.lib目录包含了核心的库代码,不过与处理器结构相关的库代码被放在arch/*/lib/目录下。

11.scripts目录包含用于配置核心的脚本文件。

12.documentation目录下是一些文档,是对每个目录作用的具体说明。

一般在每个目录下都有一个.depend文件和一个Makefile文件。这两个文件都是编译时使用的辅助文件。仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助。另外有的目录下还有Readme文件,它是对该目录下文件的一些说明,同样有利于对内核源码的理解。

在阅读方法或顺序上,有纵向与横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是按模块进行。它们经常结合在一起进行。对于Linux启动的代码可顺着Linux的启动顺序一步步来阅读;对于像内存管理部分,可以单独拿出来进行阅读分析。实际上这是一个反复的过程,不可能读一遍就理解。

如何编译linux源代码?

1、安装编码源码的编译工具,一般是需要安装gccyuminstallgcc

2、把源码解压tarzxvfuname.tar.gz

3、进入解压的目录执行./configuremakemakeinstall完成编译安装

如何获取linux下命令源码?

命令的源码是一个软件包为单元的,放在一个软件包的源码中。若要下载一个命令的源码,就要把这个命令所属的软件包的源码都下载下来。命令的源码就在下载的源码的相关文件夹内。一般是src文件夹,对应的主文件名称为cmd.c,当中cmd为详细的命令,如ls命令的主程序文件为ls.c。

因为在不同的Linux发行版上。源码的获取方法并不同样。所以以下以Ubuntu和CentOS这两种经常使用的Linux发行版为样例进行说明。

1、Ubuntu中系统命令源码的获取方法

以32位Ubuntu14.04下,获取ls命令的源码为例,能够使用例如以下的方法下载源码:

1)使用which命令查看ls命令的位置,例如以下:

whichls#输出:/bin/ls

2)使用dpkg命令查询ls命令所属的包。例如以下:

dpkg-S/bin/ls#输出:coreutils:/bin/ls

3)使用apt-get命令来下载ls命令所在的包的源码。例如以下:

apt-getsourcecoreutils

注:

1)在使用dpkg时。若出现错误。能够使用sudo命令使其以root权限运行。

2)使用apt-getsource下载的源码保存到当前文件夹下。

。此外,当我们知道了命令所属的包后,也能够到对应的官方站点下载。

2、CentOS中系统命令源码的获取方法

以32位CentOS6.6下,获取ls命令的源码为例,能够使用例如以下的方法下载源码:

1)配置源码的源

在CentOS中,源的配置文件为:/etc/yum.repos.d/CentOS-Base.repo,改动该文件须要root权限。

打开该文件,查看该文件的内容,在本人的机子上,该文件的内容例如以下:

#CentOS-Base.repo

#

#ThemirrorsystemusestheconnectingIPaddressoftheclientandthe

#updatestatusofeachmirrortopickmirrorsthatareupdatedtoand

#geographicallyclosetotheclient.YoushouldusethisforCentOSupdates

#unlessyouaremanuallypickingothermirrors.

#

#Ifthemirrorlist=doesnotworkforyou,asafallbackyoucantrythe

#remarkedoutbaseurl=lineinstead.

#

#

name=CentOS-$releasever-Base

mirrorlist=$releaseverarch=$basearchrepo=os

#baseurl=$releasever/os/$basearch/

gpgcheck=1

gpgkey=

#releasedupdates

name=CentOS-$releasever-Updates

mirrorlist=$releaseverarch=$basearchrepo=updates

#baseurl=$releasever/updates/$basearch/

gpgcheck=1

gpgkey=

#additionalpackagesthatmaybeuseful

name=CentOS-$releasever-Extras

mirrorlist=?

release=$releaseverarch=$basearchrepo=extras

#baseurl=$releasever/extras/$basearch/

gpgcheck=1

gpgkey=

#additionalpackagesthatextendfunctionalityofexistingpackages

name=CentOS-$releasever-Plus

mirrorlist=$releaseverarch=$basearchrepo=centosplus

#baseurl=$releasever/centosplus/$basearch/

gpgcheck=1

enabled=0

gpgkey=

#contrib-packagesbyCentosUsers

name=CentOS-$releasever-Contrib

mirrorlist=$releaseverarch=$basearchrepo=contrib

#baseurl=$releasever/contrib/$basearch/

gpgcheck=1

enabled=0

gpgkey=

该文件里有两个变量:releasever和basearch。分别表示release版本号和分支,如本人的机子上,这两个值分别为6和i386。注意。releasever并不会细分为次级版本号。即不会是6.6之类的。

从该文件的内容能够知道,该文件共同拥有5个节。也就是说本人的机子的软件来源有5处,分别为base、updates、extras、centosplus和contrib。所以仅仅须要为例如以下的5处软件源指定其源码的源就可以。在文件的末尾加上例如以下的内容:

name=CentOS-$releasever-Basesrc

baseurl=

gpgcheck=1

gpgkey=

name=CentOS-$releasever-Updatessrc-centos

baseurl=

gpgcheck=1

gpgkey=

name=CentOS-$releasever-Extrassrc-centos

baseurl=

gpgcheck=1

gpgkey=

name=CentOS-$releasever-Plussrc-centos

baseurl=

gpgcheck=1

gpgkey=

name=CentOS-$releasever-Contribsrc-centos

baseurl=

gpgcheck=1

gpgkey=

因为不同的版本号设置会有所不同,所以其设置会有所不同,方法可总结为例如以下:

(1)gpgkey与该文件里已有的节的gpgkey同样

(2)为了确认文件的存在和情况,能够打开站点查看详细的情况,再依据详细的情况来填写

(3)设置baseurl时须要依据自己的系统的版本号来设置,如本人的机子为CentOS-6.6,则在设置时,相关的_数就设置为6.6。即后接的子路径为6.6。

该文件的作用是为yum其及相关工作的下载提供一个源。如在使用yumdownloader(以下会讲到)下载源码时。会发生例如以下动作:

(1)下载$baseurl/repodata/repomd.xml文件。若该repomd.xml文件比系统中的新。更新系统中的对应的repomd.xml

(2)下载$baseurl/SPackages/中的对应的源码rpm包。

2)使用which命令查看ls命令的位置,例如以下:

whichls

#输出:/bin/ls

3)使用rpm命令查询ls命令所属的包,例如以下:

rpm-qf/bin/ls

#输出:coreutils-8.4-37.el6.i686

4)yumdownloader是一个从RPM源下载RPM的程序,能够使用yumdownloader命令安装源码。例如以下:

yumdownloader--sourcecoreutils-8.4-37.el6.i686

注:

(1)若yumdownloader命令没有安装,则能够使用此命令安装:yuminstallyum-utils。

(2)下载的文件在当前文件夹下。能够使用_数--destdir指定下载到哪一个文件夹。

5)使用yumdownloader下载到的是一个安装包文件rpm,能够使用例如以下的命令查询rpm中的tar文件:

rpm-qplcoreutils-8.4-37.el6.src.rpm|greptar

#输出:coreutils-8.4.tar.xz

6)使用rpm2cpio命令将rpm包文件转换成cpio归档文件,再使用cpio命令,从cpio归档文件复制提取出一个归档文件。出例如以下:

rpm2cpiocoreutils-8.4-37.el6.src.rpm|cpio-idvcoreutils-8.4.tar.xz

#输出:

#coreutils-8.4.tar.xz

#9561blocks

cpio的man解释为:cpiocopiesfilesintoanarchive

-i:与--extract等同。提取之意

-d:与--make-directories等同,当有须要时创建一个载入文件夹

-v:列出文件的处理过程

7)使用tar命令对coreutils-8.4.tar.xz压缩包进行解压缩,例如以下:

tar-xvf./coreutils-8.4.tar.xz

至此,命令的源码获取完毕。

利用linux系统开放源代码的特点?

(1)免费、没有版权。每个人都可以用。

(2)开源,源代码开放。用户可以根据自己的需要进行修改源码。

(3)内核遵守GPL协议:每个人都可以修改、使用、发布linux,但是修改后需要发布修改后的源代码。每个人都在为linux做贡献,众人拾柴火焰高。

(4)稳定性、安全性高。

(5)很多大型网站都用Linux服务器。

CentOS7 yum源修改为阿里,配置阿里epel源

CentOS 7中,要将yum源修改为阿里,首先需要明白yum源的基本概念和配置。yum是一个在这些系统中管理软件包的工具,它通过分析软件的依赖关系,从仓库下载并安装所需的软件。yum的工作流程涉及服务器端存储RPM软件包和客户端下载仓库配置信息进行安装。

配置yum源主要通过编辑配置文件,如/etc/yum.conf和/etc/yum.repos.d下的.repo文件。yum.conf是全局配置文件,包含公共设置,而.repo文件则定义了每个软件源的具体信息,如仓库地址、启用状态和数字证书验证。

对于阿里yum源,首先备份原有的yum源,然后可以从官方获取阿里云的yum源配置文件。有两种部署方法:一是通过yum安装epel配置包并替换原有的仓库地址;二是直接下载阿里云的repo文件,然后执行yum clean和makecache命令更新缓存,确保软件包信息的完整性。在部署完成后,可以使用yum update或upgrade来检查并更新系统软件包,以解决可能的依赖冲突。

为了验证更改,可以使用yum repolist命令查看当前的仓库列表。记得在进行任何更改之前,确保备份原有的配置,以防止数据丢失或配置混乱。

阅读剩余
THE END