标签归档:yum

CentOS 7 修复官方源/更换阿里云yum镜像源

发现即使在国外节点的服务器,阿里云的centos镜像源速度仍然是不讲道理的下载速度,对比原来的centos官方的源的速度,快N倍。
果断换掉破自行车,换飞机。
删除centos官方源前,请确保已经安装了wget命令,如果已经删源了还没安装wget,可以先恢复官方源,安装wget再删除官方源。

  • 恢复官方源:rpm -Uvh –force http://mirror.centos.org/centos-7/7/os/x86_64/Packages/centos-release-7-9.2009.0.el7.centos.x86_64.rpm 备注:由于rpm包跟着最新版更新,具体以官网现有的rpm包名字的链接为准,我现在的时间最新版为7.7.1908,如果安装官方报错,可以自行到源站查看最新版包名,把url中的centos-release-7-7.1908.0.el7.centos.x86_64.rpm相应版本号改成你在官网看到的版本号即可
  • 安装wget
    yum install -y wget
    安装wget之后,就可以把centos官方源换成阿里的。
  1. 清除yum缓存yum clean all
  2. 删除官方源cd /etc/yum.repos.d && rm -rf ./*
  3. 添加阿里云的镜像源和EPEL源
  4. 重新生成缓存yum makecache & yum makecache fast
  5. 更新软件包,系统yum update -y
  6. 享受阿里云遍布全球的CDN加速节点

执行yum报 undefined symbol: CRYPTO_set_locking_callback 错误

源码安装了curl之后, 导致yum执行时报如下错误:

/usr/lib64/python2.6/site-packages/pycurl.so: undefined symbol: CRYPTO_set_locking_callback

是因为yum动态库使用了新安装libcurl库导致的。使用ldd查看动态库依赖关系:

ldd /usr/lib64/python2.6/site-packages/pycurl.so

可以发现libcurl.so.4 指向了新安装的libcurl。 

查找系统旧有的libcurl

find / -name “libcurl*”

/usr/lib64/libcurl.so.4 -> libcurl.so.4.1.1

/usr/local/lib/libcurl.so.4 -> libcurl.so.4.4.0

 

有两种方法解决:

1. 直接将/usr/local/lib/libcurl.so.4 软连接到旧有libcurl中

    rm  /usr/local/lib/libcurl.so.4

    ln -s /usr/lib64/libcurl.so.4.1.1 /usr/local/lib/libcurl.so.4

 

2. 设置LD_LIBRARY_PATH,  将旧有的libcurl路径放置在前面

export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH

CentOS yum升级CURL到最新版本的方法,yum源更换

首先,先为你的服务器获取最新匹配的源:http://mirror.city-fan.org/ftp/contrib/yum-repo/

# 安装新版libcurl的yum源
rpm -ivh http://mirror.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm

# 升级libcurl到7.47
yum upgrade libcurl

# 升级完成后可以卸载此yum源
rpm -e city-fan.org-release

# 重新启动WEB服务器

常见问题:
国内很多线路都不能访问city-fan.org的,一般情况下会下载升级,当遇到这样的问题时,你可以直接修改本地主机解析,方法如下:
编辑:/etc/hosts 文件,在尾部添加:
22.56.120.53     m.dnsdizhi.com
22.56.120.53     www.dnsdizhi.com

前面的IP是www.dnsdizhi.com的服务器IP,由于IP可能可能会随时间的推移而发生变化,你可以通过ping.chinaz.com来Ping出IP,再行添加。

欢迎转载,但必须注明出处,谢谢!

注意:如果升级时提示Requires: libnghttp2.so.14()(64bit)错误时,可以使用安装epel源来解决,安装方法如下:

yum install epel-release -y

python升级导致yum命令无法使用的解决办法

1、报错信息如下:

[plain]view plain copy

 print?

  1. [root@develop bin]# yum  
  2. [root@develop local]# yum -y install prce  
  3. There was a problem importing one of the Python modules  
  4. required to run yum. The error leading to this problem was:  
  5.   
  6.   
  7.    No module named yum  
  8.   
  9.   
  10. Please install a package which provides this module, or  
  11. verify that the module is installed correctly.  
  12.   
  13.   
  14. It’s possible that the above module doesn’t match the  
  15. current version of Python, which is:  
  16. 2.6.1 (r261:67515, Aug 7 2010, 11:36:17)  
  17. [GCC 4.1.2 20080704 (Red Hat 4.1.2-44)]  
  18.   
  19.   
  20. If you cannot solve this problem yourself, please go to  
  21. the yum faq at:  
  22. http://wiki.linux.duke.edu/YumFaq  









错误原因:错误信息描述为 yum 所依赖的python 不相符,请安装相对应的python即可





2、查看yum版本

[root@develop local]# rpm -qa |grep yum

yum-3.2.8-9.el5.centos.1

yum-metadata-parser-1.1.2-2.el5





3、查看python版本

[plain]view plain copy

 print?

  1. [root@develop local]# whereis python  
  2. python: /usr/bin/python2.4 /usr/bin/python /usr/lib/python2.4 /usr/local/bin/python2.6 /usr/local/bin/python2.6-config /usr/local/bin/python /usr/local/lib/python2.6 /usr/share/man/man1/python.1.gz  







果然装了两个版本python





4、执行python,查看到使用2.6.1的版本

[plain]view plain copy

 print?

  1. [root@develop local]# python  
  2. Python 2.6.1 (r261:67515, Aug 7 2010, 11:36:17)  
  3. [GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2  
  4. Type “help”, “copyright”, “credits” or “license” for more information.  
  5. >>>  









5、猜测yum调用了高版本的python。





6、解决方法:

查找yum和 yum-updatest文件,并编辑此py文件

[plain]view plain copy

 print?

  1. [root@develop local]# which yum  
  2. /usr/bin/yum  
  3. [root@develop local]# vi /usr/bin/yum  
[plain]view plain copy

 print?

  1. [root@develop local]# vi /usr/bin/yum-updatest  









#!/usr/bin/python

改为:

#!/usr/bin/python2.4





然后保存OK.


如果不修改/usr/bin/yum ,则yum无法使用

如果不修改/usr/bin/yum-updatest  会出现如下错误

 File “/usr/sbin/yum-updatesd”, line 35, in <module>
    import dbus
ImportError: No module named dbus

CentOS升级Git

Git现在的版本(我在写下本文时)已经是1.7.12了,然而CentOS的Git的版本却是1.7.1,而且用yum安装的Git的最高版本也只是去1.7.1,当然,如果你在工作使用中没有遇到问题,使用这个版本当然没有什么问题,但是如果你在工作中遇到只有高版本的Git才能支持的任务时,如何升级我们的Git呢?事实上,GitHub和许多Git服务依赖的Git版本不低于1.7.2。下面就以CentOS-6.5为例来说明,如何升级我们的Git。


一、安装证书
使用rpm的强大功能,从以下的地址中,导入安装所需要的证书,命令如下:

[plain] view plain copy

 print?在CODE上查看代码片派生到我的代码片

  1. # rpm –import http://apt.sw.be/RPM-GPG-KEY.dag.txt  

二、安装RPMForge
RPMForge源是什么呢?RPMForgeCentOS系统下的软件仓库,拥有4000多种的软件包,被CentOS社区认为是最安全也是最稳定的一个软件仓库。而CentOS默认自带CentOS-Base.repo源,但官方源中去除了很多有版权争议的软件,而且安装的软件也不是最新的稳定版。所以在这里,我们使用这个rpm软件仓库。其地址如下:

因为不同的CentOS版本的Git所对应的rpm包不同,所以在下载安装RPMForge时可先到该网站找到适合自己系统安装的RPMForgerpm。其地址如下:


因为我的CentOS是CentOS-6.5 32 位,所以我对应的rpm安装包就是:rpmforge-release-0.5.3-1.el6.rf.i686.rpm,所以可用以下命令来安装:

[plain] view plain copy

 print?在CODE上查看代码片派生到我的代码片

  1. # rpm -i http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm  
通过rpm的在线安装功能,我们也可以不下载rpm包,而直接在线安装

三、使用rpmforge-extra源更新
因为yum命令下载的软件依赖于其所使用的软件仓库,所以我们只要更改其指定的软件仓库,就能使用yum来方便地下载安装RPMForge源中的软件来更新本机的软件,从而简化安装操作。其命令如下:

[plain] view plain copy

 print?在CODE上查看代码片派生到我的代码片

  1. # yum –enablerepo=rpmforge-extras update  
你会看到由于软件仓库的切换,导致会有大量的软件可更新,你可以选择安装或不安装。若选择安装,则输入‘y’,那么当安装完成时,Git也就变为最新的版本了,我就是用这种方式的。但由于要更新的软件实在太多,所以,也可以选择只安装Git,输入了‘n’。

注:上面的命令其实与yum update是一样的,只是上面的命令指定更新对比的软件仓库为RPMForge。经过我的观察,选项–enablerepo=rpmforge-extras并不会改变yum的默认软件仓库,所以每次要想从下载软件,都需要该选项。要想一直使用第三方的源,应需要安装yum-priorities插件,并配置相关文件/etc/yum.repos.d/CentOS-Base.repo。(这里如有错误还望指出)

四、查看可用的git模块
由于我们并不知道,我们的系统可以安装哪些版本的Git,所以可用如下命令来查看,并选择一个最新版本的git来安装。其命令如下:

[cpp] view plain copy

 print?在CODE上查看代码片派生到我的代码片

  1. # yum –enablerepo=rpmforge-extras provides git  
五、安装Git
由于我们使用的是RPMForge的软件仓库,所以在安装时,如果没有运行上第四点的命令,而又想知道,自己的系统应该选择哪个版本来安装,我们可以到其仓库中找到我们版本所对应的Git,其地址如下:

由于我的是CentOS-6,所以最新的就是gitk-1.7.12.4-1.el6.rfx.i686.rpm了。

其命令如下:

[plain] view plain copy

 print?在CODE上查看代码片派生到我的代码片

  1. # yum –enablerepo=rpmforge-extras install gitk-1.7.12.4-1.el6.rfx.i686.rpm  
六、版本检查
至此,我们的Git已经升级好了,旧的Git会被新的覆盖,我们可以通过如下命令来查看,git的版本:

[plain] view plain copy

 print?在CODE上查看代码片派生到我的代码片

  1. # git –version  

[cpp] view plain copy

 print?在CODE上查看代码片派生到我的代码片

  1. # rpm -q git  

CentOS如何升级 Subversion (SVN) 1.8.15

感谢WANdisco,是维持最新的颠覆版的RPM包。这篇文章将帮助您安装Subversion(SVN)1.8.15 CentOS / RHEL 7 / 6 / 5系统。如果要配置颠覆服务器访问本文。

Thanks to Wandisco, which is maintaining the rpm packages for latest Subversion version. This article will help you to Install Subversion 1.8.15 ( SVN Client ) on CentOS/RHEL 7/6/5 Systems. If you want to configure Subversion server visit this article.

Step 1: Setup Yum Repository

首先,我们需要在我们的系统中配置yum仓库。创建一个新的回购文件/ etc / yum.repos.d/wandisco-svn.repo并添加以下内容按你的操作系统版本。

Firstly we need to configure yum repository in our system. Create a new repo file/etc/yum.repos.d/wandisco-svn.repo and add following content as per your operating system version.

[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.8/RPMS/$basearch/
enabled=1
gpgcheck=0

Step 2: Install Subversion Package

Before installing latest package remove existing subversion packages from system to remove conflict.

在安装最新方案之前,从系统中删除现有的颠覆软件,以消除冲突。

# yum remove subversion*

Now install latest available Subversion package using yum command line package manager utility.现在安装新的颠覆包使用yum命令行软件包管理器。

# yum clean all
# yum install subversion

Step 3: Verify Subversion Version

At this stage you have successfully install Subversion client on your system. Lets use following command to verify version of svn client.在这个阶段,您已经成功地安装了系统的颠覆客户端。让我们用以下命令来验证SVN客户端版本。

# svn --version


svn, version 1.8.15 (r1718365)
   compiled Dec 11 2015, 14:28:48 on x86_64-redhat-linux-gnu

Copyright (C) 2015 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository access (RA) modules are available:

* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - using serf 1.3.7
  - handles 'http' scheme
  - handles 'https' scheme

References: 
1. http://opensource.wandisco.com/

在Linux CentOS 6.6上升级Python 2.7.9

CentOS 6.6自带的是Python 2.6.6,而编译llvm需要Python 2.7以上,必须升级Python 

checking for python... /usr/bin/python
checking for python >= 2.7... not found
configure: error: found python 2.6.6 (/usr/bin/python); required >= 2.7

yum中最新的也是Python 2.6.6,只能下载Python 2.7.9的源代码自己编译安装。

操作步骤如下:

1)安装devtoolset

yum groupinstall "Development tools"

2)安装编译Python需要的包包

yum install zlib-devel
yum install bzip2-devel
yum install openssl-devel
yum install ncurses-devel
yum install sqlite-devel

3)下载并解压Python 2.7.9的源代码

cd /opt
wget --no-check-certificate https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz
tar xf Python-2.7.9.tar.xz
cd Python-2.7.9

4)编译与安装Python 2.7.9

./configure --prefix=/usr/local
make && make altinstall

5)将python命令指向Python 2.7.9

ln -s /usr/local/bin/python2.7 /usr/local/bin/python

6)检查Python版本

sh
sh-4.1# python -V
Python 2.7.9