<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%A1%3A2015%3A%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82%3Arpmdb-alien-repos-sync</id>
	<title>КС:2015:Проект:rpmdb-alien-repos-sync - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%A1%3A2015%3A%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82%3Arpmdb-alien-repos-sync"/>
	<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=%D0%9A%D0%A1:2015:%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82:rpmdb-alien-repos-sync&amp;action=history"/>
	<updated>2026-06-06T12:29:09Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.wikicshse.ru/index.php?title=%D0%9A%D0%A1:2015:%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82:rpmdb-alien-repos-sync&amp;diff=1148&amp;oldid=prev</id>
		<title>imported&gt;Vyacovlev: Migrated current public revision from wiki.cs.hse.ru</title>
		<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=%D0%9A%D0%A1:2015:%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82:rpmdb-alien-repos-sync&amp;diff=1148&amp;oldid=prev"/>
		<updated>2015-10-19T10:58:34Z</updated>

		<summary type="html">&lt;p&gt;Migrated current public revision from wiki.cs.hse.ru&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;big&amp;gt;&amp;#039;&amp;#039;&amp;#039;ВНИМАНИЕ!&amp;#039;&amp;#039;&amp;#039; При реализации проекта настоятельно рекомендуется использовать отдельную инсталляцию Linux в виртуальной машине, &lt;br /&gt;
иначе вы рискуете получить &amp;#039;&amp;#039;&amp;#039;неработоспособную систему&amp;#039;&amp;#039;&amp;#039;!&lt;br /&gt;
&amp;lt;/big&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Метаданные ==&lt;br /&gt;
ID проекта: &amp;#039;&amp;#039;&amp;#039;rpmdb&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Презентация проекта: http://1drv.ms/1VmeBQ0&lt;br /&gt;
&lt;br /&gt;
Ментор проекта: Виктор Яковлев&lt;br /&gt;
&lt;br /&gt;
Аккаунты ментора в git-сервисах:&lt;br /&gt;
&lt;br /&gt;
* [http://GitHub.com GitHub.com]: victor-yacovlev&lt;br /&gt;
* [http://GitLab.com GitLab.com]: v-yacovlev&lt;br /&gt;
* [http://BitBucket.org BitBucket.org]: victor_yacovlev&lt;br /&gt;
&lt;br /&gt;
== Что это за проект ==&lt;br /&gt;
&lt;br /&gt;
=== Введение ===&lt;br /&gt;
Современные Linux-системы имеют встроенных пакетный менеджер (rpm или deb), который управляет установкой программного обеспечения и &lt;br /&gt;
обеспечивает его обновления (включая зависимости).&lt;br /&gt;
&lt;br /&gt;
Однако, многие программне системы имеют свои, альтернативные пакетные системы: pip для Python, gems для Ruby или npm для Node.js. &lt;br /&gt;
Изменения в установленное программное обеспечение, которые вносятся альтернативными пакетными менеджерами, никак не отражаются в &lt;br /&gt;
системном пакетном менеджере.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Пример коллизии&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip3 install numpy  &lt;br /&gt;
# Ok, установлен numpy для Python3&lt;br /&gt;
&lt;br /&gt;
sudo rpm -i python3-matplotlib.rpm  &lt;br /&gt;
# Ошибка! Matplotlib зависит от python3-numpy, который&lt;br /&gt;
# установлен через pip, но пакетный менеджер про него&lt;br /&gt;
# ничего не знает&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Что требуется ===&lt;br /&gt;
Реализовать инструмент для синхронизации базы данных установленных пакетов RPM с пакетными менеджерами:&lt;br /&gt;
&lt;br /&gt;
1. pip (Python2 и Python3)&lt;br /&gt;
&lt;br /&gt;
2. gem (Ruby)&lt;br /&gt;
&lt;br /&gt;
3. npm (Node.js)&lt;br /&gt;
&lt;br /&gt;
Синхронизация должна выполняться прозрачно для пользователя, то есть не требовать ввода отдельных команд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Чему вы научитесь ==&lt;br /&gt;
1. Познаете устройство механизмов установки и сопровождения ПО&lt;br /&gt;
&lt;br /&gt;
2. Работать с &amp;lt;code&amp;gt;inotify&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Начальные требования ==&lt;br /&gt;
1. Умение разрабатывать программы на C++ или Python&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания ==&lt;br /&gt;
&lt;br /&gt;
=== Первая контрольная точка (24 октября 2015 г.) ===&lt;br /&gt;
Необходимо иметь git-репозиторий с проектом, в который приглашен ментор. В репозитории должно быть:&lt;br /&gt;
* Файл README.md, который содержит описание проекта, написанный в расчета на &amp;quot;конечного пользователя&amp;quot;. Это описание должно быть написано &amp;#039;&amp;#039;&amp;#039;самостоятельно&amp;#039;&amp;#039;&amp;#039;, а не скопировано из Wiki, и отражать Ваше понимание того, что нужно сделать.&lt;br /&gt;
* Программу, которая генерирует корректный текстовый SPEC-файл, из которого можно собрать RPM-пакет с помощью команды rpmbuild.&lt;br /&gt;
* Для тех, кто реализует проект на C++, - проектный файл CMakeLists.txt.&lt;br /&gt;
&lt;br /&gt;
=== Вторая контрольная точка (14 ноября 2015 г.) ===&lt;br /&gt;
Реализован инструмент, который умеет вносить осмысленные изменения в базу данных RPM&lt;br /&gt;
&lt;br /&gt;
=== Итоговая оценка ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;4 балла&amp;#039;&amp;#039;&amp;#039;. Реализована программа, которая при явном запуске вносит изменения о пакетах pip в базу данных rpm&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;6 баллов&amp;#039;&amp;#039;&amp;#039;. Реализована работа с пакетными менеджерами gem и npm&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;8 баллов&amp;#039;&amp;#039;&amp;#039;. Реализован демон, который отслеживает изменения и вызывает инструмент для синхронизации&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+1 балл&amp;#039;&amp;#039;&amp;#039;. Демон оформлен в виде системной службы для systemd&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+2 балла&amp;#039;&amp;#039;&amp;#039;. Реализована синхронизация в обратную сторону, то есть по данным из rpm выполняется регистрация или удаление программ в&lt;br /&gt;
альтернативных пакетных менеджерах&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+1 балл&amp;#039;&amp;#039;&amp;#039;. Демон использует не более 10 обработчиков событий inotify&lt;/div&gt;</summary>
		<author><name>imported&gt;Vyacovlev</name></author>
	</entry>
</feed>