2008-09-18 20 views
22

Máy chủ phát triển của tôi (CentOS 5) đang chạy Subversion 1.4.2 và tôi muốn nâng cấp lên 1.5. Tôi đã đọc trong các blog và tài liệu khác nhau nằm rải rác trên web mà điều này có thể được thực hiện bằng cách sử dụng RPMForge. Tôi đã làm theo các hướng dẫn được tìm thấy trên CentOS Wiki, bao gồm cài đặt ưu tiên yum và đặt mức độ ưu tiên của tôi như được chỉ ra (1 và 2 cho các nguồn repo lõi và 20 cho RPMForge).Làm cách nào để nâng cấp lên Subversion 1.5 trên CentOS 5?

Tuy nhiên, khi tôi cố gắng để chạy:

$ yum info subversion 

số phiên bản dành cho tôi vẫn là 1.4.2, có trạng thái cài đặt. Tùy chọn khác của tôi vào thời điểm này được biên dịch từ nguồn, nhưng tôi muốn tìm một giải pháp quản lý gói để dễ dàng nâng cấp trong tương lai.

Mọi suy nghĩ?

+0

Bạn có thể chuyển sang Ubuntu và giải quyết nhiều vấn đề khác;) – sorin

Trả lời

45

Những gì bạn đang cố gắng làm là thay thế gói "cốt lõi" (gói được chứa trong kho lưu trữ CentOS) với gói mới hơn từ kho lưu trữ "3rd " (RPMForge). plugin là được thiết kế để ngăn chặn.

Kho lưu trữ RPMForge chứa cả hai gói bổ sung không tìm thấy trong CentOS, cũng như các phiên bản gói lõi mới hơn. Thật không may, yum là khá ngu ngốc và sẽ luôn cập nhật một gói lên phiên bản mới nhất nó có thể tìm thấy trong bất kỳ kho nào. Vì vậy, chạy "yum update" với RPMforge được bật sẽ cập nhật một nửa hệ thống của bạn với gói mới nhất (cạnh chảy máu, có thể không ổn định và ít được hỗ trợ tốt) từ RPMForge.

Do đó, cách khuyến khích sử dụng các hợp đồng mua như RPMForge là sử dụng chúng chỉ cùng với một plugin yum như "Priorites", mà ngăn gói từ Repos ưu tiên "cao" để ghi đè lên những từ Repos ưu tiên "thấp" (tên của tham số "ưu tiên" là rất gây hiểu lầm). Bằng cách này, bạn có thể cài đặt thêm gói bổ sung (mà không nằm trong lõi) từ RPMForge, đó là điều mà hầu hết mọi người đều muốn.

Bây giờ cho câu hỏi ban đầu của bạn ...

Nếu bạn muốn để thay thế một gói cốt lõi, những thứ có được một chút khéo léo. Về cơ bản, bạn có hai lựa chọn:

  1. Gỡ bỏ các plugin ưu tiên, và disable kho RPMForge bởi mặc định (set enabled = 0 trong /etc/yum.repos.d/rpmforge.repo). Bạn có thể sau đó chọn lọc kích hoạt nó trên dòng lệnh:

    yum --enablerepo=rpmforge install subversion 
    

    sẽ cài đặt subversion mới nhất và phụ thuộc từ RPMForge.

    Vấn đề với phương pháp này là nếu có bản cập nhật cho gói phụ đề trong RPMForge, bạn sẽ không thấy khi repo bị vô hiệu hóa . Để cập nhật lật đổ, bạn phải nhớ chạy

    yum --enablerepo=rpmforge update subversion 
    

    tùy từng thời điểm.

  2. Khả năng thứ hai là sử dụng Priorites cắm, nhưng tay "mặt nạ" gói lật đổ lõi (thêm exclude=subversion đến [base][update] phần trong /etc/yum.repos.d/CentOS-Base.repo).

    Hiện tại, yum sẽ hoạt động như thể không có gói có tên là "lật đổ" trong kho lưu trữ lõi và vui lòng cài đặt phiên bản mới nhất từ ​​ RPMForge. Ngoài ra, bạn sẽ luôn nhận được các cập nhật lật đổ mới nhất khi chạy yum update.

+1

Cảm ơn 8jean, giải pháp của bạn đã hoạt động rất tốt. Lý do nó không hoạt động theo cách tôi mong đợi là do sự giải thích sai của tôi về các plugin ưu tiên; Tôi nghĩ rằng bằng cách cho phép repo với --enablerepo sẽ bỏ qua việc kiểm tra ưu tiên. Dường như tôi đã nhầm lẫn. Cảm ơn bạn lần nữa! – jperras

+3

Đây là lần đầu tiên tôi googled một cái gì đó và có một câu trả lời Stackoverflow là kết quả tìm kiếm đầu tiên! Và nó hoàn hảo. –

+1

# 2 là một gợi ý tuyệt vời mà dường như làm việc tốt cho tôi. Tôi quan tâm đến những phân nhánh dài hạn là gì để dễ dàng cập nhật hệ thống. Tôi biết rằng rối tung với những thứ này có thể làm cho điều đó phức tạp ... –

1

Nếu bạn cài đặt bản sao của RPMForge, bạn có thể nhận gói mới hơn - điều này không có tác dụng với bạn?

Bạn sẽ thấy rpmforge.list trong /etc/apt/sources.list.d với một dòng như:

repomd http://apt.sw.be redhat/el$(VERSION)/en/$(ARCH)/dag 

tôi chỉ thử nghiệm trên một CentOS sạch 5 cài đặt, và yum check-update lãm

subversion.i386       1.5.2-0.1.el5.rf  rpmforge 
subversion-perl.i386      1.5.2-0.1.el5.rf  rpmforge 

Vì vậy, hãy kiểm tra danh sách nguồn của bạn và chạy lại kiểm tra.

Chỉnh sửa: Rất tiếc, đã mất một phần câu trả lời của tôi. Đã thêm nó trở lại ở trên.

0

lên tới phiên bản 1.4.6 trong kho lưu trữ của Dag.

Bạn có thể thử một từ Fedora's repo hoặc có một chút kiên nhẫn đối với các kho lưu trữ chính để nâng cấp nó.

Làm cho nó từ nguồn dễ dàng, hãy đọc tệp INSTALL khi bạn tải xuống gói nguồn, lưu ý rằng CentOS có thể đã di chuyển nơi tệp được cài đặt. (Sử dụng "rpm -ql subversion" để xem nơi các tập tin cũ được cài đặt).

Khi v1.5.0 được phát hành vào kho lưu trữ, bạn có thể xóa phiên bản đã cài đặt và cài đặt bằng yum như trước đây.

0

RPMForge là đã có trong /etc/yum.repos.d/ như rpmforge.repo, và nội dung là:

 
# Name: RPMforge RPM Repository for Red Hat Enterprise 5 - dag 
# URL: http://rpmforge.net/ 
[rpmforge] 
name = Red Hat Enterprise $releasever - RPMforge.net - dag 
#baseurl = http://apt.sw.be/redhat/el5/en/$basearch/dag 
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge 
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge 
enabled = 1 
protect = 0 
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag 
gpgcheck = 1 
priority=20 
0

Tôi có dòng chính xác trong trong /etc/apt/sources.list. d/rpmforge.list.

Khi tôi chạy check-update, tôi nhận được:

 
Loading "priorities" plugin 
Loading "fastestmirror" plugin 
Loading mirror speeds from cached hostfile 
* epel: mirror.unl.edu 
* rpmforge: fr2.rpmfind.net 
* base: mirrors.portafixe.com 
* updates: mirrors.portafixe.com 
* addons: mirrors.portafixe.com 
* extras: mirrors.portafixe.com 
2202 packages excluded due to repository priority protections 

bzip2.i386        1.0.3-4.el5_2   updates   
bzip2-devel.i386       1.0.3-4.el5_2   updates   
bzip2-libs.i386       1.0.3-4.el5_2   updates   
libxml2.i386        2.6.26-2.1.2.6   updates   
libxml2-devel.i386      2.6.26-2.1.2.6   updates   
libxml2-python.i386      2.6.26-2.1.2.6   updates   
perl.i386        4:5.8.8-15.el5_2.1  updates   
sos.noarch        1.7-9.2.el5_2.2  updates   
tzdata.noarch       2008e-1.el5   updates 

Tôi không quá quan tâm về các gói lỗi thời khác vào lúc này, nhưng khi bạn có thể thấy không có cập nhật Subversion có sẵn.

1

Tôi không quá bận tâm về các gói lỗi thời khác vào lúc này, nhưng như bạn có thể thấy không có bản cập nhật Subversion.

Cũng như bất kỳ gói nào từ rpmforge. Đó là cài đặt ưu tiên của bạn.Hãy thử tắt ưu tiên yum (thay đổi enabled=1 thành enabled=0 trong /etc/yum/pluginconf.d/priorities.conf) - sau đó nó sẽ hoạt động.

Vì vậy, tôi đoán câu hỏi tiếp theo là lý do tại sao mức độ ưu tiên là vặn nó lên .... Tôi không chắc chắn về điều này, mặc dù.

Chỉnh sửa: Xem 8jean's answer để biết thêm về các ưu tiên.

3

1.- nếu bạn đang sử dụng yum-ưu tiên vô hiệu hóa này tìm kiếm phiên bản mới nhất của trong file /etc/yum/pluginconf.d/priorities.conf

2. kiểm tra phiên bản lật đổ

$ rpm -qa|grep subversion 
    subversion-1.4.2-4.el5_3.1 
    subversion-1.4.2-4.el5_3.1 

3.- subversion từ kho rpmforge

$ yum --enablerepo=rpmforge check-update subversion 
subversion.x86_64  1.6.6-0.1.el5.rf   rpmforge 

4.- bây giờ hãy tiến hành nâng cấp subversion với rpmforge rep ository

$ yum shell 
>erase mod_dav_svn-1.4.2-4.el5_3.1 
>erase subversion-1.4.2-4.el5_3.1 
>install mod_dav_svn-1.6.6-0.1.el5.rf 
>install subversion-1.6.6-0.1.el5.rf.x86_64 
>run 

đó là tất cả những gì làm việc cho tôi centos chạy im 5.4

0

Tất cả bạn cần làm là có được kịch bản này. làm việc một cách hoàn hảo đối với tôi trên CentOS 5,3

http://wandisco.com/subversion/os/downloads

Không, tôi không làm việc ở đó hoặc có bất cứ liên kết gì-để-bao giờ hết ... chỉ cần tìm thấy nó và figured tôi sẽ để cho các bạn biết.

Chúc may mắn.

+0

Có lẽ đây phải là một bình luận thay thế? – cereallarceny

2

Cảm ơn Matt - chúng tôi cũng có bản phân phối duy nhất của SVN 1.7 trên SVN.

Bạn cũng có thể muốn thử uberSVN.