服务器操作系统 Centos 7.6
安装路径 /opt
软件包下载链接 https://omnidb.org/dist/2.17.0/omnidb-server_2.17.0-centos7-amd64.rpm
1、到服务器 /opt
目录下,使用下面的命令安装
rpm -ivh omnidb-server_2.16.0-centos6-amd64.rpm
安装完成会在当前路径生成 omnidb-server
文件夹
配置文件存放路径 /opt/omnidb-server/omnidb.conf
2、启动 omnidb
服务
[root@localhost opt]# cd omnidb-server
[root@localhost omnidb-server]# omnidb-server
会报这样的错误
[root@localhost omnidb-server]# omnidb-server
Starting OmniDB websocket...
Checking port availability...
Starting websocket server at port 25482.
Traceback (most recent call last):
File "site-packages/django/db/backends/base/base.py", line 216, in ensure_connection
File "site-packages/django/db/backends/base/base.py", line 194, in connect
File "site-packages/django/db/backends/sqlite3/base.py", line 159, in get_new_connection
sqlite3.NotSupportedError: URIs not supported
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "omnidb-server.py", line 322, in
File "site-packages/django/contrib/sessions/backends/db.py", line 109, in clear_expired
File "site-packages/django/db/models/query.py", line 663, in delete
File "site-packages/django/db/models/deletion.py", line 272, in delete
File "site-packages/django/db/transaction.py", line 147, in enter
File "site-packages/django/db/backends/base/base.py", line 378, in get_autocommit
File "site-packages/django/db/backends/base/base.py", line 216, in ensure_connection
File "site-packages/django/db/utils.py", line 89, in exit
File "site-packages/django/db/backends/base/base.py", line 216, in ensure_connection
File "site-packages/django/db/backends/base/base.py", line 194, in connect
File "site-packages/django/db/backends/sqlite3/base.py", line 159, in get_new_connection
django.db.utils.NotSupportedError: URIs not supported
查了很多资料,也没有找到解决问题的办法。最后发现 rpm
命令安装的时候,会验证软件包的依赖。此时我做了一个测试,让其忽略依赖关系强行安装,看会不会有这个问题(因为我的服务器没连外网)
3、找到安装的 omnidb
的名字(安装包名字和安装后的名字不一样),然后再卸载(注意:rpm
软件不能用直接删除文件夹的方式卸载)
[root@localhost opt]# rpm -qa|grep omnidb
omnidb-server-2.17.0-0.x86_64
[root@localhost opt]# rpm -e omnidb-server-2.17.0-0.x86_64
[root@localhost opt]#
4、重新安装(忽略依赖关系强行安装)
[root@localhost opt]# rpm -ivh omnidb-server_2.17.0-centos7-amd64.rpm --nodeps
Preparing... ################################# [100%]
Updating / installing...
1:omnidb-server-2.17.0-0 ################################# [100%]
[root@localhost opt]# cd omnidb-server
[root@localhost omnidb-server]# omnidb-server
Starting OmniDB websocket...
Checking port availability...
Starting websocket server at port 25482.
Starting OmniDB server...
Checking port availability...
Starting server OmniDB 2.17.0 at 127.0.0.1:8000.
User database version 2.17.0 is already matching server version.
Open OmniDB in your favorite browser
Press Ctrl+C to exit
这次终于启动了,没啥问题了,如果要指定 IP ,并且后台启动,使用下面命令
nohup omnidb-server -H IP地址 &
5、版本冲突的错误解决
- 在
CentOS 7
上将OmniDB
与Django 2.1.x
打包在了一起。而Django2.1.x
需要依赖的是SQLite3.7.x
。(Django 2.1 incompatible with sqlite 3.6.20,参考https://code.djangoproject.com/ticket/29624) - 在
CentOS 6
上,仅SQLite 3.6.x
版本是有效的。 因此,对于CentOS 6
,我们需要使用Django 2.0.x
而不是2.1.x
版本。