[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Utilisation de la commande gem, installation d'Asciidoctor-diagram sur Debian



Bonsoir,

Olivier, le 2018-05-24 :
> Quelles sont les étapes à suivre, précautions à prendre,
> spécifiques à Debian, pour installer et maintenir "proprement"
> un programme installé avec gem ?

À moins d'avoir besoin spécifiquement de travailler avec la
dernière version fournie par les dépôts de Ruby Gems, la
première chose à faire est de vérifier si ledit programme n'est
pas, par hasard, disponible dans le dépôt Debian :

	$ apt-cache search asciidoctor
	asciidoctor - AsciiDoc to HTML rendering for Ruby
	asciidoctor-doc - AsciiDoc to HTML rendering for Ruby (documentation)
	ruby-asciidoctor - AsciiDoc to HTML rendering for Ruby (core libraries)
	ruby-asciidoctor-plantuml - extension for Asciidoctor to enable support for PlantUML diagrams

et le cas échéant, de l'installer :

	# apt install asciidoctor

Cela vous permet de bénéficier immédiatement de la gestion des
dépendances apportée par apt et de conserver un système
cohérent.  Si un paquet contenant le programme A dépend de
asciidoctor, mais que vous avez installé via gem un asciidoctor
« trop moderne » par rapport à A, il se peut que ce dernier soit
appelé à la place de celui fourni par Debian, et provoque un
crash lors de l'exécution de A.

Ceci est valable pour tous les autres gestionnaires de paquets
associés aux langages modulaires, non seulement les Ruby Gems,
mais aussi les Python Eggs, les modules Perl distribués par
CPAN, les Crates Rust, les paquets installés via les source,
etc.

Bon, dans notre cas, c'est dommage, asciidoctor est bien
présent dans le dépôt Debian, mais asciidoctor-diagram n'est pas
fourni, lui.  :-(


> Est-il possible et conseillé d'opérer en tant que root pour
> l'installation.

C'est toujours mieux de ne pas opérer en tant que root, quand
c'est possible.  :-)

Opérer en tant que root est la manière de procéder par défaut,
et en tant qu'utilisateur, ça coince :

	$ gem install asciidoctor-diagram
	Fetching: asciidoctor-1.5.7.1.gem (100%)
	ERROR:  While executing gem ... (Gem::FilePermissionError)
	    You don't have write permissions for the /var/lib/gems/2.5.0 directory.

Si vous lancez cette commande en tant que root, l'installation
aura lieu dans /usr/local, donc théoriquement dans une
arborescence qui n'est pas gérée par Debian (via l'installation
de paquets), mais par vous, administrateur du système.

Toutefois, si vous voulez dédier l'application à un utilisateur
donné, vous pouvez installer le paquet dans son répertoire home
comme suit :

	$ gem install --user-install asciidoctor-diagram
	Fetching: asciidoctor-1.5.7.1.gem (100%)
	WARNING:  You don't have /home/asciidoctor/.gem/ruby/2.5.0/bin in your PATH,
	          gem executables will not run.
	Successfully installed asciidoctor-1.5.7.1
	Fetching: asciidoctor-diagram-1.5.9.gem (100%)
	Successfully installed asciidoctor-diagram-1.5.9
	Parsing documentation for asciidoctor-1.5.7.1
	Installing ri documentation for asciidoctor-1.5.7.1
	Parsing documentation for asciidoctor-diagram-1.5.9
	Installing ri documentation for asciidoctor-diagram-1.5.9
	Done installing documentation for asciidoctor, asciidoctor-diagram after 4 seconds
	2 gems installed

Comme indiqué par le message, il sera alors possible de lancer
asciidoctor soit en passant le chemin complet :

	$ /home/asciidoctor/.gem/ruby/2.5.0/bin/asciidoctor

soit en réglant votre path pour aller récupérer les exécutables
de ce répertoire bin/ :

	$ PATH="/home/asciidoctor/.gem/ruby/2.5.0/bin:$PATH"

À noter : le numéro de version dans le chemin est celui de la
commande gem.  Si vous la mettez à jour de sorte que le numéro
de version change, il faudra adapter votre path.

Quant au Gemfile et au bundle, il n'y aura pas de réglage
particulier à faire, ruby ira chercher directement dans ~/.gem/
ses dépendances :

	$ echo "gem 'asciidoctor-diagram'" > Gemfile
	$ bundle
	Resolving dependencies...
	Using asciidoctor 1.5.7.1
	Using asciidoctor-diagram 1.5.9
	Using bundler 1.16.1
	Bundle complete! 1 Gemfile dependency, 3 gems now installed.
	Use `bundle info [gemname]` to see where a bundled gem is installed.

La page de man de gem est très succincte, en contrepartie les
commandes associées à gem sont relativement détaillées dans
l'aide en ligne intégrée.  Vous pouvez consulter les sorties des
commandes suivantes pour en savoir plus :

	$ gem help
	$ gem help commands
	$ gem help install

En espérant que ça réponde à vos questions,
À plus,
-- 
Étienne Mollier <etienne.mollier@mailoo.org>


Reply to: