Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
То, что Вы пытаетесь сделать, должно заменить "базовый" пакет (тот, который содержится в репозитории CentOS) с более новым пакетом из "стороннего" репозитория (RPMForge), который является тем, что приоритетный плагин разработан для предотвращения.
репозиторий RPMForge содержит оба дополнительных пакета, не найденные в CentOS, а также более новых версиях базовых пакетов. К сожалению, yum
довольно глупо и будет всегда обновлять пакет к последней версии, которую он может найти в [1 111] любой репозиторий. Так выполнение" yum update
" с включенным RPMforge обновит половину Вашей системы с последним (новейший, возможно нестабильный и менее хорошо поддерживаемый) пакеты от RPMForge.
Поэтому рекомендуемый способ использовать repos как RPMForge состоит в том, чтобы использовать их только вместе со вкусным плагином как "приориты", который предотвращает пакеты от "высокого" приоритета repos для перезаписи тех от "низкого" приоритета repos (название "приоритетного" параметра является очень вводящим в заблуждение). Таким образом, Вы можете savely устанавливать дополнительный пакеты (которые не находятся в ядре) от RPMForge, который является тем, что хочет большинство людей.
Теперь к Вашему исходному вопросу...
, Если Вы хотите заменить базовый пакет, вещи становятся немного хитрыми. В основном у Вас есть две опции:
Удаление приоритетный плагин, и отключает репозиторий RPMForge по умолчанию (установите enabled = 0
в /etc/yum.repos.d/rpmforge.repo
). Можно тогда выборочно включить его на командной строке:
yum --enablerepo=rpmforge install subversion
установит последнюю подрывную деятельность и зависимости от RPMForge.
проблема с этим подходом состоит в том, что, если существует обновление пакета подрывной деятельности в RPMForge, Вы не будете видеть его, когда repo будет отключен. Чтобы усовершенствовать подрывную деятельность, необходимо не забыть работать
yum --enablerepo=rpmforge update subversion
время от времени.
вторая возможность состоит в том, чтобы использовать плагин приоритов, но вручную "замаскировать" базовый пакет подрывной деятельности (добавьте exclude=subversion
к [base]
и [update]
разделы в /etc/yum.repos.d/CentOS-Base.repo
).
Теперь конфетка будет вести себя, как будто нет никакого пакета, названного "подрывной деятельностью" в базовом репозитории, и счастливо установите последнюю версию от RPMForge. Плюс, Вы будете всегда получать последние обновления подрывной деятельности при выполнении yum update
.
Если Вы устанавливаете RPMForge repos, необходимо ли тогда быть в состоянии получить более новый пакет - это не работает на Вас?
необходимо видеть rpmforge.list в/etc/apt/sources.list.d со строкой как:
repomd http://apt.sw.be redhat/el$(VERSION)/en/$(ARCH)/dag
я просто протестировал на чистой установке CentOS 5, и yum check-update
шоу
subversion.i386 1.5.2-0.1.el5.rf rpmforge
subversion-perl.i386 1.5.2-0.1.el5.rf rpmforge
, Так проверьте свой исходный список и выполните обновление проверки снова.
Редактирование: Возгласы, потерянная часть моего ответа. Добавленный это назад выше.
я не чрезмерно обеспокоен другими устаревшими пакетами в данный момент, но поскольку Вы видите, что нет никакого доступного обновления Подрывной деятельности.
, Ни любые пакеты от rpmforge
. Это - Ваши приоритетные настройки. Попытайтесь отключить вкусные приоритеты (изменение enabled=1
к enabled=0
в /etc/yum/pluginconf.d/priorities.conf
) - тогда оно должно работать.
, Таким образом, я предполагаю, что следующий вопрос состоит в том, почему приоритет завинчивает его.... Я не уверен в этом, все же.
Редактирование: См. 8jean's ответ для больше о приоритетах.
до v 1.4.6 в репозитории Dag.
можно попробовать тот от repo Fedora или иметь немного терпения для основных репозиториев для обновления его.
Создание это из источника легко, считайте файл УСТАНОВКИ, когда Вы загружаете исходный пакет, принимаете во внимание, что CentOS, возможно, переместился, где файлы установлены. (Используйте "об/мин-ql подрывная деятельность" для наблюдения, где старые файлы были установлены на).
, Когда v1.5.0 выпущен в репозиторий, можно удалить созданную версию и установку с помощью конфетки как прежде.
RPMForge уже находится в/etc/yum.repos.d/как rpmforge.repo, и содержание:
# 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
У меня есть та точная строка в в/etc/apt/sources.list.d/rpmforge.list.
, Когда я выполняю обновление проверки, я добираюсь:
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
я не чрезмерно обеспокоен другими устаревшими пакетами в данный момент, но поскольку Вы видите, что нет никакого доступного обновления Подрывной деятельности.
1. - Если вы используете yum-приоритеты отключите это в файле /etc/yum/pluginconf.d/proirotes.conf
2.- Проверьте версию Subversion
$ rpm -qa|grep subversion
subversion-1.4.2-4.el5_3.1
subversion-1.4.2-4.el5_3.1
3.-- Поиск последней версии Subversion от Rpmforge Repository
$ yum --enablerepo=rpmforge check-update subversion
subversion.x86_64 1.6.6-0.1.el5.rf rpmforge
4. - Теперь процедуры обновления Subversion с репозиторий RPMFORGE
$ 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
, это все, что он работает для меня IM Runing Centos 5.4
Все, что вам нужно сделать, это получить этот скрипт. у меня отлично работал на CentOS 5.3
http://wandisco.com/subversion/os/downloads
Нет, я там не работаю и не имею никакого отношения к какой-либо связи ... только что нашел и решил, что дам вам знать, ребята.
Удачи.