В сообщении от 1173182445 секунд после начала Эпохи Alexander Esmont написал(а):
> По инструкции в README.txt:
>
> $ psql postgres
> psql: FATAL: database "postgres" does not exist
> - После этого пробую в другую базу
Там написано:
# su -c psql postgres
Что означает выполнить команду psql от имени пользователя postgres. А
Вы пытаетесь выполнить psql от имени текущего пользователя и
подключится к базе данных postgres.
> $ psql template1
> template1=>CREATE DATABASE chnutdb WITH ENCODING 'utf8';
> CREATE
> template1=>CREATE ROLE yourUser WITH PASSWORD 'yourPassword' LOGIN;
> ERROR: syntax error at or near "ROLE" at character 8
CREATE ROLE это для нового PostgreSQL (>= 8.1). Для старого нужно
CREATE USER.
Теоретически программе нужен PostgreSQL 7.3.16 (это если опираться на
документацию). При написании использовался 8.1.
> {попробовал разобраться самостоятельно и пришел к такой форме}
>
> template1=>CREATE USER alexx WITH PASSWORD 'password';
> CREATE
> template1=>GRANT ALL PRIVILEGES ON DATABASE chnutdb TO alexx;
> GRANT
>
> Далее все по инструкции:
> $ ./configure.py --create-schema --create-config
> $ ./srvman.py --add host=ftp.example1.net
> $ ./indexer.py
> Traceback (most recent call last):
> File "/usr/lib/python2.3/logging/__init__.pyc", line 674, in emit
> File "/usr/lib/python2.3/logging/__init__.pyc", line 567, in format
> Return a logger with the specified name, creating it if necessary.
> File "/usr/lib/python2.3/logging/__init__.pyc", line 365, in format
> iN(rootnodesselfsrootsdisablesemittedNoHandlerWarnings
> KeyError: 'threadName'
Похоже что threadName появился в Python 2.4, однако в документации об
этом не сказано. Попробуйте Python 2.4. Или замените
"[%(asctime)s] [%(levelname)s] [%(threadName)s] %(message)s")
на
"[%(asctime)s] [%(levelname)s] [%(thread)d] %(message)s")
в indexer.py.
> и вот тут затык минут на 30, хотя ls -lR на сервере выполняеться за
> минуту...
> Потом :
> Exception in thread Thread-1:
> Traceback (most recent call last):
> File "/usr/lib/python2.3/threading.pyc", line 436, in __bootstrap
> File "./indexer.py", line 255, in run
> self.indexer.run()
> File "./indexer.py", line 95, in run
> web.update('server', where = self.serverID, **upd)
> File "/home/alexx/rpm/chestnut/chestnut-ftp-search/web.py", line 971, in
update
> values.values() + vars)
> File "/home/alexx/rpm/chestnut/chestnut-ftp-search/web.py", line 794, in
<lambda>
> ctx.db_execute = lambda cur, sql_query, d=None: \
> ProgrammingError: ERROR: current transaction is aborted, commands ignored
until
> end of transaction block
>
> UPDATE server SET i_end_time='2007-03-06 13:49:41.074113' WHERE id = 1
>
> Соответственно, даже при ручном выполнении запроса UPDATE поля с
> количеством файлов и размером остаются незаполнеными.
Потому что индексирование было прервано по ошибке выше.
> Для доступа к поиску я использовал
> $ run.py
> а броузером на 127.0.0.1:8080/
> т.к. apache пока не ставил...
> Это нормальный метод?
Для тестирования - да. Для использования в продакшин - нет, так как
небезопасно.
> > Демо:
> > http://search.linux.kiev.ua/
> Посмотреть в работе не получилось при задании маски: '*', результат: "Ничего
> не найдено"
> Opera 9.10
Наверно потому что не было файлов, в которых содержится символ "*".
Чтобы этот символ интерпретировался как маска нужно выбрать режим писка
= шаблон оболочки.