在 Linux 中怎样将 MySQL 迁移到 MariaDB 上

自从甲骨文收购 MySQL 后,由于甲骨文对 MySQL 的开发和维护更多倾向于闭门的立场,很多 MySQL 的开发者和用户放弃了 MySQL。在社区驱动下,促使更多人移到 MySQL 的另一个叫 MariaDB 的分支。在原有 MySQL 开发人员的带领下,MariaDB 的开发遵循开源的理念,并确保它的二进制格式与 MySQL 兼容。Linux 发行版如 Red Hat 家族(Fedora,CentOS,RHEL),Ubuntu 和 Mint,openSUSE 和 Debian 已经开始使用,并支持 MariaDB 作为 MySQL 的直接替换品。

在 Linux 中怎样将 MySQL 迁移到 MariaDB 上
在 Linux 中怎样将 MySQL 迁移到 MariaDB 上

如果你想要将 MySQL 中的数据库迁移到 MariaDB 中,这篇文章就是你所期待的。幸运的是,由于他们的二进制兼容性,MySQL-to-MariaDB 迁移过程是非常简单的。如果你按照下面的步骤,将 MySQL 迁移到 MariaDB 会是无痛的。

准备 MySQL 数据库和表

出于演示的目的,我们在做迁移之前在数据库中创建一个测试的 MySQL 数据库和表。如果你在 MySQL 中已经有了要迁移到 MariaDB 的数据库,跳过此步骤。否则,按以下步骤操作。

在终端输入 root 密码登录到 MySQL 。

$ mysql -u root -p

创建一个数据库和表。

mysql> create database test01;
mysql> use test01;
mysql> create table pet(name varchar(30), owner varchar(30), species varchar(20), sex char(1));

在表中添加一些数据。

mysql> insert into pet values('brandon','Jack','puddle','m'),('dixie','Danny','chihuahua','f');

退出 MySQL 数据库.

备份 MySQL 数据库

下一步是备份现有的 MySQL 数据库。使用下面的 mysqldump 命令导出现有的数据库到文件中。运行此命令之前,请确保你的 MySQL 服务器上启用了二进制日志。如果你不知道如何启用二进制日志,请参阅结尾的教程说明。

$ mysqldump --all-databases --user=root --password --master-data > backupdb.sql
在 Linux 中怎样将 MySQL 迁移到 MariaDB 上
在 Linux 中怎样将 MySQL 迁移到 MariaDB 上

现在,在卸载 MySQL 之前先在系统上备份 my.cnf 文件。此步是可选的。

$ sudo cp /etc/mysql/my.cnf /opt/my.cnf.bak

卸载 MySQL

首先,停止 MySQL 服务。

$ sudo service mysql stop

或者:

$ sudo systemctl stop mysql

或:

$ sudo /etc/init.d/mysql stop

然后继续下一步,使用以下命令移除 MySQL 和配置文件。

在基于 RPM 的系统上 (例如, CentOS, Fedora 或 RHEL):

$ sudo yum remove mysql* mysql-server mysql-devel mysql-libs
$ sudo rm -rf /var/lib/mysql

在基于 Debian 的系统上(例如, Debian, Ubuntu 或 Mint):

$ sudo apt-get remove mysql-server mysql-client mysql-common
$ sudo apt-get autoremove
$ sudo apt-get autoclean
$ sudo deluser mysql
$ sudo rm -rf /var/lib/mysql

安装 MariaDB

在 CentOS/RHEL 7和Ubuntu(14.04或更高版本)上,最新的 MariaDB 已经包含在其官方源。在 Fedora 上,自19 版本后 MariaDB 已经替代了 MySQL。如果你使用的是旧版本或 LTS 类型如 Ubuntu 13.10 或更早的,你仍然可以通过添加其官方仓库来安装 MariaDB。

MariaDB 网站 提供了一个在线工具帮助你依据你的 Linux 发行版中来添加 MariaDB 的官方仓库。此工具为 openSUSE, Arch Linux, Mageia, Fedora, CentOS, RedHat, Mint, Ubuntu, 和 Debian 提供了 MariaDB 的官方仓库.

在 Linux 中怎样将 MySQL 迁移到 MariaDB 上
在 Linux 中怎样将 MySQL 迁移到 MariaDB 上

下面例子中,我们使用 Ubuntu 14.04 发行版和 CentOS 7 配置 MariaDB 库。

Ubuntu 14.04

$ sudo apt-get install software-properties-common
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
$ sudo add-apt-repository 'deb http://mirror.mephi.ru/mariadb/repo/5.5/ubuntu trusty main'
$ sudo apt-get update
$ sudo apt-get install mariadb-server

CentOS 7

以下为 MariaDB 创建一个自定义的 yum 仓库文件。

$ sudo vi /etc/yum.repos.d/MariaDB.repo

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

$ sudo yum install MariaDB-server MariaDB-client

安装了所有必要的软件包后,你可能会被要求为 MariaDB 的 root 用户创建一个新密码。设置 root 的密码后,别忘了恢复备份的 my.cnf 文件。

$ sudo cp /opt/my.cnf /etc/mysql/

现在启动 MariaDB 服务。

$ sudo service mariadb start

或:

$ sudo systemctl start mariadb

或:

$ sudo /etc/init.d/mariadb start

导入 MySQL 的数据库

最后,我们将以前导出的数据库导入到 MariaDB 服务器中。

$ mysql -u root -p < backupdb.sql

输入你 MariaDB 的 root 密码,数据库导入过程将开始。导入过程完成后,将返回到命令提示符下。

要检查导入过程是否完全成功,请登录到 MariaDB 服务器,并查看一些样本来检查。

$ mysql -u root -p

MariaDB [(none)]> show databases;
MariaDB [(none)]> use test01;
MariaDB [test01]> select * from pet;
在 Linux 中怎样将 MySQL 迁移到 MariaDB 上
在 Linux 中怎样将 MySQL 迁移到 MariaDB 上

结论

如你在本教程中看到的,MySQL-to-MariaDB 的迁移并不难。你应该知道,MariaDB 相比 MySQL 有很多新的功能。至于配置方面,在我的测试情况下,我只是将我旧的 MySQL 配置文件(my.cnf)作为 MariaDB 的配置文件,导入过程完全没有出现任何问题。对于配置文件,我建议你在迁移之前请仔细阅读 MariaDB 配置选项的文件,特别是如果你正在使用 MySQL 的特定配置。

如果你正在运行有海量的表、包括群集或主从复制的数据库的复杂配置,看一看 Mozilla IT 和 Operations 团队的 更详细的指南 ,或者 官方的 MariaDB 文档

故障排除

1、 在运行 mysqldump 命令备份数据库时出现以下错误。

$ mysqldump --all-databases --user=root --password --master-data > backupdb.sql

mysqldump: Error: Binlogging on server not active

通过使用 "--master-data",你可以在导出的输出中包含二进制日志信息,这对于数据库的复制和恢复是有用的。但是,二进制日志未在 MySQL 服务器启用。要解决这个错误,修改 my.cnf 文件,并在 [mysqld] 部分添加下面的选项。(LCTT 译注:事实上,如果你并没有启用二进制日志,那取消"--master-data"即可。)

log-bin=mysql-bin

保存 my.cnf 文件,并重新启动 MySQL 服务:

$ sudo service mysql restart

或者:

$ sudo systemctl restart mysql

或:

$ sudo /etc/init.d/mysql restart

via: http://xmodulo.com/migrate-mysql-to-mariadb-linux.html

作者:Kristophorus Hadiono 译者:strugglingyouth 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Linux mkdir、tar 和 kill 命令的 4 个有用小技巧

我们一直以常规的方式完成一个任务,直到我们知道有更好的处理方法。作为 Linux 技巧和绝招系列 的后续,我会在这里介绍能在各个方面给你帮助的 4 个小技巧。开始吧!

Linux mkdir、tar 和 kill 命令的 4 个有用小技巧
Linux mkdir、tar 和 kill 命令的 4 个有用小技巧

4 个有用的 Linux 小技巧

1. 假设你要创建一个类似于下面很长的/复杂的目录树。实现这最有效的方法是什么呢?

类似下面要实现的目录树结构。

$ cd /home/$USER/Desktop
$ mkdir tecmint
$ mkdir tecmint/etc
$ mkdir tecmint/lib
$ mkdir tecmint/usr
$ mkdir tecmint/bin
$ mkdir tecmint/tmp
$ mkdir tecmint/opt
$ mkdir tecmint/var
$ mkdir tecmint/etc/x1
$ mkdir tecmint/usr/x2
$ mkdir tecmint/usr/x3
$ mkdir tecmint/tmp/Y1
$ mkdir tecmint/tmp/Y2
$ mkdir tecmint/tmp/Y3
$ mkdir tecmint/tmp/Y3/z

上述情况可以简单地通过运行下面一行命令来实现。

$ mkdir -p /home/$USER/Desktop/tecmint/{etc/x1,lib,usr/{x2,x3},bin,tmp/{Y1,Y2,Y3/z},opt,var}

你可以用 tree 命令验证。如果没有安装你可以使用 apt 或 yum 安装 ‘tree’ 软件包。

$ tree tecmint
Linux mkdir、tar 和 kill 命令的 4 个有用小技巧
Linux mkdir、tar 和 kill 命令的 4 个有用小技巧

检查目录结构

我们可以用上面的方式创建任意复杂的目录树结构。注意这仅仅是一个普通的命令,但是用 ‘{}’ 来创建层级目录。需要的时候如果在 shell 脚本中使用是非常有用的。

2. 在桌面(/home/$USER/Desktop)创建一个文件(例如 test)并填入以下内容。

ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
Y
Z

这种情况一个普通用户会怎么做呢?

a. 他首先会创建文件,最好使用 touch 命令,例如:

$ touch /home/$USER/Desktop/test

b. 他会用一个文本编辑器打开文件,这可能是 nano、vim 或其它编辑器。

$ nano /home/$USER/Desktop/test

c. 然后他会将上面的内容输入到文件中,保存并退出。

忽略他/她使用的时间,他至少需要 3 步来执行上面的情况。

一个经验丰富的 Linux 用户会怎么做呢?他会在终端中输入下面的文本然后就完成所有任务。他不需要单独执行每一步。

cat << EOF > /home/$USER/Desktop/test
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
Y
Z
EOF

你可以用 ‘cat’ 命令检查是否成功创建了文件和内容。

$ cat /home/avi/Desktop/test
Linux mkdir、tar 和 kill 命令的 4 个有用小技巧
Linux mkdir、tar 和 kill 命令的 4 个有用小技巧

3. 我们经常在 Linux 中处理归档文件(尤其是 TAR 包)。很多情况下我们会在某些位置,而不是在 Downloads 目录中使用 TAR 包。这种情况下我们怎么做呢?

在这种情况下我们通常会做两件事。

a. 复制/移动 tar 包到目标位置并解压,例如:

$ cp firefox-37.0.2.tar.bz2 /opt/
或
$ mv firefox-37.0.2.tar.bz2 /opt/

b. cd 到 /opt/ 目录。

$ cd /opt/

c. 解压 tar 包。

# tar -jxvf firefox-37.0.2.tar.bz2

我们也可以采用另外一种方式。

我们也可以在 Tar 包所在位置解压并复制/移动解压后的文件到所需的目标位置,例如:

$ tar -jxvf firefox-37.0.2.tar.bz2
$ cp -R firefox/  /opt/
或
$ mv firefox/ /opt/

不管哪种方式都需要两步才能完成任务。专业的人可以只用一步就完成这个任务:

$ tar -jxvf firefox-37.0.2.tar.bz2 -C /opt/

-C 选项提取文件到指定目录(这里是 /opt/)。

这并不是关于选项(-C)的问题,而是习惯的问题。养成使用带 -C 选项 tar 命令的习惯。这会使你的工作更加轻松。从现在开始不要再移动归档文件或复制/移动解压后的文件了,在 Downloads 文件夹保存 tar 包并解压到你想要的任何地方吧。

4. 常规方式我们怎样杀掉一个进程?

最普遍的方法,我们首先用 ps -A 命令列出所有进程,然后通过管道输入到 grep 来查找进程/服务(假如 apache2),如下:

$ ps -A | grep -i apache2

输出样例

 1006 ?        00:00:00 apache2
 2702 ?        00:00:00 apache2
 2703 ?        00:00:00 apache2
 2704 ?        00:00:00 apache2
 2705 ?        00:00:00 apache2
 2706 ?        00:00:00 apache2
 2707 ?        00:00:00 apache2

上面的输出显示了所有正在运行 apache2 的进程以及它们的 PID,然后你可以使用这些 PID 在下面命令的帮助下杀掉 apache2。

# kill 1006 2702 2703 2704 2705 2706 2707

然后交叉检查是否还有名称中包含 ‘apache2’ 的进程/服务在运行,如下:

$ ps -A | grep -i apache2

实际上我们可以使用类似 pgrep 和 pkill 的工具以一种更容易理解的方式实现。你可以使用 pgrep 找到和一个进程相关的信息。假如你要找和 apache2 相关的进程信息,你只需要运行:

$ pgrep apache2

输出样例

15396
15400
15401
15402
15403
15404
15405

你也可以通过运行下面命令列出进程名称以及 pid。

$ pgrep -l apache2

输出样例

15396 apache2
15400 apache2
15401 apache2
15402 apache2
15403 apache2
15404 apache2
15405 apache2

用 pkill 杀掉进程非常简单。你只需要输入想要杀死的资源名称。我写了一篇关于 pkill 的博文,你可以参考: http://www.tecmint.com/how-to-kill-a-process-in-linux/

用 pkill 杀死一个进程(例如 apache2),你只需要输入以下命令:

# pkill apache2

你可以通过运行下面命令验证是否杀掉了 apache2。

$ pgrep -l apache2

它没有输出任何东西并返回到窗口意味着没有名称中包含 apache2 的进程在运行。

这就是我要说的所有东西。上面讨论的点肯定远远不够,但也肯定对你有所帮助。我们不仅仅是介绍教程使你学到一些新的东西,更重要的是想告诉你 ‘在同样的情况下如何变得更有效率’。在下面的评论框中告诉我们你的反馈吧。保持联系,继续评论。


via: http://www.tecmint.com/mkdir-tar-and-kill-commands-in-linux/

作者:Avishek Kumar 译者:ictlyh 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-5863-1.html

Linux:MariaDB Galera Cluster 部署

MariaDB作为Mysql的一个分支,在开源项目中已经广泛使用,例如大热的openstack,所以,为了保证服务的高可用性,同时提高系统的负载能力,集群部署是必不可少的。

MariaDB Galera Cluster 介绍

MariaDB Galera Cluster 是开源的 MariaDB同步多主机集群。它仅支持XtraDB/ InnoDB存储引擎(虽然有对MyISAM实验支持 – 看wsrep_replicate_myisam系统变量)。

Linux:MariaDB Galera Cluster 部署
Linux:MariaDB Galera Cluster 部署

主要功能:

  • 同步复制
  • 真正的multi-master,即所有节点可以同时读写数据库
  • 自动的节点成员控制,失效节点自动被清除
  • 新节点加入数据自动复制
  • 真正的并行复制,行级
  • 用户可以直接连接集群,使用感受上与MySQL完全一致

优势:

  • 因为是多主,所以不存在Slavelag(延迟)
  • 不存在丢失事务的情况
  • 同时具有读和写的扩展能力
  • 更小的客户端延迟
  • 节点间数据是同步的,而Master/Slave模式是异步的,不同slave上的binlog可能是不同的

技术:

Galera集群的复制功能基于Galeralibrary实现,为了让MySQL与Galera library通讯,特别针对MySQL开发了wsrep API。

Galera插件保证集群同步数据,保持数据的一致性,靠的就是可认证的复制,工作原理如下图: 

Linux:MariaDB Galera Cluster 部署
Linux:MariaDB Galera Cluster 部署

当客户端发出一个commit的指令,在事务被提交之前,所有对数据库的更改都会被 

1
write-set

 收集起来,并且将

1
write-set

 纪录的内容发送给其他节点。

1
write-set

 将在每个节点进行认证测试,测试结果决定着节点是否应用

1
write-set

更改数据。

如果认证测试失败,节点将丢弃 

1
write-set

 ;如果认证测试成功,则事务提交。

1 安装环境准备

安装MariaDB集群至少需要3台服务器(如果只有两台的话需要特殊配置,请参照官方文档

在这里,我列出试验机器的配置:

操作系统版本:centos7

  • node4:10.128.20.16
  • node5:10.128.20.17
  • node6:10.128.20.18

以第一行为例,node4为 

1
hostname

 ,10.128.20.16为 

1
ip

 ,在三台机器修改 

1
/etc/hosts

 文件,我的文件如下:

10.128.20.16 node4
10.128.20.17 node5
10.128.20.18 node6

为了保证节点间相互通信,需要禁用防火墙设置(如果需要防火墙,则参照官方网站增加防火墙信息设置)

在三个节点分别执行命令:

systemctl stop firewalld

然后将 

1
/etc/sysconfig/selinux

 的 

1
selinux

 设置成 

1
disabled

 ,这样初始化环境就完成了。

2 安装 MariaDB Galera Cluster

[root@node4 ~]# yum install -y mariadb mariadb-galera-server mariadb-galera-common galera rsync
[root@node5 ~]# yum install -y mariadb mariadb-galera-server mariadb-galera-common galera rsync
[root@node6 ~]# yum install -y mariadb mariadb-galera-server mariadb-galera-common galera rsync

3 配置 MariaDB Galera Cluster

初始化数据库服务,只在一个节点进行

[root@node4 mariadb]# systemctl start mariadb
[root@node4 mariadb]# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n]
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] n
 ... skipping.

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] n
 ... skipping.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

关闭数据库,修改 

1
/etc/my.cnf.d/galera.cnf

[root@node4 mariadb]# systemctl stop mariadb
[root@node4 ~]# vim /etc/my.cnf.d/galera.cnf

修改以下内容:

[mysqld]
......
wsrep_provider = /usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address = "gcomm://node4,node5,node6"
wsrep_node_name = node4
wsrep_node_address=10.128.20.16
#wsrep_provider_options="socket.ssl_key=/etc/pki/galera/galera.key; socket.ssl_cert=/etc/pki/galera/galera.crt;"

提示:如果不用ssl的方式认证的话,请把 

1
wsrep_provider_options

 注释掉。

将此文件复制到node5、node6,注意要把 

1
wsrep_node_name

 和 

1
wsrep_node_address

 改成相应节点的

1
hostname

 和 

1
ip

4 启动 MariaDB Galera Cluster 服务

[root@node4 ~]# /usr/libexec/mysqld --wsrep-new-cluster --user=root &

观察日志:

[root@node4 ~]# tail -f /var/log/mariadb/mariadb.log

150701 19:54:17 [Note] WSREP: wsrep_load(): loading provider library 'none'
150701 19:54:17 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.5.40-MariaDB-wsrep'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MariaDB Server, wsrep_25.11.r4026

出现 

1
ready for connections

 ,证明我们启动成功,继续启动其他节点:

[root@node5 ~]# systemctl start mariadb
[root@node6 ~]# systemctl start mariadb

可以查看 

1
/var/log/mariadb/mariadb.log

,在日志可以看到节点均加入了集群中。

警告⚠:

1
--wsrep-new-cluster

 这个参数只能在初始化集群使用,且只能在一个节点使用。

5 查看集群状态

Linux:MariaDB Galera Cluster 部署
Linux:MariaDB Galera Cluster 部署

我们可以关注几个关键的参数:

1
wsrep_connected = on

 链接已开启

1
wsrep_local_index = 1

 在集群中的索引值

1
wsrep_cluster_size =3

 集群中节点的数量

1
wsrep_incoming_addresses = 10.128.20.17:3306,10.128.20.16:3306,10.128.20.18:3306

 集群中节点的访问地址

6 验证数据同步

我们在 

1
node4

 上新建数据库 

1
galera_test

 ,然后在 

1
node5

 和 

1
node6

 上查询,如果可以查询到 

1
galera_test

 这个库,说明数据同步成功,集群运行正常。

[root@node4 ~]# mysql  -uroot  -proot  -e  "create database galera_test"
[root@node5 ~]# mysql  -uroot  -proot  -e  "show databases"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| galera_test        |
| mysql              |
| performance_schema |
+--------------------+
[root@node6 ~]# mysql  -uroot  -proot  -e  "show databases"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| galera_test        |
| mysql              |
| performance_schema |
+--------------------+

至此,我们的 MariaDB Galera Cluster 已经成功部署。

参考文章

来源:http://code.oneapm.com/database/2015/07/02/mariadb-galera-cluster/

Linux:RHEL/CentOS系统的社区维护资源整合

Linux各个发行版的技术上虽然有差别,但一般不至于有很大鸿沟,实际上更复杂的其实是各个发行版的维护社区的工作方式和交流文化的差别,如果不了解去利用相应的社区资源,就会觉得维护这个发行版异常吃力,从而产生“XXX发行版不好用”的错觉。

因为工作原因最近我接触维护的系统多为CentOS,之前对CentOS的印象都是“又古老又难维护”,不过几个月的积累下来,发现RH系的社区资源并不比Debian/Ubuntu的少,只不过是国内的维护文化和他们的相去甚远,几乎无法兼容,以致很多人都缺乏了解,所以觉得需要撰文列举下这些资源。

以下很多第三方仓库都在Centos Wiki有介绍

仓库列表

维护仓库的通常是一群维护者,有个论坛、邮件列表等,有什么需求,或者有什么BUG,可以直接去和维护者沟通。下面都是列出了主页的一些仓库,留意主页的链接可以找到交流方法了。

官方仓库

默认安装的CentOS的yum,/etc/yum.repos.d/CentOS-Base.repo是基本的源仓库;里面各个仓库名下mirrorlist是官方列表,yum的fastestmirror插件会从其中选择一个来更新;而如果注释了mirrorlist写baseurl,就只从这一个仓库更新了。可以参考163源的CentOS5-Base-163.repo

这些是CentOS/RedHat官方维护的,就是那些“老旧过时”而且“几乎什么都没”,只要不是出现严重漏洞都不会更新那些。

FedoraProject for EPEL

Fedora和Redhat的关系就不详述了,就是FedoraProject里有个“EPEL Special Interest Group”,为EPEL系维护的一个社区仓库,基本上加上这个仓库后就能丰富了整个EPEL生态了,在Debian系里面“理所当然源里就有”的那些软件就会有了,比如openvpn,htop,ipcalc,git … 虽然版本不会很新,但起码能用了。

用法:安装这些链接页面里面的.rpm。

RPM Fusion

这个仓库说提供的是FedoraProject跟RedHat都不想提供的程序,提供的分类就知道怎么回事了,基本都是Sound and Video,Games and Entertainment,Hardware Support等等。首先是Linux平台下多媒体支持方面的版权问题非常复杂,ffmpeg/x264等通常都有一些争议行的授权,当然也有nvidia/ati等硬件的闭源驱动、Oracle的闭源版Virtualbox等,把他们独立出来避免争端。

另外这个仓库基本提供的更新都是for Fedora,EPEL5/6的几乎没更新。可以说RPMFusion是个“桌面仓库”,而且国内163源提供了RPMFusion的镜像

用法: 见Configuration

RepoForge

原叫RPMForge,和CentOS社区较紧密,提供的包也比较海量的,很难评价分什么方向,CentOS Wiki专门有页面提供安装指导,因为包的数量太海量了很难和“FedoraProject for EPEL”做比较。

用法: 见Usage

Remi

这个仓库依赖EPEL。

提供了php54 / mysql55 / firefox 等等的更新,选的软件比较符合Web开发者工作的需要,当然服务器最好也是维护相同版本。这个仓库使用了github来管理软件包的spec,可以直接看他提供了什么包。更新非常紧贴各个软件的官方发布。

用法: 安装主页相应的remi-release-XX.rpm

KBS-Extras

CentOS本来的维护团队,有趣的一点是这仓库基本全在-testing里面提供软件包。

FedoraHosted – SoftwareCollections

这是重点推荐的。这不是一个仓库,是很多个。里面的软件包和上述那些仓库不大一样,都是在/opt下建立一套专用的目录,避免在/usr里面打架的软件包;这里提供了php/python/ruby/perl/mysql/postgre/apache等常用“服务器生态”。

用法:各个Collection的repo链接。

FedoraHosted

上述的只是FedoraHosted内一个子仓库,FedoraHosted是类似Ubuntu的PPA社区的环境,维护者可以通过建立自己的帐号然后建立一些自选软件的仓库。里面应该还有很多有用的东西待发掘。

Fedora People Repositories

一样是类似Ubuntu的PPA,不过这里就多数偏向Fedora的更新,也有些有EPEL6。

Pramberger, pp

这个仓库主要提供EPEL 3/4/5等旧版本的一些包的更新,有php,python的第三方模块、qt、squid等的更新,大概还是偏向更新服务器环境的吧。

用法:保存http://devel.pramberger.at/getrepo?release=到/etc/yum.repos.d,注意替换release参数(3|4|5)。

ELRepo

偏内核的新硬件支持模块。

IUS Community Repo

提供PHP, Python, MySQL更新,不过感觉更新不够Remi紧密。

PS.维护技巧

yum的仓库选择

/etc/yum.repos.d/下的文件记录着各个仓库的信息,上述很多仓库在安装之后会在这里生成一个.repo,但里面的仓库不一定被启用了,里面可能写了enabled=0。

一般来说,为了避免系统升级时候和第三方的包出现冲突,第三方的仓库都应该enabled=0,在需要使用、查找其中软件时候,使用yum的参数:

yum –enablerepo=remi install firefox-langpack-fr

下载SRPM

一定需要定制编译特定软件时候,这些仓库都提供SRPM仓库的,但是默认可能没开启。(yumdownloader需要安装yum-utils)

yumdownloader –enablerepo=epel-source –source php

Yum/Rpm常用命令

Rpm/dpkg、yum/apt-get对照

http://www.pixelbeat.org/docs/packaging.html 

via http://os.51cto.com/art/201306/400424.htm 

Linux:Fedora 18 在线升级至 Fedora 19 命令步骤

1.指定 yum 源,利用自带的升级工具升级。国内情况的话,建议使用 163 的源,稳定速度快。

fedup-cli –network 19 –debuglog fedupdebug.log –instrepo=http://mirrors.163.com/fedora/releases/19/Fedora/x86_64/os/

2.下载完更新包后,会提示重启,reboot 重启

3.重启后系统开始更新,按 ESC 查看更新具体过程

4.更新完进入系统清理引导和垃圾数据

fedup –resetbootloaderfedup –clean

5.更新到最新数据包

yum clean allyum distro-sync

6.清理旧的内核

package-cleanup –oldkernel –count 1

7.重装 grub2 引导程序

yum reinstall greub2*grub2-mkconfig -o /boot/grub2/grub.cfg

8.重启。升级完成。

 已同步至 linux的微博

Linux:跨越终端中多个vim实例访问剪切板内容

Vim (Vi IMproved)是一款在程序员之间非常受欢迎的文本编辑器。它在执行不同的快捷命令操作上有它自己的特长。

Linux:跨越终端中多个vim实例访问剪切板内容
Linux:跨越终端中多个vim实例访问剪切板内容

比如,要拷贝高亮的文本,我们使用‘y’命令,并用‘x’来剪切。但是,vim(不是gVim)剪切板的内容默认情况下是不能被其他的vim实例访问的。

Vim版本信息中使用‘+’表示启用了系统剪切板。你可以运行‘vim ­­–version’,如果你看不到像“+xterm_clipboard”而是显示“­xterm_clipboard“,那么会使用内部剪切板,其将不能被其它的vim实例访问。

安装gvim和parcellite

为了访问vim剪切板的内容,你需要安装gvim包。gVim是vim编辑器的GUI模式,它的剪切板选项默认启用。

# yum install -y gvim

然后,使用RPMForge 仓库安装parcellite 包。Parcellite是一款轻量级,小巧而免费的Linux剪切板管理工具。

# yum install -y parcellite

一旦安装后,运行下面的命令。这里的参数‘&’是使parcellite以后台进程运行。

# parcellite &

检查选项已经在gvim中启用。

# gvim --version

确保“+xterm_clipboard”选项显示在下面的输出中。

VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Apr  5 2012 10:12:08)
Included patches: 1-411
Modified by 
Compiled by 
Huge version with GTK2 GUI.  Features included (+) or not (-):
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+cryptv +cscope +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic
+emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path
+float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand
+jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap
+menu +mksession +modify_fname +mouse +mouseshape +mouse_dec +mouse_gpm
-mouse_jsbterm +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte
+multi_lang -mzscheme +netbeans_intg -osfiletype +path_extra +perl +postscript
+printer +profile +python +quickfix +reltime +rightleft -ruby +scrollbind
+signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax
+tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse
+textobjects +title +toolbar +user_commands +vertsplit +virtualedit +visual
+visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup
+X11 -xfontset +xim +xsmp_interact +xterm_clipboard -xterm_save

打开用户的.bashrc文件。

# vim ~/.bashrc

加入别名并保存文件(按下‘i’来插入行并按下ESC,接着运行:wq来保存并退出)。

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias vim='gvim -v'
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

这个alias是内置的用于将一些命令绕到其他命令上。这样每次当vim命令运行时,相应的别名会启动默认带剪切板的gVim。

现在,用类似的方式编辑你的‘.vimrc’文件(以防你没有 .vimrc文件,生成这样一个文件然后再回来)。

# vim ~/.vimrc

追加下面这行并保存文件。

autocmd VimLeave * call system("echo -n $'" . escape(getreg(), "'") . "' | xsel -ib")

现在在vim中打开任何文件并高亮部分文本(使用’v’命令)并按下’y’。尝试在vim外面的任何地方粘帖(关不关vim都行),你就发现vim里面复制的内容被粘帖出来了。

附:生成 .vimrc 文件

运行下面的命令来生成.vimrc文件(如果你已做了就跳过这部分)。

# cd   [返回到你的主目录]
# vim .vimrc

在vim中在按下ESC键后运行下面的命令(在vim中,每个命令是在按下ESC键后也就是带你进入命令模式后运行的)。

:r $VIMRUNTIME/vimrc_example.vim
:w

via: http://www.tecmint.com/accessing-clipboard-contents-across-multiple-instances-of-vim-from-terminal/

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-2751-1.html

Linux:rhel源更换为centos源

Linux:rhel源更换为centos源
Linux:rhel源更换为centos源

1 删除rhel自带的yum包:

rpm -aq | grep yum |xargs rpm -e --nodeps

2 安装yum:

[china~/yum_64#]rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
warning:python-iniparse-0.3.1-2.1.el6.noarch.rpm: Header V3 RSA/SHA256 Signature, keyID c105b9de: NOKEY
Preparing...               ########################################### [100%]
packagepython-iniparse-0.3.1-2.1.el6.noarch is already installed
[china~/yum_64#]rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
warning:yum-metadata-parser-1.1.2-16.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, keyID c105b9de: NOKEY
Preparing...               ########################################### [100%]
   1:yum-metadata-parser    ###########################################[100%]
[china~/yum_64#]rpm -ivh yum-3.2.29-40.el6.centos.noarch.rpmyum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm
warning:yum-3.2.29-40.el6.centos.noarch.rpm: Header V3 RSA/SHA1 Signature, key IDc105b9de: NOKEY
Preparing...               ########################################### [100%]
  1:yum-plugin-fastestmirro########################################### [50%]
  2:yum                   ########################################### [100%]
[ichina~/yum_64#]

若提示需要依赖

libc.so.6 is neededby yum-metadata-parser-1.1.2-16.el6.i686
libc.so.6(GLIBC_2.0)is needed by yum-metadata-parser-1.1.2-16.el6.i686
libc.so.6(GLIBC_2.1.3)is needed by yum-metadata-parser-1.1.2-16.el6.i686
libglib-2.0.so.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686
libpthread.so.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686
libpython2.6.so.1.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686
libsqlite3.so.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686
libxml2.so.2 is needed by yum-metadata-parser-1.1.2-16.el6.i686
libxml2.so.2(LIBXML2_2.4.30) is needed by yum-metadata-parser-1.1.2-16.el6.i686

安装: glibc-2.12-1.107.el6.x86_64.rpm http://pkgs.org/centos-6/centos-x86_64/glibc-2.12-1.132.el6.x86_64.rpm.html

3 添加网易163的yum源

获取文件:CentOS6-Base-163.repo

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
cp CentOS-Base-163.repo rhel-source.repo
sed -i 's/$releasever/6/g' rhel-source.repo

4 清空 yum 缓存

yum clean all

5 将服务器上的软件包信息缓存到本地

提高yum的更新效率

yum makecache

所需要的rpm打包地址: http://pan.baidu.com/s/1hquYZ1i 

 

Linux:实用的Linux SHELL面试问题及答案

随着之前有关面试的系列文章,读者的反应比较强烈,所以我决定出一篇有关Linux Shell相关的面试文章,如果对本文有什么意见或意见的话,欢迎反馈到我的邮箱里。

如果想要阅读已发表在Tecmint.com的文章,可以点击链接,链接到访谈系列,在这里我们已经介绍很多题目即文章。,FTP,MySQL和Apache的,脚本,Linux命令等。

Linux:实用的Linux SHELL面试问题及答案
Linux:实用的Linux SHELL面试问题及答案

实用的shell脚本面试问题

这边提到的5个面试问题,延续之前的有关Linux面试问题和答案。如果你是Tecmint.com的读者,你的支持我非常感谢。

1. 写一个shell脚本来得到当前的日期,时间,用户名和当前工作目录。

答案 : 输出用户名,当前日期和时间,以及当前工作目录的命令就是logname,date,who i am和pwd。

现在,创建一个名为userstats.sh文件,将下面的代码添加到它。

#!/bin/bash
echo "Hello, $LOGNAME"
echo "Current date is `date`"
echo "User is `who i am`"
echo "Current directory `pwd`"

给它添加执行权限,并且执行他。

# chmod 755 userstats.sh
# ./userstats.sh

样例输出

Hello, avi
Current date is Sat Jun  7 13:05:29 IST 2014
User is avi      pts/0        2014-06-07 11:59 (:0)
Current directory /home/avi/Desktop

2.写一个shell脚本,进行两个数字的相加,如果没有输入参数就输出错误信息和一行使用说明

答案 : 下面是简单的shell脚本以及描述,如果没有命令行参数,它会抛出错误与如何使用脚本的说明。

再创建一个名为twonumbers.sh文件和下面的内容添加到文件里。

#!/bin/bash
# The Shebang

if [ $# -ne 2 ]
# If two Inputs are not received from Standard Input

then
# then execute the below statements

    echo "Usage - $0   x    y"
    # print on standard output, how-to use the script (Usage - ./1.sh   x    y )

    echo "        Where x and y are two nos for which I will print sum"
    # print on standard output, “Where x and y are two nos for which I will print sum ”

    exit 1
    # Leave shell in Error Stage and before the task was successfully carried out.

fi
# End of the if Statement.

    echo "Sum of $1 and $2 is `expr $1 + $2`"
    # If the above condition was false and user Entered two numbers as a command Line Argument,
       it will show the sum of the entered numbers.

给他添加可执行权限,并且执行。

# chmod 755 two-numbers.sh

情形一: 未输入两个数字作为命令行参数运行脚本,你将得到下面的输出。

样例输出

# ./two-numbers.sh

Usage - ./two-numbers.sh   x    y
        Where x and y are two nos for which I will print sum

情形二: 当数字存在时,你会得到如图所示的结果。

$ ./two-numbers.sh 4 5

Sum of 4 and 5 is 9

因此,上述shell脚本满足了问题的要求。

3.你需要打印一个给定的数字的反序,如输入10572,输出27501,如果没有输入数据,应该抛出错误和使用脚本说明。在此之前,告诉我你需要在这里使用的算法。

算法

  1. 输入的数字为n
  2. 赋值 rev=0, sd=0 (反向和单个数字设置为0)
  3. n % 10, 将得到最左边的数字
  4. 反向数字可以用这个方法生成 rev * 10 + sd
  5. 对输入数字进行右位移操作(除以10)
  6. 如果n > 0, 进入第三步,否则进行第七步
  7. 输出rev

现在,创建一个名为`numbers.sh`文件,并添加以下代码。

#!/bin/bash
if [ $# -ne 1 ]
then
    echo "Usage: $0   number"
    echo "       I will find reverse of given number"
    echo "       For eg. $0 0123, I will print 3210"
    exit 1
fi

n=$1
rev=0
sd=0

while [ $n -gt 0 ]
do
    sd=`expr $n % 10`
    rev=`expr $rev * 10  + $sd`
    n=`expr $n / 10`
done
    echo  "Reverse number is $rev"

授予对文件的执行权限,并运行如下所示的脚本。

# chmod 755 numbers.h

情形一: 当输入不包含命令行参数,你将得到下面的输出。

样例输出

./numbers.sh

Usage: ./numbers.sh  number
       I will find reverse of given number
       For eg. ./2.sh 123, I will print 321

情形二: 正常输入

$ ./numbers.sh 10572

Reverse number is 27501

上面的脚本非常完美,输出正是我们需要的。

4. 你应该直接用终端,而不是依靠任何shell脚本来进行实数计算。你会怎么做(比如实数7.56+2.453)?

答案 : 我们需要用如下所述的特殊方式使用bc命令。将7.56+2.453作为输入通过管道进入bc中。

$ echo 7.56 + 2.453 | bc

10.013

5. 你需要给出圆周率的值,精度为小数点后100位,什么是最简单的方法。

答案 : 找圆周率的值最简单的方法,我们只是需要发出以下命令。

# pi 100

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067

很明显!安装我们必须有包pi。只用一个aptyum命令,就能获得所需的软件包,同时用最简单方法来实现这个需求。

就是这样。我会很快在Tecmint.com发表另一个有趣的文章。至此敬请关注。别忘了向我们提供您在的评论和反馈。


via: http://www.tecmint.com/practical-interview-questions-on-linux-shell-scripting/

译者:MikeCoder 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3256-1.html

Linux:最新apache+svn+reviewboard实现在线代码评审

本文重点说reviewboard的安装

作用,在线代码评审工具。

—————————————————————————

mysql安装

yum -y install gcc gcc-c++ make cmake autoconf automake ncurses* bison* zlib* expat*
openssl* apr* neon*
yum -y install mysql-server 

 可以选择yum安装mysql 或者编译安装mysql

注,编译安装的mysql,90%运维会装在/usr/local/mysql 下 如果默认安装在/usr/local/mysql下,等装好ReviewBoard生成站点的时候会选择支持使用的数据库的时候没有识别mysql只有sqlite3,此时,如果你数据库不是sqlite3,继续往下执行自动生成的站点访问将会出现bad reqest 400错误。对于编译安装的mysql,解决办法如下 yum安装的mysql命令将在/usr/local/bin/下,不需要软连。

对于编译安装的mysql,解决办法如下 做相应的软连接

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18
ln -s /usr/local/mysql/bin/* /usr/local/bin/

 mysql安装此处不再介绍 编译也好,yum也好,看需求及使用mysql的级别。

—————————————————————————-

Apache和SVN

yum -y install httpd httpd-devel  mod_dav_svn  subversion subversion-devel 

 apache 安装好之后可直接启动

svn 的安装于配置,仓库的创建,用户的管理,权限的配置,网上文档一大堆。

—————————————————————————-

安装reviewboard

reviewboard是由python开发,

1,使用python-setuptools安装

yum -y install python-setuptools
easy_install -U setuptools,

 2,安装python组件

yum -y install python python-devel python版本要2.6以上才可以支持reviewboard

 3、 安装patch

yum -y install patch 

 4、 安装pysvn

wget http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.6.tar.gz
tar zxvf pysvn-1.7.6.tar.gz
cd pysvn-1.7.6/Source
python setup.py backport 验证与python的兼容
python setup.py configure

 make pysvn的编译安装需要subversion-devel的支持,没有装devel报此处报错,yum安装之后将解决。

mkdir /usr/lib64/python2.6/site-packages/pysvn
cp pysvn/__init__.py /usr/lib64/python2.6/site-packages/pysvn
cp pysvn/_pysvn*.so /usr/lib64/python2.6/site-packages/pysvn

 5、 安装mod_wsgi

yum -y install mod_wsgi 

 mod_wsgi 是支持webpy的一个模块

6、 安装mencache

yum -y install memcached
easy_install python-memcached

 reviewboard需要memcxched的支持,之前没打开11211端口,访问很慢。

7、 安装Review Board

easy_install ReviewBoard

 # 如果安装过程中 Django 1.6.5一直因为网络问题安装失败的话,可以手动下载安装 伟大的天朝已经屏蔽的google,此处提供一个openerdns 42.120.21.30 添加到/etc/resolv.cof 里。成功的几率大大提高,以为此dns可以代理到google,https://code.google.com/p/openerdns/ 

wget https://pypi.python.org/packages/source/D/Django/Django-1.6.5.tar.gz#md5=e4c5b2d35ecb3807317713afa70a0c77
cd Django-1.6.5
python setup.py build
python setup.py install

 # 或者使用pip在线安装

pip --default-timeout=2000 install Django==1.6.5

 8、 安装mysql组件

easy_install mysql-python

 创建reviewboard站点

创建reviewboard存放数据的数据库reviewboard并赋予权限和密码

mysql> create database reviewboard default charset utf8 collate utf8_general_ci;
mysql> grant all on reviewboard.* to 'reviewboard'@'localhost' identified by 'reviewboard';
mysql> FLUSH PRIVILEGES; 

 创建reviewboard站点

rb-site install /reviewboard 

 rb-site命令是装reviewboard自动生成的

之后会有一系列类似安装向导的步骤,需要你做出选择,尽量选择默认值吧

     Domain = rb.XXX.com 自己随意,本地做个hosts绑定就行

     Root Path = 回车

     Database Type = mysql

     Database Name = reviewboard

     Database server = 回车

     Database username = 'reviewboard'

     Database password = 'reviewboard'

     Memcache Server = 回车

      Username [admin]: admin

     E-Mail Address = 邮箱自己填

  ok之后需要修改下列文件的属主属组

[root@localhost bin]# chown -R apache /reviewboard/htdocs/media/uploaded
[root@localhost bin]# chown -R apache /reviewboard/htdocs/media/ext
[root@localhost bin]# chown -R apache /reviewboard/htdocs/static/ext
[root@localhost bin]# chown -R apache /reviewboard/data/
cp /reviewboard/conf/apache-wsgi.conf  到/etc/httpd/conf.d/  

 apache为yum安装,编译安装

 自己定位目录。80端口被占用,我使用了8081 修改了下端口,使用80端口将不用任何修改。

重启apache,http://http://rb.xxx.com/ 就可以访问。

Linux:最新apache+svn+reviewboard实现在线代码评审
Linux:最新apache+svn+reviewboard实现在线代码评审

如果出现400错误,就是在创建reviewboard站点出现错误,站点没有生成好,之前就是没有显示mysql选择了sqlite3,也ok了,访问就是显示400错误,以为是apache-wsgi.conf中

 WSGIPassAuthorization On
 WSGIScriptAlias "/" "/reviewboard/htdocs/reviewboard.wsgi/"

 这两行的问题,写了个html,试验了虚拟主机,注释这两行就ok,打开就400, 查了半天的mode_wsgi,还是400,最终又重新检查一遍,支持了mysql,终于解决。

500错误解决有可能是数据库的问题,重启数据库(慎重)或者drop reviewboard库重新创建,并重新生成reviewboard站点。

来源:http://zhangxylinux.blog.51cto.com/5041623/1532964

Linux:Linux有问必答:如何在CentOS或者RHEL上启用Nux Dextop仓库

问题: 我想要安装一个在Nux Dextop仓库的RPM包。我该如何在CentOS或者RHEL上设置Nux Dextop仓库?

Nux Dextop是一个面对CentOS、RHEL、ScientificLinux的含有许多流行的桌面和多媒体相关的包的第三方RPM仓库(比如:Ardour,Shutter等等)。目前,Nux Dextop桌面对CentOS和RHEL 6/7可用。

Linux:Linux有问必答:如何在CentOS或者RHEL上启用Nux Dextop仓库
Linux:Linux有问必答:如何在CentOS或者RHEL上启用Nux Dextop仓库

要在CentOS或者RHEL上启用Nux Dextop,遵循下面的步骤。

首先,要知道Nux Dextop被设计与EPEL仓库共存。因此,你需要在使用Nux Dexyop仓库前先启用 EPEL

启用EPEL后,用下面的命令安装Nux Dextop仓库。

在 CentOS/RHEL 6.* 上:

$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm

在 CentOS/RHEL 7 上 :

$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm

现在验证Nux Dextop仓库是否已经成功安装:

$ yum repolist
Linux:Linux有问必答:如何在CentOS或者RHEL上启用Nux Dextop仓库
Linux:Linux有问必答:如何在CentOS或者RHEL上启用Nux Dextop仓库

对于 Repoforge/RPMforge 用户

据作者所说,目前已知Nux Dextop会与其他第三方库比如Repoforge和ATrpms相冲突。因此,如果你启用了除了EPEL的其他第三方库,强烈建议你将Nux Dextop仓库设置成“default off”(默认关闭)状态。就是用文本编辑器打开/etc/yum.repos.d/nux-dextop.repo,并且在nux-desktop下面将”enabled=1″ 改成 “enabled=0″。

$ sudo vi /etc/yum.repos.d/nux-dextop.repo
Linux:Linux有问必答:如何在CentOS或者RHEL上启用Nux Dextop仓库
Linux:Linux有问必答:如何在CentOS或者RHEL上启用Nux Dextop仓库

无论何时当你从Nux Dextop仓库安装包时,显式地用下面的命令启用仓库。

 $ sudo yum --enablerepo=nux-dextop install 

via: http://ask.xmodulo.com/enable-nux-dextop-repository-centos-rhel.html

译者:geekpi 校对: wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3889-1.html