• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wszystko jest kodem programu? Rozważania o menedżerze oprogramowania w Linux

VPS Starter Arubacloud
+4 głosów
102 wizyt
pytanie zadane 6 lipca w Algorytmy przez overcq Pasjonat (21,960 p.)

Tło

Zastanawiam się nad działaniem menedżera oprogramowania (“portage”) w Gentoo Linux. Wiadomo, że oprogramowanie w tym systemie przeważnie jest budowane ze źródeł, a pliki “*.ebuild” zawierają informacje o poszczególnym oprogramowaniu w postaci rozszerzonego skryptu powłoki.

Problem

Podczas aktualizacji systemu występują notorycznie problemy z zależnościami, które blokują tę aktualizację z powodu niemożności jednoczesnej instalacji oprogramowania w różnych wersjach. Menedżer oprogramowania nie jest w stanie sobie poradzić. Do niektórych grup oprogramowania (np. modułów Perla) zostały utworzone osobne programy rozwiązujące te zależności, ale do innych nie.

Zastanawiam się nad tym, jak utworzyć lepszego menedżera oprogramowania.

Abstrakt

Opis pojedynczej paczki oprogramowania jest tworzony przez skrypt, który przekazuje wynikowe zmienne otoczenia oraz zawiera procedury uzupełniające/zastępujące poszczególne kroki budowania tego oprogramowania. Czyli jeśli nie wykonuje się budowania tego oprogramowania, to nie wiadomo, co należy zrobić w systemie, by je zainstalować. (Dodam tylko, że w celu ograniczenia pełnych możliwości robienia wszystkiego w systemie skrypt jest wykonywany jako użytkownik “portage”.)

Czy nie można by zrobić jakiegoś rodzaju bazy danych definicji:

  1. co ma być zainstalowane w systemie dla pojedynczej paczki oprogramowania
  2. jakie są zależności takiej pojedynczej paczki oprogramowania

Czyli miało by to formę danych opisu, a nie kodu programu, który może zrobić wszystko i wymaga sprawdzenia, czy nie robi czegoś nie chcianego przez użytkownika. Instalowane pliki byłyby tylko w obszarze przynależnym do pojedynczego oprogramowania.

No i nie byłoby wymagane uzgadnianie integralności pełnej bazy danych paczek dostępnych w systemie przez osoby zarządzające dystrybucją systemu, ponieważ jeśli jakiś program nie byłby zgodny z nową wersją zależnego oprogramowania, to w systemie pozostawałaby stara wersja do czasu aktualizacji przez autorów oprogramowania.

Wymagana byłaby tylko opieka nad poszczególnym oprogramowaniem niezależnie od jego wersji: oznaczanie w nim wersji, które dokonują jakichś zmian interfejsu zewnętrznego. A to mogliby robić nawet autorzy oprogramowania, gdy dokonywaliby oznaczania kolejnej wersji.

Kwestie końcowe

Jak to jest rozwiązane w innych dystrybucjach systemu Linux, w innych menedżerach pakietów? Występują te same problemy konieczności pełnej integralności wersji dostępnego do instalacji oprogramowania w systemie? A może ktoś coś napisze o menedżerach oprogramowania z innych systemów operacyjnych, które rozwiązują ten problem?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 188 wizyt
0 głosów
0 odpowiedzi 408 wizyt
pytanie zadane 21 sierpnia 2020 w Sprzęt komputerowy przez Tobic Nowicjusz (140 p.)
0 głosów
1 odpowiedź 167 wizyt

92,843 zapytań

141,784 odpowiedzi

320,859 komentarzy

62,177 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...