PC-BSD PBI, quelles sont les raisons pour lesquelles il a été mis au rebut?

Quelles sont les raisons techniques / organisationnelles spécifiques spécifiques auxquelles l'équipe de PC-BSD a dû faire face pour finalement les amener à abandonner l'IBP et à returnner dans les ports?

Était-ce à cause des difficultés à comstackr et à emballer? Était-ce à cause de problèmes avec les liens durs qu'ils ont créés? Ou à cause de la quantité de travail pour collecter les dependencies et comstackr set?

Je suis curieux de savoir pourquoi la même équipe qui crée un logiciel (par exemple GNUCash ), prend le time et l'effort de fournir une version autonome pour Windows alors que le * NIX est laissé au compilateur / installateur.

Je ne request pas pourquoi les ports et les bibliothèques sont bonnes (mises à niveau de security faciles, …). Je ne request pas non plus des preferences ou des avis pour les packages contre Windows, seulement les raisons techniques qui ont conduit à la ferraille PBI. Je request précisément pourquoi l'itinéraire de PBI (0install, NixOS) n'est techniquement pas réalisable ou largement adopté.

Il y a en fait 3 bonnes raisons pour lesquelles le format de file PBI a été interrompu sur PC-BSD:

  1. Le format PBI a été créé pour fournir un format d'emballage pour FreeBSD (aucun système de packageage «réel» n'existait avant pkg – seulement la collection de ports).

    Une fois que pkg a finalement été développé / implémenté dans FreeBSD lui-même (9.2 / 10.0?), Il n'y avait presque aucune raison de maintenir un format concurrent parce que plus de gens consortingbueraient à fixer le package officiel de FreeBSD.

  2. Le format de file PBI était la cause # 1 des problèmes d'users sur PC-BSD.

La plupart des users de PC-BSD étaient des anciens users de Linux qui ne comprenaient pas le concept d'une scope d'application autonome / restreinte – donc quand l'application "A" ne pouvait pas find / lancer l'application "B" (car "A" un conteneur restreint) ils ont supposé un échec dans l'application / système. C'était aussi à ce moment-là que toutes les applications basées sur Linux évoluaient progressivement vers l'intégration au système (s'éloignant du concept d'application autonome), de sorte que de plus en plus d'applications ne fonctionneraient tout simplement pas dans un environnement restreint. Au moment où nous avons décidé de passer de PBI à pkg, il y avait seulement environ 200 applications sur FreeBSD que nous pouvions emballer / exécuter avec succès dans un conteneur PBI ressortingctif, alors qu'en passant au système pkg standardisé, nous avions un access instantané à tous les packages sur FreeBSD. Cela a également réduit le time système des développeurs car la communauté FreeBSD en général testait / réparait des applications au lieu d'avoir les deux développeurs de PC-BSD essayant de maintenir des versions séparées de tout.

  1. Problèmes techniques

Mis à part le système de conteneur général et les limitations / ressortingctions imposées, il y avait quelques autres bugs techniques qui nous ont simplement poussés à supprimer tout le format de file:

  • Temps de chargement

Commencer un PBI a pris ~ 30-45 secondes alors que pkg a pris ~ 2 secondes. Cela est principalement dû à l'initialisation des conteneurs et au chargement des bibliothèques dans le conteneur.

  • Compilation d'applications

Les PBI doivent être compilés avec un préfixe d'exécution différent de la normale (les applications sont supposées prendre en charge), mais le plus souvent les applications possèdent des paths / parameters codés en dur qui empêchent l'application de se développer correctement. Cela signifiait également que lorsque nous avons rencontré des problèmes lors de la création d'une application, nous n'avons jamais pu get de support des développeurs d'applications ou des porteurs FreeBSD car nous utilisions des parameters de construction différents.

  • Maintenance du développeur

Comme je l'ai mentionné plus tôt, le système PBI était extrêmement lourd d'entretien. Les systèmes de construction ont toujours été confrontés à des échecs étranges lors de la création d'applications (en raison du changement de préfixe d'exécution), puis lors de la construction d'une application, il a dû être chargé / testé manuellement par un développeur dans les problèmes de path), puis la méta-information pour l'application doit également être mise à jour / maintenue (nous conservons encore cette information supplémentaire en ce moment, mais nous la traitons comme une superposition d'informations supplémentaires au système pkg). Les deux applications ne fonctionnaient donc pas forcément car elles n'étaient pas embeddedes dans l'environnement du système de base, contrairement à la plupart des applications Linux.

Veuillez noter que même si le format de file PBI a été supprimé de PC-BSD, nous sums toujours dédiés à la compartimentation des applications. Nous nous sums plutôt concentrés sur l'utilisation de sous-systèmes FreeBSD préexistants (tels que le framework Jails) pour garantir des conteneurs d'exécution fiables / sécurisés, tandis que les applications «standard» que l'user installe fonctionneront normalement / de la même manière que sur les autres OS.

Je suppose que la réponse courte est que Linux / FreeBSD sont tout d'abord le operating system du server, où les bibliothèques autonomes et les installateurs d'interface graphique ne sont pas des fonctionnalités souhaitables. Les équipes qui travaillent sur des dissortingbutions orientées desktop ont des ressources limitées qui sont mieux dépensées pour améliorer la convivialité de l'interface graphique et le support matériel que d'écrire une alternative de gestionnaire de packages.

PBI peut être bon pour un usage de bureau, mais (IMO) ne sera jamais adopté par la dissortingbution offrant la fonctionnalité du server. Les programmes d'installation graphique et les anciennes bibliothèques avec des problèmes de security cachés dans les sous-dossiers ne sont pas ce que je veux dans un server.

L'argument est plus ou less le même pour 0install . Si je gère un server, je veux pouvoir installer / supprimer un programme particulier pour chaque user à la fois, et mettre à niveau une bibliothèque importante sans traquer ses copys.

Nix est une histoire différente, qui a le potentiel de se généraliser si elle s'avère stable, portable et dotée de fonctionnalités intéressantes. Il est difficile de discuter ici sans donner d'avis cependant.