因为我必须在通过kickstart进程构建的多个Oracle Linux服务器上安装多个版本的Python,所以我想为yum存储库构建一个python rpm.我能够使用'make altinstall'手动构建Python,它不会安装在你的默认系统Python安装上,所以我认为这是要走的路.
经过多次试验和错误,我设法用.bz2 python 2.7软件包开始构建rpm - 但是现在当我尝试安装它时,我收到一个错误:
error: Failed dependencies:
/usr/local/bin/python is needed by Python-2.7.2-1.i386
Run Code Online (Sandbox Code Playgroud)
什么...... ??? Python是我正在尝试安装的!系统默认的Python(2.4)在/ usr/bin/python中!我的python目录的原型位置是/tmp/python2.7(可执行文件是/tmp/python2.7/bin/python2.7).那为什么要查看/ usr/local/bin?
这是我的RPM SPEC的核心:
%prep
%setup -q
%build
./configure --prefix=/tmp/python2.7
make
%install
make altinstall
Run Code Online (Sandbox Code Playgroud)
我仔细看看rpm构建日志,我看到:
Requires: /bin/sh /tmp/python2.7/bin/python2.7 /usr/bin/env /usr/local/bin/python libc.so.6 libc.so.6(GLIBC_2.0)...[a lot more...]
Run Code Online (Sandbox Code Playgroud)
好的,所以有/ usr/local/bin进来的地方......现在,问题是,它是如何确定这些要求的呢?我说错了吗?我需要覆盖一些东西吗?
像许多rpm新手一样,我得到了构建部分,但我并没有真正"理解"在rpmbuild结束时发生的事情以及实际放入rpm文件的内容(除了你在%files中指定的文件)然后是什么实际上在你进行rpm安装时会发生.
任何人都可以建议为什么我的安装失败或我可能会读到什么来理解为什么我的rpm构建需要我正在尝试构建的东西?
我有一个查询超时问题。当我做了一个:
SELECT COUNT(id) AS rowCount FROM infoTable;
Run Code Online (Sandbox Code Playgroud)
在我的程序中,我的 JDBC 调用在 2.5 分钟后超时。
我没有太多的数据库管理专业知识,但我目前的任务是支持旧数据库。在这个 mysql 数据库中,有一个 InnoDB 表:
+-------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| info | longtext | NO | | | |
+-------+------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)
它目前的高 id 为 5,192,540,这是表中的近似行数。一些信息文本超过1M,一些非常小。每天添加大约 3000 行。机器有大量的可用磁盘空间,但没有很多额外的内存。行被读取并偶尔被修改但很少被删除,尽管我希望清除一些已经过时的旧数据。
我在一个较小的测试数据库上手动尝试了相同的查询,该数据库有 1,492,669 行,安装在磁盘空间较小的类似机器上,耗时 9.19 秒。
我在一个更小的测试数据库上手动尝试了相同的查询,该数据库有 98,629 行,耗时 3.85 秒。然后我为 id 添加了一个索引:
create index infoTable_idx on infoTable(id);
Run Code Online (Sandbox Code Playgroud)
并且随后的 …