답변:
Ubuntu 12.10부터 배포판의 일부로 하위 버전 1.7을 사용할 수 있습니다. Subversion은 apt-get을 사용하여 설치할 수 있습니다.
sudo apt-get install subversion
이전 버전의 Ubuntu의 경우 subversion-1.7 에서 ppa를 사용할 수 있습니다 . 저장소는 다음과 같이 추가 할 수 있습니다.
sudo apt-add-repository ppa:dominik-stadler/subversion-1.7
최신 버전의 하위 버전 업데이트를 가져오고 리포지토리를 업그레이드합니다.
sudo apt-get update
sudo apt-get upgrade
또한 dist-upgrade도해야했습니다.
sudo apt-get dist-upgrade
그렇지 않은 경우 이미 서브 버전이 설치되어 있다고 가정합니다.
sudo apt-get install subversion
svn cleanup [repo]
svn 1.7 클라이언트는 이전 리포지토리를 정리하지 않으므로 1.6에서 업그레이드 하기 전에 잊지 마십시오 . svn 클라이언트를 업그레이드 한 후 실행 svn upgrade [repo]
하여 각 저장소의 메타 데이터를 업그레이드하십시오. 자세한 내용 stackoverflow.com/a/7754776/114900
또한 Subversion 팀에서 직접 지원하는 PPA ( "Subversion"team)도 있습니다.
다음 명령으로 ppa를 추가 할 수 있어야합니다.
sudo apt-add-repository ppa:svn/ppa
apt-add-repository 명령은 python-software-properties 패키지에서 제공하므로 먼저 설치하십시오.
참고 : RabbitVCS는 Subversion 1.7에 문제가있는 것 같습니다. Rabbitvcs는 svn 1.7에서 버전이 지정된 하위 폴더 / 파일로 표시되지 않습니다 . 이것은 트렁크에 고정되어 있지만 아직 빌드로 푸시되지 않았습니다.
Wandisco 스크립트는 실제로 SVN 1.7 설치를위한 .deb 파일이 포함 된 새 저장소를 설치합니다.
다음 명령을 실행하면 거의 동일합니다.
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
오류 메시지가, 당신은 파이썬 소프트웨어 특성을 설치해야합니다 :sudo apt-get install python-software-properties
lucid
실제 릴리스 이름 대신 사용하는 것입니다. 에 대한 릴리스 만 제공합니다 lucid
. 해당 deb-src
줄이 /etc/apt/sources.list
있으면 제거하거나 주석 처리해야합니다 .
Trac를 사용하는 경우 WANdisco 리포지토리를 사용하여 Subversion을 업그레이드 한 후 문제가 발생할 수 있습니다. 그 증상은 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
Fernando가 설명한 것처럼 적절한 소스가있는 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 quantal"을 사용하면 고정이 필요하지 않습니다.
아직 공개 .deb가 있다고 믿지 마십시오. 이 스크립트를 사용해 WANdisco에서 1.7을 설치할 수 있습니다
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