LINUX.ORG.RU

slashcode - кто нибудь пытался установить это *цензура*?


0

1

Так вот по просьбе начальника занимался этой гадостью (http://www.slashcode.com/) всё утро. Поначалу часа 2 компилилась сотня мелких непонятных пёрл пакетов. Потому начал собирать его самого. Ошибка - ошибочный SQL запрос. Поправил (запятой не хватало между описанием полей в CREATE). После этого всё поставилось вроде с маленькой ошибочкой

Installing...
Error:Slash::Install:/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/Slash/Install.pm:441:virtuser='slash' -- hostinfo='Localhost via UNIX socket' -- Table 'slash.ajax_ops' doesn't exist -- INSERT INTO ajax_ops VALUES (NULL, 'enable_maker_adless', 'Slash::Achievement', 'ajaxEnableMakerAdless', 'ajax_user', 'createuse')
Which was called by:Slash::Install:/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/Slash/Install.pm:173
=== (plugin Achievements) Failed on: INSERT INTO ajax_ops VALUES (NULL, 'enable_maker_adless', 'Slash::Achievement', 'ajaxEnableMakerAdless', 'ajax_user', 'createuse'):
Error:Slash::Install:/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/Slash/Install.pm:441:virtuser='slash' -- hostinfo='Localhost via UNIX socket' -- Table 'slash.ajax_ops' doesn't exist -- INSERT INTO ajax_ops VALUES (NULL, 'dynamic_blocks_delete_message', 'Slash::DynamicBlocks', 'ajaxDeleteMessage', 'ajax_user_static', 'createuse')
Which was called by:Slash::Install:/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/Slash/Install.pm:173
=== (plugin DynamicBlocks) Failed on: INSERT INTO ajax_ops VALUES (NULL, 'dynamic_blocks_delete_message', 'Slash::DynamicBlocks', 'ajaxDeleteMessage', 'ajax_user_static', 'createuse'):
Use of uninitialized value in pattern match (m//) at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/Slash/DB/MySQL.pm line 2689.



You should now have a slashsite!  (Unless serious errors were reported
during the install.  Some plugins do INSERT IGNOREs which may fail and
that is harmless, notably the Search plugin if SOAP is not installed,
which will report that the soap_methods table does not exist.)

Но когда заходишь по домену или по IP сначала браузер пишет «Waiting for <url>». А потом пустая страница. В чём может быть дело.

Они даже в мануале пишут мол забивайте на ошибки. Перловый подход - сотни мелких модулей и что бы всё поставить надо прочитать сотни страниц мануалов и весь исходный код.

Совсем забыл, в самом начале пришлось написать это:

#!/usr/bin/php
<?php

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

function glist($url, $cur_dir) {
	global $ch;
	
	echo "*** $cur_dir ***\n";
	if (!is_dir($cur_dir)) mkdir($cur_dir);
	
	curl_setopt($ch, CURLOPT_HTTPGET, 1);
	curl_setopt($ch, CURLOPT_URL, $url);
	$html = curl_exec($ch);
	
	$files = array();
	if (preg_match_all('#<a[^>]*href="([^"]+)"[^>]*>raw</a>#is',$html,$matches)) {
		$files2 = $matches[1];
		foreach ($files2 as $key => $val) {
			$files2[$key] = "http://slashcode.git.sourceforge.net{$files2[$key]}";
			if (preg_match('#f=([^;]+)#is',$files2[$key],$matches)) {
				$name = $matches[1];
				$name = preg_split('#/#',$name,-1,PREG_SPLIT_NO_EMPTY);
				$name = $name[count($name) - 1];
				$files[] = array(
					'url'		=>		$files2[$key],
					'name'		=>		$name,
				);
			}
		}
	}
	foreach ($files as $key => $val) {
		$url = $val['url'];
		$name = $val['name'];
		`wget -O $cur_dir/$name -c "$url"`;
	}
	
	$dirs = array();
	if (preg_match_all('#<a[^>]*href="([^"]+)"[^>]*>tree</a>#is',$html,$matches)) {
		$dirs2 = $matches[1];
		foreach ($dirs2 as $key => $val) {
			$dirs2[$key] = "http://slashcode.git.sourceforge.net{$dirs2[$key]}";
			if (preg_match('#f=([^;]+)#is',$dirs2[$key],$matches)) {
				$name = $matches[1];
				$name = preg_split('#/#',$name,-1,PREG_SPLIT_NO_EMPTY);
				$name = $name[count($name) - 1];
				$dirs[] = array(
					'url'		=>		$dirs2[$key],
					'name'		=>		$name,
				);
			}
		}
	}
	foreach ($dirs as $key => $val) {
		$url = $val['url'];
		$name = $val['name'];
		glist($url, "$cur_dir/$name");
	}
}

glist("http://slashcode.git.sourceforge.net/git/gitweb.cgi?p=slashcode/slashcode;a=tree;h=refs/heads/live;hb=live", 'slashcode');

curl_close($ch);

?>

что бы поскрэпить их файлы. Потому что релизов они не делают а git у них не работает, выдаёт ошибку.

par12b12
() автор топика
Ответ на: комментарий от par12b12

Потому что релизов они не делают а git у них не работает, выдаёт ошибку.

Там есть ссылочка «Snapshot» по которой можно скачать тарболл с исходниками.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.