Я должен установить подверсию 1.5.1 где-нибудь временно (например, в виртуальной машине) для преобразования базирующегося репозитория SVN старого BDB в FSFS.
Вещи я попробовал до сих пор:
Выполнение apt-get install subversion
на Ubuntu 12.04 VM установил подверсию 1.6. XX, который не был хорош для моего старого repo должного к:
$ svnadmin verify .
svnadmin: Berkeley DB error for filesystem 'db' while opening environment:
svnadmin: DB_VERSION_MISMATCH: Database environment version mismatch
svnadmin: bdb: Program version 4.8 doesn't match environment version 4.6
Выполнение apt-get install subversion
на VM Ubuntu 10.04, в надежде, что это установило бы подверсию 1.5. XX, не работал из-за способных ошибок.
Попытайтесь найти debian/ubuntu определенное .deb
пакет для версии 1.5.1, но не мог найти никого.
Попытайтесь создать из источника с помощью этого (возможно, наивный?) метод:
sudo apt-get install gcc
sudo apt-get install zip
cd /tmp
wget http://download.oracle.com/berkeley-db/db-4.6.21.zip
unzip db-4.6.21.zip
cd /tmp/db-4.6.21/build_unix
../dist/configure
make
cd /tmp
wget https://www.openssl.org/source/old/0.9.x/openssl-0.9.8j.tar.gz
tar -xvf openssl-0.9.8j.tar.gz
cd /tmp/openssl-0.9.8j
./config no-asm
make
sudo apt-get install zlib1g-dev
cd /tmp
wget https://archive.apache.org/dist/subversion/subversion-1.5.1.tar.gz
tar -xvf subversion-1.5.1.tar.gz
wget https://archive.apache.org/dist/subversion/subversion-deps-1.5.1.tar.gz
tar -xvf subversion-deps-1.5.1.tar.gz
cd /tmp/subversion-1.5.1
./configure --without-apache --without-neon --without-swig --with-berkeley-db=/tmp/db-4.6.21/build_unix --with-ssl=/tmp/openssl-0.9.8j
make
Но все еще после многих метод проб и ошибок я не могу получить подверсию к ./configure
из-за:
configure: error: Berkeley DB not found.
Есть ли что-либо еще, что я должен попытаться сделать это?
На Ubuntu мы можем получить Подверсию 1.5.4, Вы уже знаете это.
Но согласно содержанию http://archive.debian.org/debian/pool/main/s/subversion/ мы сделали, чтобы Debian выпустил с подверсией 1.5.1dfsg1-7
. Эти файлы датированы как 2011-12-26 01:55
. Таким образом согласно датам (проверил distrowatch) - Вам нужен Debian 5.0 (lenny).
Можно создать schroot для него в любом, поддерживал версию Ubuntu:
sudo apt-get install schroot debootstrap -y
cat <<EOF | sudo tee /etc/schroot/chroot.d/lenny.conf
[lenny]
description=Debian 5 lenny
directory=/srv/chroot/lenny
root-users=$USER
type=directory
users=$USER
EOF
sudo mkdir -p /srv/chroot/lenny
sudo debootstrap lenny /srv/chroot/lenny http://archive.debian.org/debian
списки пакета обновления в schroot среде (игнорируют сообщения KEYEXPIRED путем нажатия y):
schroot -c lenny -u root apt-get update
и затем проверьте subversion
- связанные пакеты:
schroot -c lenny apt-cache policy subversion
subversion: Installed: (none) Candidate: 1.5.1dfsg1-7 Version table: 1.5.1dfsg1-7 0 500 http://archive.debian.org lenny/main Packages
и наконец установите их
schroot -c lenny -u root apt-get install subversion
Если Вам нужна к chroot к Debian 5.0 (lenny) среда, просто выполненная schroot -c lenny -u root
.
Давайте сделаем это вместе.
schroot -c lenny -u root
Команда выполнения svn --version
в chroot и доберитесь:
# svn --version svn, version 1.5.1 (r32289) compiled May 31 2011, 16:16:34 ...
Наверняка команда выполнения dpkg -l | egrep -i "svn|subversion"
в chroot и доберитесь:
# dpkg -l | egrep -i "svn|subversion" ii libsvn1 1.5.1dfsg1-7 Shared libraries used by Subversion ii subversion 1.5.1dfsg1-7 Advanced version control system
Я записал бросок Asciinema, чтобы показать, как он работает.
Кажется, работает решение. Да здравствует Debian!
Действительно, я не думаю, что Вы сможете легко найти дистрибутив, который все еще работает в наше время и поставлется с этим старым из подверсии... Таким образом, я думаю, создавая из источника, вероятно, способ пойти.
Я думаю проблема, с которой Вы сталкиваетесь, в то время как здание из источника состоит в том, что Вы пытаетесь использовать зависимости от их каталогов сборки, а не каталогов установки. Таким образом, в то время как компоновщик, вероятно, сможет найти скомпилированные библиотеки оттуда, возможно, что компилятор испытает затруднения при нахождении включать файлов, в которых это нуждается...
Моя рекомендация состоит в том, что Вы устанавливаете зависимости на системе (под /usr/local
, который должен быть значением по умолчанию), затем попытайтесь создать подверсию, указывающую на них.
Короче говоря, для дб и openssl:
sudo make install
Для подверсии:
./configure --without-apache --without-neon --without-swig \ --with-berkeley-db=/usr/local --with-ssl=/usr/local
Если Ваши зависимости не устанавливают на /usr/local
по умолчанию попытайтесь передать --prefix=/usr/local
или подобный их настраивать сценарии.
Я не попробовал это сам, таким образом, детали могли бы быть немного выключены... Но надо надеяться этого достаточно для разблокирования Вас. (Добавьте комментарий, указывающий, работало ли это или нет!)
Если у Вас все еще есть ошибки такой как configure: error: Berkeley DB not found.
, смотрите внутри config.log
который должен показать Вам что ./configure
попытка состояла в том, чтобы сделать, когда она перестала работать. Прокрутите в конец, затем прокрутите строки включая вывод, Вы смогли видеть, какие файлы он пытался найти или какую программу C он пытался создать. Отправьте больше деталей здесь (или отправьте Ваше целое config.log
к pastebin), и мы смогли далее помогать Вам здесь.Удачи!