What are the 5 levels repo source? what's their function? why should differentiate them?
Позорно скопировано с centoshelp.org , [невозможно цитировать все содержимое]
Базовый репозиторий:
[Base]
— Пакеты, из которых состоит Centos, выпущенные на ISO. Он включен по умолчаниюРепозиторий обновлений:
[Updates]
– Обновлены пакеты до [Base], выпущенные после ISO-образов Centos. Это будет Security, BugFix или Enhancements to [Base] software. Он включен по умолчаниюДополнительно:
[Extras]
— Пакеты, созданные и поддерживаемые разработчиками Centos, которые добавляют функциональность к основному дистрибутиву. Эти пакеты прошли некоторое базовое тестирование, должны достаточно точно отслеживать версии исходных выпусков и никогда не заменят какой-либо пакет основного дистрибутива. Он включен по умолчаниюРепозиторий Centosplus:
[Centosplus]
— Пакеты, предоставленные разработчиками Centos и пользователями. Эти пакеты могут заменить пакеты rpm, включенные в основной дистрибутив. Вы должны понимать последствия включения и использования пакетов из этого репозитория. По умолчанию отключенРепозиторий вкладов:
[Contrib]
— Пакеты, предоставленные пользователями Centos, которые не пересекаются ни с одним из основных пакетов распространения. Эти пакеты не тестировались разработчиками Centos и могут не очень точно отслеживать выпуски основной ветки разработки. По умолчанию отключенWhy there is no contrib, if there is no it, what should I config for it, is it matter if I do not config?
Как видно из ответа выше, он не включен по умолчанию, потому что пакеты в этом репозитории не тестировались разработчиками CentOS. Так что вы можете использовать их на свой страх и риск.Вы можете включить его, просто изменив
0
на1
вместоenabled=0
.
Использование Raku (, ранее известного как Perl _6)
raku -e '.subst(",", " and ", :g).subst(".", " ", :g).comb(/ <( [ <:Lu> <:Ll>+ \h+ ]+ )> <:Ll>* /).map(*.trim-trailing).Bag.antipairs.join("\n").say for lines();'
Пример ввода:
Harvard archaeologists in Mexico also participated in the International School of American Archaeology and Ethnology in Mexico City with scholars from Mexico, Prussia and the United States.
Пример вывода (окончательный):
1 Ethnology
1 Prussia
2 Mexico
1 American Archaeology
1 Harvard
1 Mexico City
1 International School
1 United States
Интересный вопрос, и я решил решить его с помощью Raku, потому что считается, что он имеет довольно продвинутый механизм регулярных выражений (, более совершенный, чем PCRE, согласно ссылкам внизу ).
Начнем с того, что разобьем код Раку на три основных раздела. Раздел comb
использует средство сопоставления регулярных выражений для разбиения ввода текста на нужные элементы. Многие из символов могут быть вам уже знакомы (или знакомы по концепции ). Например, маркерами захвата в Raku являются <(…)>
. Только раздел comb
возвращает 8/9 ожидаемых значений, хотя одно возвращается лишь частично.
raku -e '.comb(/ <( [ <:Lu> <:Ll>+ \h+ ]+ )> <:Ll>* /).join("\n").say for lines();'
Пример вывода (попытка #1):
Harvard
Mexico
International School
American Archaeology
Ethnology
Mexico City
Prussia
United
Мы сразу видим, что нужно что-то делать с пунктуацией, потому что значение Mexico,
и частичное -значение States.
остаются позади. Вторая попытка:
raku -e '.subst(",", " and ", :g).subst(".", " ", :g).comb(/ <( [ <:Lu> <:Ll>+ \h+ ]+ )> <:Ll>* /).join("\n").say for lines();'
Пример вывода (попытка #2):
Harvard
Mexico
International School
American Archaeology
Ethnology
Mexico City
Mexico
Prussia
United States
Выше возвращаются 9/9 ожидаемых значений. В конце концов я решил заменить ,
запятых на and
и заменить .
точек на
пробелов. (Вам придется решить, как лучше всего поступить со своими сообщениями ).
Для достижения окончательных результатов наверху в код были вставлены вызовы .map(*.trim-trailing).Bag.antipairs
, которые дают желаемый результат.
https://slides.yowconference.com/yowwest2015/Conway-EverythingYouKnowAboutRegexesIsWrong.pdf
https://youtu.be/ubvSjW6Nyqk
https://raku.org