Начнем с того, что Ubuntu и openSUSE похожи на том, что они Linux, но имеют некоторые глубокие различия.
Что касается условий, которые вы хотите знать:
Чтобы идти дальше,
Репозиторий - это то, что вы можете настроить, это в основном база данных различных пакетов.
Пакет - это в основном не что иное, как список файлов и процедур / сценариев, которые нужно запустить. Это может быть что угодно, от загрузки и копирования нескольких файлов до огромных системных изменений. Это чаще всего используется для установки приложений (и обновления этих приложений).
Исходный код (на базовом уровне и не в кино!) это код, который скомпилирован для запуска приложений. Википедия дает лучшее объяснение. В основном, существуют пакеты, которые устанавливают исходный код в приложение, а не в само приложение.
Кроме того, так как некоторые сборки Linux значительно отличаются, приложение, работающее в одной, может не работать в другой. Чтобы бороться с этим, в некоторых местах предпочтительнее дать вам исходный код для компиляции, чем собирать его много раз для каждого релиза.