Standard/One Click Install

Da Wikipedia, l'enciclopedia libera.

One Click Install è un meccanismo di openSUSE per l'installazione semplificata del software. Obiettivo di One Click Install è permettere agli utenti inesperti di installare software in tutta facilità con pochi semplici passi, senza dover compilare nulla nè digitare complicati comandi da shell.

Questo standard è solo una bozza/proposta e non è opportuno da implementare in ambiente di deployment. Potrebbe essere soggetto a cambiamenti in qualunque momento.

Contents

Caso d'uso

  • Permettere all'utente di installare software da uno o più repository non presenti sul sistema

Scopi

  • Gli scopi comprendono l'automazione del processo di gestione pacchetti per l'aggiunta di repository e l'installazione di software
  • Gli scopi comprendono un'interfaccia utente completa di informazioni sufficienti a comprendere l'automazione del processo
  • Gli scopi non comprendono la gestione dei dettagli dei pacchetti, es. le dipendenze

Requisiti

  • L'azione deve essere avviata con un singolo click
  • Si dovrebbe poter avviare il processo attraverso una pagina web
  • Si dovrebbe poter avviare il processo attraverso un dispositivo fisico
  • Sicurezza (l'utente deve confermare l'aggiunta di sorgenti di installazione)
  • Si dovrebbe poter permettere il rilevamento automatico del tipo di repository
  • Si dovrebbe poter includere più mirror
  • Si dovrebbe poter includere più traduzioni dei testi
  • Si dovrebbe poter avere un bottone/file su cui fare click per installare il prodotto su più versioni della distribuzione
  • I file devono essere di piccole dimensioni per ottimizzare il download (es. traduzioni opzionali)
  • Dovrebbe essere possibile specificare come risolvere i conflitti comuni (es. compiz/beryl)

Dipendenze

  • Non esiste un modo adeguato per identificare univocamente i repository (URL, hash, ID)

Standard proposto

Specifiche

(add RelaxNG spec here)

Esempio

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           targetNamespace="http://opensuse.org/Standards/One_Click_Install" 
           xmlns:os="http://opensuse.org/Standards/One_Click_Install" 
           xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
          attributeFormDefault="unqualified">
	<xs:complexType name="softwareitem">
		<xs:sequence>
			<xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
			<xs:element name="summary" type="os:translatableString" minOccurs="1" maxOccurs="unbounded"/>
			<xs:element name="description" type="os:translatableString" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="type" type="xs:string" default="package"/>
		<xs:attribute name="recommended" type="xs:boolean" default="true"/>
                <xs:attribute name="architectures" type="xs:string" default="all"/>
                <xs:attribute name="action" type="xs:string" default="install"/>
	</xs:complexType>
	<xs:complexType name="repository">
		<xs:sequence>
			<xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
			<xs:element name="summary" type="os:translatableString" minOccurs="1" maxOccurs="unbounded"/>
			<xs:element name="description" type="os:translatableString" minOccurs="1" maxOccurs="unbounded"/>
			<xs:element name="url" type="os:mirrorableURL" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="recommended" type="xs:boolean" default="true"/>
		<xs:attribute name="format" type="xs:string" default="auto"/>
                <xs:attribute name="producturi" type="xs:string" default="/"/>
	</xs:complexType>
	<xs:complexType name="translatableString">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="lang" type="xs:string" />
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
		<xs:complexType name="mirrorableURL">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="score" type="xs:integer" default="10" />
				<xs:attribute name="location" type="xs:string"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="group">
		<xs:sequence>
			<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="summary" type="os:translatableString" minOccurs="0" maxOccurs="1"/>
			<xs:element name="description" type="os:translatableString" minOccurs="0" maxOccurs="1"/>
			<xs:element name="remainSubscribed" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
			<xs:element name="repositories">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="repository" minOccurs="0" maxOccurs="unbounded" type="os:repository"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="software">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="item" minOccurs="0" maxOccurs="unbounded" type="os:softwareitem"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="recommended" type="xs:boolean" default="true"/>
		<xs:attribute name="distversion" type="xs:string"/>
	</xs:complexType>
	
	<xs:element name="metapackage">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="group" type="os:group" minOccurs="1" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>

Sample instance:

<metapackage xmlns:os="http://opensuse.org/Standards/One_Click_Install" xmlns="http://opensuse.org/Standards/One_Click_Install">
	<group distversion="openSUSE Factory">
                <name>ymp name</name>
                <summary>ymp summary</summary>
                <description>ymp description, visible on elcome page</description>
		<repositories>
			<repository recommended="true" format="yast">
				<name>Main Repository</name>
				<summary>This is the main openSUSE catalogue</summary>
				<summary lang="en_US">This is the main openSUSE catalog</summary>
				<description>This is the main openSUSE package repository containing blah blah blah</description>
				<description lang="de">Insert German Here</description>
				<url>http://download.opensuse.org/distribution/SL-OSS-factory/inst-source</url>
				<url score="5" location="ie">http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/SL-OSS-factory/inst-source</url>
			</repository>
			<repository recommended="false">
				<name>Some Other Repo</name>
				<summary>Blah Blah</summary>
				<description>blah blah blah</description>
				<url>http://example.com</url>
			</repository>
		</repositories>
		<products>
			<product>
				<name>MyFavouritePackage</name>
				<summary>This is my favourite package</summary>
				<summary lang="en_US">This is my favorite package</summary>
				<description>Blah blah blah</description>
			</product>
			<product type="pattern">
				<name>SomePattern</name>
				<summary>Demo other resolveable</summary>
				<description>Blah blah blah</description>
			</product>
		</products>
	</group>
	<group distversion="openSUSE 10.2">
		<repositories>
			<repository>
				<name>Main Repository</name>
				<summary>This is the main openSUSE catalogue</summary>
				<description>This is the main openSUSE package repository containing blah blah blah</description>
				<url>http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/10.2/repo/oss/</url>
			</repository>
		</repositories>
		<software>
			<item>
				<name>MyFavouritePackage</name>
				<summary>This is my favourite package</summary>
				<summary lang="en_US">This is my favorite package</summary>
				<description>Blah blah blah</description>
			</item>
		</software>
	</group>
</metapackage>


Implementazioni

Una implementazione iniziale è stata introdotta in openSuse 10.3 Beta.

Vedi anche (su en.opensuse)