AnglaisFrançaisEspagnol

Ad


Icône de favori OnWorks

ara - En ligne dans le Cloud

Exécutez ara dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande ara qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks à l'aide de l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


ara - un utilitaire pour faire des requêtes d'expressions régulières booléennes sur la base de données de paquets Debian

SYNOPSIS


Lot mode:
ara requête [options]

En mode batch, ara prend une ou plusieurs requêtes comme arguments, lit les fichiers de la base de données
selon sa configuration, et envoie les résultats à Stdout.

interactif mode:
ara [choix] -i

Avec la -i or -interactif options, ara lit les fichiers de la base de données, puis invite le
utilisateur pour des requêtes ou des commandes. Les résultats sont affichés (à l'aide d'un téléavertisseur tel que
PLUS or moins si nécessaire), et ara invite à nouveau l'utilisateur. Le mode interactif est fortement
recommandé, car le chargement des bases de données du package peut être long, mais une fois chargés, les requêtes s'exécutent
tres rapide. C'est un avantage majeur de ara sur des outils tels que dpkg-iasearch or
dpkg-dctrl.

Pour les raccourcis clavier, voir clé - KEY FIXATIONS.

Graphique interface (GTK2) :
Une interface graphique, Xara(1), est fourni par le paquet Debian xara-gtk.

Question syntaxe
Voir le EXEMPLES section pour une introduction rapide ; Xara a une aide intégrée. Les
la syntaxe est décrite en détail ci-dessous.

DESCRIPTION


ara ainsi que Xara permettre à l'utilisateur de rechercher dans la base de données des packages logiciels Debian (qui comprend
packages installés et désinstallés) à l'aide de requêtes puissantes constituées de combinaisons booléennes de
expressions régulières agissant sur des champs donnés par des motifs.

Par exemple, la requête section=utilitaires & dépend :(gtk or tk8 or xlibs or kde or gnome or qt)
& debian & paquet affichera les packages dans la section utils qui ont des graphiques
interfaces (car elles dépendent de toolkits graphiques ou de bibliothèques X11), et dont
la description contient les mots debian ainsi que paquet.

RAISONNEMENT


Les utilisateurs de Debian peuvent facilement installer des logiciels avec les commandes désélectionner or apt-get installer.
Ils peuvent choisir (sur Debian 3.1 instable) parmi plus de 30,000 XNUMX paquets. Trouver le bon
paquet peut être assez difficile. Bien que les colis soient classés en sections brutes,
il y a encore trop de packages et il est hors de question de lire toutes les descriptions.

Les fichiers de base de données sont énormes et leur syntaxe de type courrier les rend difficiles à rechercher.
des outils orientés ligne comme grep. Il existe des commandes telles que dpkg-iasearch(1) ou
dpkg-dctrl(1) mais leurs capacités sont limitées. Des outils de gestion de packages graphiques tels que
as aptitude or synaptique ont des capacités de recherche. Même si ara pouvoir appeler apte installer ou
supprimer des packages, son orientation est celle d'un puissant outil de recherche. En effet, le nom ara
vient de l'impératif du verbe turc recherche ce qui signifie "chercher".

LES DEBIAN RANGEMENT BASE DE DONNÉES


La base de données des paquets Debian est un énorme fichier texte à /var/lib/dpkg/disponible (ou un
collection de fichiers texte sous /var/lib/apt/lists/). Ces fichiers sont dans une boîte aux lettres
format, et une entrée typique ressemble à ceci :

Priorité : obligatoire
Rubrique : socle
Taille installée: 460
Origine : debian
Mainteneur : Dpkg Development[email protected]>
Bogues : debbugs://bugs.debian.org
Architecture : i386
Source : dpkg
Version: 1.10.24
Remplace : dpkg (<< 1.10.3)
Dépend : libc6 (>= 2.3.2.ds1-4), ....
Nom de fichier : pool/main/d/dpkg/dselect_1.10.24_i386.deb
Taille: 119586
MD5sum: c740f7f68dab08badf4f60b51a33500a
Description : un outil utilisateur pour gérer les paquets Debian
dselect est l'interface utilisateur principale pour l'installation, la suppression et
gestion des paquets Debian. C'est une interface pour dpkg.

Chaque package est ainsi décrit par un ensemble de champs (comme Package, Description, Version...).

QUERY SYNTAXE ET SÉMANTIQUE


Nous décrivons ici la syntaxe de la requête en détail. A partir de la version 1.0, ara présente de nouveaux,
syntaxe simplifiée qui est assez traditionnelle et devrait être familière à toute personne ayant utilisé
moteurs de recherche. Les termes de recherche sont simplement combinés avec ET, OR ainsi que ne pas opérateurs booléens.
En jetant un coup d'œil au EXEMPLES section à la fin de ce manuel devrait vous fournir une
point de départ.

Considérez l'ensemble D des descriptions de paquets Debian contenues dans le fichier
/var/lib/dpkg/disponible (ou dans les fichiers sous /var/lib/apt/lists/). Chaque description est un
ensemble de couples de la forme (f, v) De f ainsi que v sont des chaînes : f est le nom du champ
(à savoir, Emballage Papier, Description, Nom de fichier, Dépend, etc.); v est sa valeur. Ainsi D est un ensemble
d'ensemble de couples, formant l'univers. Les requêtes sélectionnent des sous-ensembles de l'univers D.
Les options de sortie sélectionnent les champs de la partie sélectionnée de l'univers à afficher, et
comment les afficher.

Requêtes
A question est une combinaison booléenne d'expressions atomiques. Un atomique expression sélectionne un
sous-ensemble de l'ensemble D de descriptifs. J'appelle cet ensemble le sens de l'expression ; si e
désigne une expression atomique, sa signification est désignée par [e]. La signification d'un booléen
combinaison d'expressions atomiques n'est que la combinaison booléenne de la signification de ses
constituants. En d'autres termes, si e1 ainsi que e2 sont des expressions atomiques, alors e1 & e2 est une
requête, dont le sens est l'intersection des sens de e1 ainsi que e2; et le sens de
e1 | e2 est l'union des sens de e1 ainsi que e2.

Atomique expressions
Les expressions atomiques peuvent être des formes modèle, /expression rationnelle/, chaîne_citée, spéc.champ
opérateur1 un magnifiqueou spéc.champ opérateur2 regexp.

Boolean opérateurs ainsi que des constantes
e1 & e2 (egalement e1 ET e2, e1 ainsi que e2)
Il s'agit d'une conjonction logique (ensemble d'intersection). Renvoie l'intersection de [e1]
et [e2], c'est-à-dire des packages satisfaisant à la fois e1 et e2.

e1 | e2 (egalement e1 OR e2, e1 or e2)
Il s'agit d'une disjonction logique (union d'ensembles). Union de [e1] et [e2], c'est-à-dire des packages
satisfaisant e1, e2 ou les deux.

!e1 (egalement ne pas e1, ne sauraient e1)
C'est la négation logique (complémentation d'ensembles). Complément de [e1], c'est-à-dire packages
ne satisfaisant pas e1.

Gardez à l'esprit que ~ représente le spécificateur de champ par défaut actuel et n'est pas un
alias pour l'opérateur de complémentation.

oui (egalement TOUTE)
L'ensemble de toutes les descriptions, c'est-à-dire tous les packages.

non (egalement rien)
L'ensemble vide, c'est-à-dire pas de packages.

Champ spécificateurs
Un spécificateur de champ spéc.champ est une liste de modèles de champs séparés par des virgules.

Les modèles de champ sont comme de simples modèles de shell et ils peuvent contenir des caractères étoiles (qui
signifie n'importe quoi) ou des points d'interrogation (qui représentent n'importe quel caractère). Elles sont
insensible à la casse. Ils spécifient un ensemble de champs.

Par exemple la description ainsi que Description spécifier l'ensemble des champs { Description }, tandis que
de* précise { La description, Dépend }.

Le spécificateur spécial ~ désigne le spécificateur par défaut actuel (voir ci-dessous).

Courant des champs spécificateurs ainsi que simplifié atomique expressions
La nécessité de répéter le spécificateur de champ peut compliquer la syntaxe ci-dessus. C'est pourquoi
Il y a un actuel champ spécificateur. Le champ courant spécifié est, par défaut,
Description, Paquet. Les expressions atomiques simplifiées sont simplement des mots ou un shell simplifié
expressions (qui n'ont pas besoin d'être entourées de guillemets doubles) et elles sont recherchées dans
champs dans le spécificateur de champ actuel. Ils peuvent être composés de lettres, de chiffres, de traits de soulignement,
tirets et points. Ils peuvent contenir des étoiles de points d'interrogation qui sont interprétés comme pour
des modèles de champ (c'est-à-dire sous forme d'expressions shell simplifiées). Si des guillemets doubles sont utilisés, d'autres
des caractères et des espaces peuvent être utilisés.

Le spécificateur de champ par défaut dans une requête question peut être changé en spéc.champ par simplement
préfixer la requête avec spéc.champ :. Cela donne spéc.champ:requête. Toutefois, si question is
complexe (c'est-à-dire qu'il contient des opérateurs booléens binaires) que vous devez inclure question in
parenthèses, comme dans fieldspec:(requête1 or requête2).

Chaîne littéraux
Chaîne littéraux peut être donné avec ou sans guillemets ; sans guillemets, le
la syntaxe est la même que pour les identifiants C, sauf que vous pouvez utiliser des tirets, vous devez commencer par un
lettre latine ([a-zA-Z]) et vous pouvez continuer avec des lettres latines, des chiffres décimaux ou
souligner ([a-zA-Z0-9_]). A l'intérieur des guillemets doubles, tous les caractères sont autorisés, sauf
guillemets doubles, qui doivent être précédés d'une barre oblique inverse.

Variables
Les résultats des requêtes peuvent être stockés dans des variables, qui peuvent être rappelées ultérieurement. Ce n'est pas
très utile en mode batch mais est utile en mode interactif et graphique.

Les noms de variables commencent par un dollar et suivent les conventions habituelles pour les variables, c'est-à-dire qu'elles
peut être n'importe quel mélange de caractères alphanumériques et de symboles tels que le trait de soulignement, le tiret, etc.

Les noms de variables sont sensibles à la casse afin que $Installé ainsi que $installé sont différents.

Pour affecter le résultat d'une requête (qui est un ensemble de packages) une variable nommée $ variable
il suffit d'exécuter la requête $ variable := question. Vous pouvez alors rappeler cet ensemble particulier en
écrire simplement $ variable.

Mise en situation : $installé := état :(installé & !pas installé)

Les opérateurs
Les opérateurs de comparaison hiérarchique peuvent être annulés en changeant la direction de l'angle
crochets et en ajoutant ou en supprimant un signe d'égalité à la fin (<= devient >). Autres opérateurs
sont annulés comme suit : = devient != ainsi que =~ devient !~.

spécchamp=chaîne
Expression atomique sélectionnant des packages ayant un champ dans spéc.champ ayant une valeur a
valeur exactement égale à un magnifique.

spéc.champ (fieldspec<=string, spécchamp>chaîne, spécchamp>=chaîne)
Expression atomique sélectionnant des packages ayant un champ dans spéc.champ dont la valeur est
strictement inférieur à un magnifique. L'ordre utilisé est l'ordre de version Debian. Cette
l'ordre est compatible avec l'ordre naturel sur les entiers et avec la version Debian
Nombres. Lors de la comparaison de chaînes ne contenant pas de caractères spéciaux, les lettres trient
avant les nombres, par opposition à l'ordre lexicographique ASCII auquel nous sommes habitués. Ça signifie
que les nombres hexadécimaux (comme les sommes MD5) n'auront pas leur ordre habituel.

Notez que un magnifique doit être à droite de l'opérateur (c'est-à-dire que vous ne pouvez pas écrire
1000 < Taille).

spécchamp=~/expression/ (egalement spécchamp:/expression/)
Sélectionne les descriptions dont le champ nommé spéc.champ existe et dont la valeur correspond,
sensible à la casse, l'expression régulière expression.

spécchamp=~/expression/je (egalement spécchamp :/expression/i)
Identique à ci-dessus, mais l'expression régulière est insensible à la casse.

spécchamp=~/expression/w (egalement spécchamp :/expression/w)
Identique à ci-dessus, mais l'expression régulière est sensible à la casse et ne correspond qu'à
limites des mots. Notez que les transitions lettre à chiffre ou chiffre à lettre sont
considérés comme des limites de mots.

spécchamp=~/expression/si (egalement spécchamp :/expression/iw)
L'expression régulière ici est insensible à la casse et correspond aux limites des mots.

Un coupage régulier expressions
Les expressions régulières sont données entre une paire de barres obliques ; la dernière barre oblique peut être suivie de
une séquence commutative de lettres désignant des drapeaux. La syntaxe des expressions régulières est semblable à sed :
les parenthèses de regroupement et l'alternance doivent être précédées d'une barre oblique inverse. Pour plus de détails, consultez le
Manuel Objective Caml chapitre sur le module Str. En bref (x,x1,x2 sont des méta-symboles
désignant des expressions régulières):

/./ N'importe quel caractère.

/toto/ Chaîne littérale toto.

/x1x2/ Enchaînement.

/x1\|x2/
Alternance.

\(x1\)*
Fermeture étoile.

[CD] Gamme de caractères.

\b Limites des mots.

/x/je Insensible à la casse.

/x/w Aux frontières des mots.

Remarque
La plupart des requêtes contiendront une quantité appréciable de métacaractères shell. Par exemple,
la disjonction logique est indiquée par le caractère pipe, qui est utilisé par tous les shells connus.
Le problème est aggravé par le fait que les noms de commandes réelles sont susceptibles d'apparaître dans
les expressions utilisées ; la mise en place réussie d'un pipeline UNIX par erreur est donc
plausible.

Lors de l'appel ara à partir de la ligne de commande en mode batch, vous êtes fortement invité à protéger
vos requêtes en les entourant de simples guillemets ; n'écris jamais quelque chose comme ara
Forfait*=~/arrêt|redémarrer|arrêt/ car cela va très probablement redémarrer votre système (et c'est
syntaxe d'expression régulière incorrecte, si arrêt or reboot or shutdown signifie : les tuyaux doivent être
barre oblique inverse). Au lieu de cela, il faut écrire ara 'Pack*=~/arrêt\|redémarrage\|arrêt /'

OPTIONS


Opération
-interactif, -i
Mode interactif ; demander une requête, l'afficher.

-config (aussi pour Xara)
Définir le nom du fichier de configuration (par défaut $HOME/.ara/ara.config).

-noconfig
N'essayez pas de créer un fichier de configuration.

-pas d'histoire
Ne pas enregistrer l'historique des commandes

d’aide Options
-Aide (aussi pour Xara)
Afficher de l'aide

-À propos Affichez le droit d'auteur, les remerciements et le dévouement.

-version, -À propos (aussi pour Xara)
Imprimer l'auteur, la licence, la version et la dédicace (et quitter si appelé depuis la CLI).

-exemples
Affichez de la documentation, y compris des exemples de sortie.

-q
Requête (par exemple, depend:xlibs & !package:xcalc).

-mettre en doute
Idem.

Options se rapportant à le terminal
-le progrès (-pas de progrès)
Afficher ou ne pas afficher l'indicateur de progression lors du chargement de la base de données.

-lignes
Réglez la hauteur du terminal pour l'affichage interactif. Par défaut, cela est tiré du
variable d'environnement LIGNES ou comme 25 s'il n'est pas défini.

-Colonnes
Définir la largeur du terminal pour l'affichage interactif. Par défaut, cela est tiré du
variable d'environnement COLONNES ou comme 25 s'il n'est pas défini.

- téléavertisseur (-pas de pager)
Utilisez (ou n'utilisez pas) un pager affichant une sortie longue en mode interactif. Le téléavertisseur
la commande est définie dans le fichier de configuration $HOME/.ara/ara.config. Par défaut
c'est /etc/alternatives/pageur. Le pager n'est utilisé que lorsque la taille de sortie
dépasse la hauteur du terminal.

-déboguer (aussi pour Xara)
Activer les informations de débogage

-niveau de débogage (aussi pour Xara)
Définir le niveau de débogage (plus élevé est plus détaillé, le maximum est de 100, la valeur par défaut est de 10)

Commande modes
-Nouveau Afficher uniquement la version la plus récente de chaque package.

-vieux Répertoriez toutes les versions des packages.

-court
Afficher les noms des packages satisfaisant la requête (et leur version si -vieux est défini), avec
plusieurs paquets par ligne.

-liste
Idem, mais affiche un nom de package par ligne et pas d'accolades (par défaut).

-cru
Pour chaque package satisfaisant la requête, affichez tous les champs sélectionnés.

-table
Afficher les résultats sous forme de tableau.

-pas de frontières
Ne dessinez pas de bordures ASCII pour une sortie tabulaire.

-limites
Dessinez des bordures ASCII pour une sortie tabulaire.

-compter
Afficher le nombre de packages correspondants.

-des champs
Limiter la sortie aux champs spécifiés. Les spécificateurs de largeur facultatifs sont utilisés avec le
-table option et ignoré sinon. Utilisez * pour afficher tous les champs (mais n'oubliez pas de
échapper au personnage vedette de votre shell).

-as Videz l'arbre de syntaxe abstraite des requêtes analysées dans stderr.

EXEMPLES


ara 'Section=utils'
Répertoriez le nom de chaque paquet dans la section utils.

ara 'Section=utils ainsi que !Dépend :(gnome|kde|gtk)'
... sauf ceux dont le champ de dépendance correspond à l'expression régulière gnome\|kde\|gtk

ara -liste 'Section=utils ainsi que Statut :(installé & !pas installé)'
Répertoriez tous les packages installés dans la section utils.

ara -court 'section=utils ainsi que !dépend:(gtk|gnome|kde) ainsi que priorité=optionnel'
... liste plusieurs noms par ligne et n'affiche que les packages facultatifs.

ara -court 'section=utils & (!dépend:(gtk|gnome|kde) | taille<100000) & priorité=optionnel'
Eh bien, excluez les trucs gtk, gnome ou kde uniquement si 100000 XNUMX octets ou plus.

ara -pas de frontières -des champs Paquet, taille, mainteneur : 20 -table \
-court 'section=utils & (!dépend:(gtk|gnome|kde) | taille<100000) & priorité=optionnel'

... afficher les champs Package, Size et Maintainer des résultats ci-dessus sous la forme d'un joli ascii
table, limitant le champ du responsable à 20 caractères, mais sans bordures ASCII brutes.

ara -vieux -des champs Paquet : 8, taille, description : 100 \
-table 'Section=jeux ainsi que ne sauraient (Dépend :(gtk|sdl|kde|opengl|gnome|qt)
or /shoot\|tuer\|détruire\|blast\|race\|bomb/iw
or /multi\(-\|\)joueur\|stratégie\|conquête\|3\(-\|\)d/iw)
ainsi que Dépend :(xlibs or VGA)
ainsi que Taille <= 1000000 '

En supposant un affichage à 125 colonnes, affichez les huit premiers caractères du nom du package, le
taille en octets, et les cent premiers caractères de la (première ligne) de la description de
tous les packages de la section jeux dont la taille n'excède pas un million d'octets, et
qui ne dépendent pas de trucs sophistiqués comme GTK, SDL, KDE, OpenGL, Qt ou Gnome, ne mentionnez pas
une certaine forme de violence (tirer, tuer, etc.) dans leur description, ne sont pas décrites
en multijoueur, stratégie, conquête ou en trois dimensions, et pourtant dépendent des xlibs
ou svga pour exclure les jeux sur console.

SPEED


ara lit toute la base de données en mémoire, puis traite les requêtes. Étant donné que la base de données est
généralement gros, cela prend un certain temps. Cependant, les requêtes s'exécutent alors assez rapidement. Alors précisez
plusieurs requêtes ou utilisez le -interactif possibilité d'amortir le coût de la lecture du
base de données.

Utilisez ara en ligne en utilisant les services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad