Как я могу установить подверсию 1.5.1 (очень старый выпуск)

Я должен установить подверсию 1.5.1 где-нибудь временно (например, в виртуальной машине) для преобразования базирующегося репозитория SVN старого BDB в FSFS.

Вещи я попробовал до сих пор:

  1. Выполнение 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
    
  2. Выполнение apt-get install subversion на VM Ubuntu 10.04, в надежде, что это установило бы подверсию 1.5. XX, не работал из-за способных ошибок.

  3. Попытайтесь найти debian/ubuntu определенное .deb пакет для версии 1.5.1, но не мог найти никого.

  4. Попытайтесь создать из источника с помощью этого (возможно, наивный?) метод:

    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.

Есть ли что-либо еще, что я должен попытаться сделать это?

3
задан 11 September 2018 в 06:53

2 ответа

На 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.

Давайте сделаем это вместе.

  1. Введите chroot с schroot -c lenny -u root
  2. Команда выполнения svn --version в chroot и доберитесь:

    # svn --version            
    svn, version 1.5.1 (r32289)
    compiled May 31 2011, 16:16:34
    ...
    
  3. Наверняка команда выполнения 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!

2
ответ дан 1 December 2019 в 16:17

Действительно, я не думаю, что Вы сможете легко найти дистрибутив, который все еще работает в наше время и поставлется с этим старым из подверсии... Таким образом, я думаю, создавая из источника, вероятно, способ пойти.

Я думаю проблема, с которой Вы сталкиваетесь, в то время как здание из источника состоит в том, что Вы пытаетесь использовать зависимости от их каталогов сборки, а не каталогов установки. Таким образом, в то время как компоновщик, вероятно, сможет найти скомпилированные библиотеки оттуда, возможно, что компилятор испытает затруднения при нахождении включать файлов, в которых это нуждается...

Моя рекомендация состоит в том, что Вы устанавливаете зависимости на системе (под /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), и мы смогли далее помогать Вам здесь.Удачи!

1
ответ дан 1 December 2019 в 16:17

Другие вопросы по тегам:

Похожие вопросы: