Во-первых Bitcoind Вкомпилировать Покушение на CentOS 6.4Woohoo! Сегодня я нашел время, чтобы подготовиться к первоначальной компиляции из bitcoind из
https://github.com/bitcoin/bitcoin.github.com.
1. Во-первых, я вытерла существующий AWS EC2 машина, повторно инстанцировании свежий CentOS 6.4 машины на Amazon Cloud и входа в систему с помощью SSH / замазкой.
[Корень] $ эхо "Ваш свежий машин AWS EC2 является $ (кот / Proc / версия *)"
Ваш свежий машина AWS EC2 является Linux версии 2.6.32-279.el6.x86_64 (mockbuild@c6b9.bsys.dev.centos.org)
2. Установите зависимости, насколько я мог понять их
обновление ня
ни установить «Средство разработки»
ни установить OpenSSL-Devel
ни установить подталкивание
ни установить DB4
3. Добавьте новый аЬс пользователя и вытащить исходный код Bitcoin из GitHub
AddUser а; су а; MkDir ЦСИ; кд ЦСИ
мерзавец клон мерзавец: //github.com/bitcoin/bitcoin.git
кд / дом / а / SRC / Bitcoin / ЦСИ
4. Измените переменную USE_UPNP в файле Makefile.unix поэтому библиотека miniUPNP является
не включен.
Я извиняюсь за помощью неясных редакторов здесь патча в, но этом пути каждый может точно дублировать результат.
СЕПГ -i -e "s / ^ USE_UPNP * / USE_UPNP:. = - /" Makefile.unix
5. И, наконец, попробуйте декомпилировать из bitcoind в соответствии с инструкциями в Bitcoin каталоге / док
[ABC] $ кд / дом / а / SRC / Bitcoin / ЦСИ
[А] $ сделать -f Makefile.unix
6. Результат? Ну, куча файлов не компилируется счастливо до этого:
G ++ -c -O2 -pthread -Wall -Wextra -Wformat -Wformat-безопасности -Wno-неиспользованными-параметр -g -DBOOST_SPIRIT_THREADSAFE -D_FILE_OFFSET_BITS = 64 -I / главная / ABC / SRC / Биткойн / SRC -I / главная / ABC / SRC / Bitcoin / SRC / объект -DUSE_IPV6 = 1 -I / дома / а / SRC / Bitcoin / SRC / LevelDB / включает -I / дом / а / SRC / Bitcoin / SRC / LevelDB / хелпер -DHAVE_BUILD_INFO -fno-Пакетирование протектор -fstack-протектор-все -Wstack-протектор -D_FORTIFY_SOURCE = 2 -MMD -MF объект / alert.d -o OBJ / alert.o alert.cpp
alert.cpp: 6: 53: предупреждение: усиление / алгоритм / строка / classification.hpp: Нет такого файла или каталога
alert.cpp: 7: 46: предупреждение: усиление / алгоритм / строка / replace.hpp: Нет такого файла или каталога
alert.cpp: 8: 29: предупреждение: усиление / foreach.hpp: Нет такого файла или каталога
В файле включены из alert.h: 13, из alert.cpp: 11:
util.h: 23: 29: предупреждение: усиление / version.hpp: Нет такого файла или каталога
util.h: 24: 28: предупреждение: усиление / thread.hpp: Нет такого файла или каталога
util.h: 25: 32: предупреждение: усиление / filesystem.hpp: Нет такого файла или каталога
<надрез>
Doh. Кажется, как будто куча повышающих файлов не найдена.
7. Не собирается сдаваться так легко. Вернитесь к корню, ни-пакет установка наддува развития, попробуйте еще раз.
[А] $ выход # для суперпользователя
[Корень] # ня установить наддув-Devel
Пакет подталкивание-разви-1.41.0-17.el6_4.x86_64 установлен
[Корень] # су а # Стать пользователь а снова
[ABC] $ кд / домом / а / SRC / Bitcoin / ЦСИ # где Makefile является
[А] $ сделать -f Makefile.unix
Вышеуказанные ошибки уходят!
/ Бен / ш ../share/genbuild.sh объект / build.h
G ++ -c -O2 -pthread -Wall -Wextra -Wformat -Wformat-безопасности -Wno-неиспользованными-параметр -g -DBOOST_SPIRIT_THREADSAFE -D_FILE_OFFSET_BITS = 64 -I / главная / ABC / SRC / Биткойн / SRC -I / главная / ABC / SRC / Bitcoin / SRC / объект -DUSE_IPV6 = 1 -I / дома / а / SRC / Bitcoin / SRC / LevelDB / включает -I / дом / а / SRC / Bitcoin / SRC / LevelDB / хелпер -DHAVE_BUILD_INFO -fno-Пакетирование протектор -fstack-протектор-все -Wstack-протектор -D_FORTIFY_SOURCE = 2 -MMD -MF объект / key.d -o OBJ / key.o key.cpp
не key.cpp: 5: 27: предупреждение: OpenSSL / ecdsa.h: Нет такого файла или каталога
key.cpp: 16: ошибка: «EC_KEY» не был объявлен в этой области
key.cpp: 55: ошибка: «ECDSA_SIG» не был объявлен в этой области
Новые ошибки добрейшего ожидаемые, потому что я где-то читал, что OpenSSL компилируется без EC (эллиптические кривые) из-за какую-то выдачу патента.
8. Новый квест будет найти OpenSSL с ЕС включен.
В
Джефф Garzik, Bitcoin основной команды разработчиков гуру, говорит:
От: Джефф Garzik, Bitcoin основной команды разработчиков
Re: ECDSA выпал из OpenSSL 1.0.0b 26 июня 2012 года, 5:39:39 PM
предпочтительным "исправления" для Red Hat, CentOS, Fedora системы являются, если вы хотите сделать это самостоятельно,
1) Скачать SRPM
2) Скачать исходный код, связанный с openssl.org
3) Редактирование СПЕЦИФИКАЦИИ / openssl.spec,
а) замена исходной тарболы имени файла с загруженными одного
б) закомментируйте все ссылки на source1
в) удалить "нет-ес" материал из строки конфигурации
4) восстановление с "rpmbuild -ba SPECS / openssl.spec" или похожие
5) установить построить RPMs найдено в RPMS /
Не уверен, что все эти шаги будут переводить на мой ящик AWS EC2 CentOS, но будет узнать в течение ближайших нескольких дней.
8. Хорошо, думаю, у меня есть шаг 1 Джефф понял, - это загрузка .src.rpm выборка из CentOS кодового свода
[Корень] # су а # В настоящее время корень, стать пользователем а
[ABC] $ кд / дом / ABC # Перейти в домашний каталог азбуки
[ABCL] $ # Используйте завиток для загрузки пакета OpenSSL SRPM (Источник RPM)
[ABC] $ завиток -O http://vault.centos.org/6.4/os/Source/SPackages/openssl-1.0.0-27.el6.src.rpm
(4,11 Мб / с) - «OpenSSL-1.0.0-27.el6.src.rpm» спас [3419292/3419292]
Комментарии & советы приветствуются.
Я также прочитать
http://wiki.centos.org/TipsAndTricks/YumAndRPM - не все 100% ясно, но еще 14,1 кажется важным.
14. Получить настройки для восстановления пакетов, как сами себя, а не корень
Иногда вам просто нужно восстановить этот пакет - возможно использовать только некоторые опции конфигурации, которые просто не существуют в официальном пакете.
Так вот, как восстановить свои пакеты в вашем домашнем каталоге - с собственной учетной записью пользователя.
Материал для чтения:
http://wiki.centos.org/HowTos/SetupRpmBuildEnvironment http://wiki.centos.org/HowTos/RebuildSRPMБлагодаря TrevorH1
9. Итак, ниже первой попытки разбирая пакет RPM Источник ...
[Корень] # ня установить RPM-сборку # из инструкции по http://wiki.centos.org/HowTos/SetupRpmBuildEnvironment
[Корень] # ням установить RedHat оборотов в минуту-конфигурации # из инструкции по http://wiki.centos.org/HowTos/SetupRpmBuildEnvironment
[Корень] # су а # стать некорневым пользователем
[А] $ обороты в минуте -ivh /home/abc/openssl-1.0.0-27.el6.src.rpm # из инструкции по http://bradthemad.org/tech/notes/patching_rpms.php
Святая корова, которая, кажется, как много работы. Бывший восточное побережье спортивный моряк, гитара разыгрывания Bradthemad говорит на своем сайте
Часть философии позади RPM является то, что процесс сборки должен быть повторяемым, как описано здесь. Это может быть небольшое утешение, когда вы просто хотите сделать простое изменение в вашей системе, где здание когда-то достаточно хорошо, но это так оно и есть.
Ktks, он получил Bradthemad. Пора сосать его и код на. И если вы до сих пор после этой записи, где вы, как хардкор, как ваш покорный слуга, чтобы получить bitcoind происходит CentOS
10. Запустите возился с источником в OpenSSL SRPM
Эти шаги были удалены
11. Теперь нужно выяснить, какие конфигурации (или источник) файлы для редактирования, чтобы повторно включить эллиптический кривой код в OpenSSL на CentOS 6.4 ...
Герой Kano Член на bitcointalk:
говорит, что мы должны изменить
включить-ес-ECDH позволяют включить-ECDSA
Кроме того, кажется, что вы должны заменить файл .bz2 в источнике с .gz свежий файл из
www.openssl.org, а затем обновить openssl.spec файл, чтобы отразить это.
[ABC] $ кд / дом / ABC / rpmbuild / ИСТОЧНИКИ
[А] $ мв OpenSSL-1.0.0-usa.tar.bz2 OpenSSL-1.0.0-usa.tar.bz2-оригинал
[ABC] $ завиток -O http://www.openssl.org/source/openssl-1.0.0j.tar.gz
[А] $ мв OpenSSL-1.0.0j.tar.gz OpenSSL-1.0.0-usa.tar.gz
В ИСТОЧНИКАХ / openssl.spec:
искать
Source1: ковылять-OpenSSL
(Строка 29) и изменить его (закомментировать) на:
# Source1: ковылять-OpenSSL
искать
% {Source1} > / DEV / нуль
(Строка 133) и изменить его (закомментировать) на:
#% {Source1} > / DEV / нуль
поиск FPR
Источник: OpenSSL -% {версия} -usa.tar.bz2
(Строка NNN) и изменить его
Источник: OpenSSL -% {версия} j.tar.gz
Спасибо Kano!
12. Еще несколько изменений в openssl.spec файл и мы восстановить пакет с rpmbuild.
[А] $ СЕПГ -i -e "не с / не-ес / enable_ec /; с / нет-ECDH / Enable-ECDH /; с / нет-ECDSA / включения-ECDSA /" /home/abc/rpmbuild/SPECS/openssl.spec # Подержанные патч в редакторе, чтобы удалить не-ECDSA и не-ес директивы из файла спецификации
[ABC] $ кд / дом / а / rpmbuild
[ABC] $ rpmbuild -ba SPECS / openssl.spec # Из инструкции на http://wiki.centos.org/HowTos/RebuildSRPM
Выше rpmbuild пакета OpenSSL приводит к ошибке
+ Umask 022
+ кд / дом / а / rpmbuild / BUILD
+ ЛАНГ = С
+ экспорт LANG
+ снят с охраной DISPLAY
+ кд / дом / а / rpmbuild / BUILD
+ гт -rf OpenSSL-1.0.0
+ / Бен / смола -xf -
+ / USR / бен / GZIP -dc /home/abc/rpmbuild/SOURCES/openssl-1.0.0j.tar.gz
+ STATUS = 0
+ '[' 0 -ne 0 ']'
+ CD OpenSSL-1.0.0
/var/tmp/rpm-tmp.IOaGqm: нет линия 38: CD: OpenSSL-1.0.0: Нет такого файла или каталога
Ошибка: Плохое состояние выхода из /var/tmp/rpm-tmp.IOaGqm (% приготовительный)
Это близко, но не совсем там. Исходя из вышеизложенного, когда
/ USR / бен / GZIP -dc /home/abc/rpmbuild/SOURCES/openssl-1.0.0j.tar.gz бежит, архив получает извлечены OpenSSL-1.0.0j вместо OpenSSL-1.0.0. Поэтому, когда
CD OpenSSL-1.0.0 бывает, "нет такого каталога" выбрасывается, потому что все в
OpenSSL-1.0.0j.
Так, кажется, близко, но не 100% там. Комментарии приветствуются.