Ответы:
Начиная с Ubuntu 12.10, Subversion 1.7 доступна как часть дистрибутива. Subversion можно установить с помощью apt-get.
sudo apt-get install subversion
Для более ранних версий Ubuntu есть ppa, доступный в subversion-1.7 . Хранилище может быть добавлено следующим образом:
sudo apt-add-repository ppa:dominik-stadler/subversion-1.7
Чтобы получить последнюю версию обновления Subversion и обновить хранилище.
sudo apt-get update
sudo apt-get upgrade
Мне нужно было также сделать dist-upgrade.
sudo apt-get dist-upgrade
Я предполагаю, что у вас уже есть установленная Subversion, если нет:
sudo apt-get install subversion
svn cleanup [repo]
перед обновлением с 1.6, потому что клиент SVN 1.7 не будет очищать старые репозитории. После обновления клиента SVN запустите svn upgrade [repo]
обновление метаданных для каждого хранилища. Подробнее stackoverflow.com/a/7754776/114900
Существует также ppa, поддерживаемый непосредственно командой Subversion : команда "Subversion" .
Вы должны иметь возможность добавить ppa с помощью следующей команды:
sudo apt-add-repository ppa:svn/ppa
Команда apt-add-repository предоставляется пакетом python-software-properties, поэтому сначала обязательно установите его.
Примечание: RabbitVCS, похоже, имеет проблему с Subversion 1.7: Rabbitvcs не помечается как версионные подфодлеры / файлы в SVN 1.7 . Это исправлено в стволе, но еще не было отправлено в сборку.
Сценарий Wandisco фактически устанавливает новый репозиторий, который содержит файл .deb для установки SVN 1.7.
Практически то же самое можно сделать, выполнив следующие команды:
sudo add-apt-repository 'deb http://opensource.wandisco.com/ubuntu lucid svn17'
sudo wget -q http://opensource.wandisco.com/wandisco-debian.gpg -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install subversion
sudo: add-apt-repository: command not found
сообщение об ошибке, вам нужно установить python-software-properties:sudo apt-get install python-software-properties
lucid
вместо вашего фактического названия выпуска. Они предоставляют только релизы для lucid
. И убедитесь, что вы удалили / закомментировали соответствующую deb-src
строку, /etc/apt/sources.list
если она есть.
При использовании Trac Вы можете заметить проблему после обновления Subversion с использованием репозитория WANdisco. Его симптомом является сообщение на сайте Trac:
Предупреждение: не удается синхронизироваться с репозиторием "(по умолчанию)" (неподдерживаемая система управления версиями "svn": нет модуля с именем svn). Посмотрите в журнале Trac для получения дополнительной информации.
Этот пакет связывает svn с python2.6, а в Ubuntu 12.04 есть python2.7. Вот скрипт, который решил проблему с моей стороны:
mkdir /usr/lib/python2.7/dist-packages/libsvn
for f in /usr/lib/pyshared/python2.6/libsvn/*; do ln -s $f /usr/lib/python2.7/dist-packages/libsvn/; done
for f in /usr/share/pyshared/libsvn/*; do ln -s $f /usr/lib/python2.7/dist-packages/libsvn/; done
mkdir /usr/lib/python2.7/dist-packages/svn
for f in /usr/share/pyshared/svn/*; do ln -s $f /usr/lib/python2.7/dist-packages/svn/; done
mkdir /usr/lib/pyshared/python2.7/libsvn
for f in /usr/lib/pyshared/python2.6/libsvn/*; do ln -s $f /usr/lib/pyshared/python2.7/libsvn/; done
Я использовал двоичные файлы wandisco с подходящими источниками, как описал Фернандо, но теперь, когда в следующей версии Ubuntu есть официальные двоичные файлы, обновленные до 1.7, я хотел использовать их при использовании 12.04 LTS.
Следующие источники добавлены в новый файл /etc/apt/sources.list.d/svn17.list:
deb http://archive.ubuntu.com/ubuntu/ quantal main universe
deb-src http://archive.ubuntu.com/ubuntu/ quantal main universe
А затем в соответствии с рекомендациями на https://help.ubuntu.com/community/PinningHowto /etc/apt/apt.conf.d/90svn17:
APT::Default-Release "precise";
Затем устанавливается с помощью
sudo apt-get install -V subversion -t quantal
Не уверен, что эти новые имена файлов соответствуют соответствующим соглашениям, но это работает. Сначала попробовал закрепить конфиг, но безуспешно. С "-t количественным" пиннингом не требовалось.
Не верьте, что есть публичная версия .deb. Вы можете попробовать этот скрипт для установки 1.7 из WANdisco
svn1.7_ubuntu_wandisco.sh
#!/bin/bash +x
# WANdisco Subversion Installer V0.1
# opensource@wandisco.com
echo WANdisco Subversion Installer v0.1 for Ubuntu 9.10, 10.04, 10.10
echo Please report problems and bugs to opensource@wandisco.com
echo
echo Gathering some information about your system...
MINVERSION='1'
SVNVER='1.7.0'
ARCH=`uname -m`
SVNSTATUS=`dpkg -l|grep " libsvn1 " | awk '{print $1}'`
#functions
check_is_root ()
{
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
}
svn_remove_old ()
{
echo Removing old packages...
apt-get -y remove libsvn1 subversion libapache2-svn libsvn-dev libsvn-doc libsvn-perl subversion-tools
}
add_repo_config ()
{
echo Adding repository configuration to /etc/apt/sources.list.d/
if [ -f /etc/apt/sources.list.d/WANdisco.list ]; then
rm /etc/apt/sources.list.d/WANdisco.list
fi
echo "Installing Apt repo...."
echo "# WANdisco Open Source Repo" > /etc/apt/sources.list.d/WANdisco.list
echo "deb http://opensource.wandisco.com/ubuntu lucid svn17" >> /etc/apt/sources.list.d/WANdisco.list
echo "Importing GPG key"
wget http://opensource.wandisco.com/wandisco-debian.gpg -O /tmp/wandisco-debian.gpg &>/dev/null
apt-key add /tmp/wandisco-debian.gpg
rm -rf /tmp/wandisco-debian.gpg
apt-get update
}
install_svn ()
{
echo Checking to see if you already have Subversion installed via dpkg...
if [ "$SVNSTATUS" == "ii" ]; then
echo
echo Subversion is already installed on the system.
echo Do you wish to replace the version of subversion currently installed with the WANdisco version?
echo This action will remove the previous version from your system.
echo -n "[y/N]: "
read svn_install_confirm
if [ "$svn_install_confirm" == "y" -o "$svn_install_confirm" == "Y" ]; then
svn_remove_old
add_repo_config
echo
echo Installing Subversion $SVNVER-$MINVERSION
echo
apt-get -y --force-yes install subversion libsvn-perl subversion-tools
echo -n "Would you like to install apache and the apache SVN modules? [y/N] "
read dav_svn_confirm
if [ "$dav_svn_confirm" == "y" -o "$dav_svn_confirm" == "Y" ]; then
echo Installing apache and subversion modules
apt-get -y --force-yes install apache2 libapache2-svn
echo -n "Installation complete. Restart apache? [y/N] "
read apache_restart_confirm
if [ $apache_restart_confirm == "y" -o $apache_restart_confirm == "Y" ]; then
/etc/init.d/apache2 restart
fi
fi
else
echo "Install Cancelled"
exit 1
fi
else
# Install SVN
echo "Subversion is not currently installed"
echo -n "Starting installation, are you sure you wish to continue? [y/N] "
read svn_install_confirm
if [ "$svn_install_confirm" == "y" -o "$svn_install_confirm" == "Y" ]; then
add_repo_config
echo
echo Installing Subversion $SVNVER-$MINVERSION
echo
apt-get -y --force-yes install subversion libsvn-perl subversion-tools
echo -n "Would you like to install apache and the apache SVN modules? [y/N] "
read dav_svn_confirm
if [ "$dav_svn_confirm" == "y" -o "$dav_svn_confirm" == "Y" ]; then
echo Installing apache and subversion modules
apt-get -y --force-yes install apache2 libapache2-svn libsvn-dev
echo -n "Installation complete. Restart apache? [y/N] "
read apache_restart_confirm
if [ $apache_restart_confirm == "y" -o $apache_restart_confirm == "Y" ]; then
/etc/init.d/apache2 restart
fi
fi
else
echo "Install Cancelled"
exit 1
fi
fi
}
install_32 ()
{
echo Installing for $ARCH
install_svn
}
install_64 ()
{
echo Installing for $ARCH
install_svn
}
#Main
check_is_root
echo Checking your system architecture.
if [ "$ARCH" == "i686" -o "$ARCH" == "i386" ]; then
install_32
elif [ "$ARCH" == "x86_64" ];
then
install_64
else
echo Unsupported platform: $ARCH
exit 1
fi