Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
« Debian » : différence entre les versions
| (13 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 74 : | Ligne 74 : | ||
== Les erreurs == | == Les erreurs == | ||
=== Créer les vignettes === | |||
Les vignettes peuvent être vu dans le navigateur, mais cela ne signifi pas pour autant qu'elles sont créer dans le répertoire ${pleade.images.preparees}. | |||
Pour créer les vignettes dans le répertoire ${pleade.images.preparees} : | |||
* la propriété ${pleade.images.preparees.copier} doit avoir la valeur true; | |||
* le répertoire ${pleade.images.preparees} doit avoir des permissions en écriture. | |||
Les vignettes sont créées lors de la visualisation d'un document EAD. Le processus de création d'une vignette implique que le chemin de répertoires de l'image originale soit créer dans le répertoire ${pleade.images.preparees}. Ceci sous-entends que le masque umask du propriétaire du répertoire ${pleade.images.preparees} permettent la lecture et l'écriture des vignettes : | |||
<syntaxhighlight lang="bash"> | |||
$ cd /usr/local/docs/pleade-social-media/ | |||
# chown -R pleade:pleade images-preparees | |||
# su pleade | |||
$ chmod -R 766 images-preparees | |||
$ nano ~/.profile | |||
* Modifier le umask avec la valeur 011 | |||
$ source ~/.profile | |||
$ umask | |||
0011 | |||
</syntaxhighlight> | |||
=== Publier des documents EAD === | === Publier des documents EAD === | ||
| Ligne 81 : | Ligne 106 : | ||
Le paramètre pleade.ead-docs-dir définit dans le fichier {{path|pleade-libre/src/webapp/WEB-INF/properties/pleade-admin.properties}} n'a pas une valeur correcte. | Le paramètre pleade.ead-docs-dir définit dans le fichier {{path|pleade-libre/src/webapp/WEB-INF/properties/pleade-admin.properties}} n'a pas une valeur correcte. | ||
L'identifiant spécifié pour l'objet « fr.gouv.culture.sdx.document.XMLDocument@1fa17f0 » n'est pas valide ! Il est nul ou vide. | |||
=== Les erreurs EAD : les documents === | === Les erreurs EAD : les documents === | ||
| Ligne 197 : | Ligne 224 : | ||
Si Postgresql n'est pas installé, | Si Postgresql n'est pas installé, | ||
alors faire la modification suivante dans le fichier /usr/local/workspace-2.0/tomcat/webapps/pleade-entreprise/WEB-INF/properties/pleade-admin.properties : | alors faire la modification suivante dans le fichier {{path|/usr/local/workspace-2.0/tomcat/webapps/pleade-entreprise/WEB-INF/properties/pleade-admin.properties}} : | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Ligne 207 : | Ligne 234 : | ||
Ainsi, c'est la base HSQL qui sera mise en oeuvre. | Ainsi, c'est la base HSQL qui sera mise en oeuvre. | ||
Les logs catalina.out retournent les lignes suivantes : | Les logs {{path|catalina.out}} retournent les lignes suivantes : | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Ligne 218 : | Ligne 245 : | ||
en construisant une de ces applications et vérifiant si elles fonctionnent. | en construisant une de ces applications et vérifiant si elles fonctionnent. | ||
<syntaxhighlight lang="bash"> | |||
ant stop clean build.pleade-libre start | ant stop clean build.pleade-libre start | ||
ant stop clean build.pleade-entreprise start | ant stop clean build.pleade-entreprise start | ||
ant stop clean build.pleade-social-media start | ant stop clean build.pleade-social-media start | ||
</syntaxhighlight> | |||
=== Les locks === | === Les locks === | ||
| Ligne 251 : | Ligne 280 : | ||
=== En console === | === En console === | ||
On décommente les lignes suivantes dans le fichier /etc/zsh/zlogin : | On décommente les lignes suivantes dans le fichier {{path|/etc/zsh/zlogin}} : | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Ligne 306 : | Ligne 335 : | ||
== Svn == | == Svn == | ||
=== Apporter des modifications à une copie de travail === | |||
Voici un aperçu des cinq sous-commandes Subversion les plus utilisées pour faire des modifications sur l'arborescence : | |||
Marquer le fichier, le répertoire ou le lien symbolique truc pour ajout : | |||
$ svn add truc | |||
Lors de la prochaine propagation, truc devient un fils de son répertoire parent. Notez que si truc est un répertoire, tout ce qui se trouve à l'intérieur de truc est marqué pour ajout. | |||
Pour ajouter truc uniquement : | |||
$ svn add truc --depth empty | |||
Marquer le fichier, le répertoire ou le lien symbolique truc pour suppression : | |||
$ svn delete truc | |||
Quand vous propagez vos modifications, truc est complètement supprimé de votre copie de travail et du dépôt. | |||
=== Les mots-clés === | |||
* svn : logiciel de gestion de versions. Un logiciel de gestion de versions permet l'édition collaborative et le partage de données. | |||
* dépôt : serveur de fichiers, lieu de stockage central des données. | |||
* stratégies de gestion : modèle verrouiller-modifier-libérer ou modèle copier-modifier-fusionner | |||
* verrou (lock) : permet de bloquer l'accès à un fichier du dépôt. | |||
* fichier périmé (out of date) : copie de travail d'un fichier plus ancienne que sa version sur le dépôt. | |||
* fichier fusionné, fusion : fichier du dépôt résultant de la fusion de deux copies de travail de ce fichier. | |||
* état de conflit, conflit : situation caractérisée par l'impossibilité d'une fusion. | |||
* répertoire administratif : répertoire .svn | |||
* extraire (check out) : crée une copie de travail à partir d'un dépôt. | |||
* propagation (commit ou check in, et parfois en français, archivage ou livraison) : action de publication de fichiers d'une copie de travail dans le dépôt. | |||
* mise à jour (update) : mise à jour d'une copie de travail, | |||
* révision : état de l'arborescence du système de fichiers du dépôt. La révision N représente l'état du système de fichiers du dépôt après la N-ième propagation. | |||
* révision de travail : la révision sur laquelle un fichier de travail est basé. | |||
* révisions mixtes : copie de travail contenant des fichiers et des répertoires avec un mélange de différents numéros de révision. | |||
=== La version de svn === | === La version de svn === | ||
| Ligne 387 : | Ligne 456 : | ||
=== Création d'un nouveau projet === | === Création d'un nouveau projet === | ||
==== Projet déjà existant au sein d'un dépôt ==== | ==== Projet déjà existant au sein d'un dépôt ==== | ||
| Ligne 406 : | Ligne 476 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Les sources du répertoire trunk sont appelées copie de travail. Le résultat de la commande indique la liste des fichiers récupérés et le numéro de la dernière révision, soit 24507. L'option info de la commande svn fournit des informations supplémentaires : | Les sources du répertoire {{path|trunk}} sont appelées copie de travail. Le résultat de la commande indique la liste des fichiers récupérés et le numéro de la dernière révision, soit 24507. La copie de travail se trouve dans le répertoire dont le nom est la dernière sous-chaîne de {{path|svn+ssh://groche@192.168.123.16/home/svn/pleade-libre/trunk}} après le dernier caractère "/". | ||
L'option info de la commande svn fournit des informations supplémentaires : | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
$ cd trunk/ | $ cd trunk/ | ||
$ svn info | $ svn info | ||
Chemin : . | |||
URL : svn+ssh://groche@192.168.123.16/home/svn/pleade-libre/trunk | |||
Racine du | Racine du dépôt : svn+ssh://groche@192.168.123.16/home/svn | ||
UUID du | UUID du dépôt : 821c4372-602f-458a-929c-9a67f14f9944 | ||
Révision : 24507 | |||
Type de | Type de nœud : répertoire | ||
Tâche | Tâche programmée : normale | ||
Auteur de la dernière | Auteur de la dernière modification : jlarvers | ||
Révision de la dernière | Révision de la dernière modification : 24504 | ||
Date de la dernière modification: 2013-05-23 07:45:13 +0200 (jeu. 23 mai 2013) | Date de la dernière modification: 2013-05-23 07:45:13 +0200 (jeu. 23 mai 2013) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Pour créer une copie de travail dans le répertoire {{path|workspace/pleade-libre}} : | |||
<syntaxhighlight lang="bash"> | |||
$ cd /usr/local/workspace | |||
$ svn co svn+ssh://groche@192.168.123.16/home/svn/pleade-libre/trunk pleade-libre | |||
$ ls pleade-libre/ | |||
ant.bat build.xml changes-v3.txt legal output pleade.properties README.PARAMETERS | |||
ant.sh ChangeLog.csv jsdoc-toolkit lib pleade-image README src | |||
</syntaxhighlight> | |||
==== La mise en cache du mot de passe ==== | |||
Ne fonctionne pas. | |||
svn --username groche --password jpkvid5h co svn+ssh://192.168.123.16/home/svn/pleade-libre/trunk pleade-libre | |||
Beaucoup de serveurs sont configurés pour demander une authentification à chaque requête. | |||
Pour désactiver la mise en cache du mot de passe pour un appel donné d'une commande particulière, passez l'option --no-auth-cache sur la ligne de commande : | |||
$ svn commit -F log_msg.txt --no-auth-cache | |||
Pour désactiver de façon permanente la mise en cache, vous pouvez ajouter la ligne store-passwords = no à votre fichier de configuration Subversion sur votre machine locale. | |||
touch ~/.subversion/auth/config | |||
chmod 600 ~/.subversion/auth/config | |||
[auth] | |||
store-auth-creds = yes | |||
==== Import d'un projet déjà existant en local : import ==== | ==== Import d'un projet déjà existant en local : import ==== | ||
| Ligne 472 : | Ligne 574 : | ||
tmp.txt | tmp.txt | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Récupération de la dernière version d'un projet : update === | === Récupération de la dernière version d'un projet : update === | ||
| Ligne 653 : | Ligne 754 : | ||
property 'svn:ignore' set on '.' | property 'svn:ignore' set on '.' | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Sous Eclipse, on peut définir {{cmd|svn:ignore}} pour un répertoire ou fichier donné : | |||
Click droit sur le répertoire ou le fichier >> Team >> Add to svn:ignore. | |||
L'icône en forme de cylindre jaune à côté de l'icône du répertoire ou du fichier disparaît. | |||
Cependant, si le fichier a déjà été commité vers le dépôt, alors cette option n'est plus disponible. | |||
On devra alors nécessairement le supprimer du dépôt, puis nettoyer la copie de travail. | |||
On pourra ainsi ajouter le drapeau {{cmd|svn:ignore}}. | |||
Une autre utilisation intéressante concerne l'utilisation de mots-clés. Ceux-ci sont des identifiants insérés dans les fichiers du projet et qui seront remplacés au moment du commit par des informations propres à Subversion, comme le nom du fichier, le numéro de révision, l'auteur et la date de la dernière modification, etc. | Une autre utilisation intéressante concerne l'utilisation de mots-clés. Ceux-ci sont des identifiants insérés dans les fichiers du projet et qui seront remplacés au moment du commit par des informations propres à Subversion, comme le nom du fichier, le numéro de révision, l'auteur et la date de la dernière modification, etc. | ||
| Ligne 961 : | Ligne 1 074 : | ||
# visudo -c | # visudo -c | ||
/etc/sudoers: parsed OK | /etc/sudoers: parsed OK | ||
</syntaxhighlight> | |||
Lorsqu'un utilisateur souhaite utiliser la commande sudo sans en avoir la permission, | |||
on obtient un message tel que : | |||
<syntaxhighlight lang="bash"> | |||
$ sudo rmdir repertoire | |||
We trust you have received the usual lecture from the local System | |||
Administrator. It usually boils down to these three things: | |||
#1) Respect the privacy of others. | |||
#2) Think before you type. | |||
#3) With great power comes great responsibility. | |||
[sudo] password for user: | |||
user is not in the sudoers file. This incident will be reported. | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| Ligne 980 : | Ligne 1 110 : | ||
Source : [http://wiki.debian.org/fr/sudo Root sudo] | Source : [http://wiki.debian.org/fr/sudo Root sudo] | ||
=== Configuration de la commande sudo : PATH not set === | |||
Certaines commandes ne sont pas disponibles dans le PATH de l'utilisateur : | |||
<syntaxhighlight lang="bash"> | |||
# cd /usr/sbin | |||
# touch test.sh | |||
# echo "#!/bin/bash" > test.sh | |||
# echo '#!/bin/bash' > test.sh | |||
# echo 'echo "ok"' >> test.sh | |||
# chmod 744 test.sh | |||
$ sudo test.sh | |||
sudo: test.sh: command not found | |||
</syntaxhighlight> | |||
On peut ajouter un chemin : | |||
<syntaxhighlight lang="bash"> | |||
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash"> | |||
# visudo -c | |||
# visudo -c | |||
/etc/sudoers: parsed OK | |||
/etc/sudoers.d/README: parsed OK | |||
$ sudo test.sh | |||
ok | |||
</syntaxhighlight> | |||
== NAS == | == NAS == | ||
Dernière version du 30 mai 2013 à 10:40
Pleade Social Média en démonstration
[modifier | modifier le wikicode]TODO : Le fichier de mots de passes : internals/pleade-social-media.asc
La démonstration disponible sur houat2 : http://pleade-social-media.ajlsm.com.
sFTP avec Filezilla :
- Hôte : 94.23.193.135
- Type d'identification : normale.
- Identifiant : ajlsm
- Mot de passe : voir fichier internals/pleade-social-media.asc
L'application Web doit être dans le répertoire /home/www/pleade-social-media/webapp.
Le fichier de configuration Apache pour le projet pleade-social-media /etc/httpd/conf.d/pleade-social-media.ajlsm.com.conf :
<VirtualHost *:80>
ServerName pleade-social-media.ajlsm.com
#DocumentRoot "/var/www/maintenance"
#Activation page de maintenance
#Alias /maintenance.html /home/www/ad52/maintenance.html
RewriteCond %{REQUEST_URI} !maintenance.html
#RewriteCond %{REMOTE_ADDR} !82.225.177.85
ProxyPass / ajp://localhost:8009/pleade-social-media/
ProxyPassReverse / ajp://localhost:8009/pleade-social-media/
#RewriteRule ^/(.*) http://94.23.193.135/maintenance.html [L]
</VirtualHost>
Social Média TODO
[modifier | modifier le wikicode]image : vignette, peut faire jusqu'à 3Mo
EAD dc
title : unittitle dc:title../reseaux/images/
date : unitdate dc:terms coverage (temps ou lieu)
content : scopecontent ???
Applications utiles
[modifier | modifier le wikicode]ed : éditeur
Meld : comparaison d'arborescences de fichiers.
apt-get install meld
A voir :
- zsh
- rssh
- sshfs
- gprename
- grsync
- unisson
- polly-twitter
- debian-goodies
Les erreurs
[modifier | modifier le wikicode]Créer les vignettes
[modifier | modifier le wikicode]Les vignettes peuvent être vu dans le navigateur, mais cela ne signifi pas pour autant qu'elles sont créer dans le répertoire ${pleade.images.preparees}.
Pour créer les vignettes dans le répertoire ${pleade.images.preparees} :
- la propriété ${pleade.images.preparees.copier} doit avoir la valeur true;
- le répertoire ${pleade.images.preparees} doit avoir des permissions en écriture.
Les vignettes sont créées lors de la visualisation d'un document EAD. Le processus de création d'une vignette implique que le chemin de répertoires de l'image originale soit créer dans le répertoire ${pleade.images.preparees}. Ceci sous-entends que le masque umask du propriétaire du répertoire ${pleade.images.preparees} permettent la lecture et l'écriture des vignettes :
$ cd /usr/local/docs/pleade-social-media/
# chown -R pleade:pleade images-preparees
# su pleade
$ chmod -R 766 images-preparees
$ nano ~/.profile
* Modifier le umask avec la valeur 011
$ source ~/.profile
$ umask
0011
Publier des documents EAD
[modifier | modifier le wikicode]La liste déroulant contenant des documents EAD n'existe pas.
Le paramètre pleade.ead-docs-dir définit dans le fichier pleade-libre/src/webapp/WEB-INF/properties/pleade-admin.properties n'a pas une valeur correcte.
L'identifiant spécifié pour l'objet « fr.gouv.culture.sdx.document.XMLDocument@1fa17f0 » n'est pas valide ! Il est nul ou vide.
Les erreurs EAD : les documents
[modifier | modifier le wikicode]Avec la valeur <property name="pleade.ead-docs-dir" value="${basedir}/pleade-social-media/src/webapp/exemples/social-media"/>
Pour les documents d'exemples suivants :
$ tree exemple
exemples/
└── social-media
├── AJLSM_TEST_IMG.xml
├── docs
│ ├── DVD-1.pdf
| ...
├── frajlsm-pleade-test-01-cn.xml
├── frajlsm-pleade-test-01-fr.xml
├── frajlsm-pleade-test-02-cn.xml
├── frajlsm-pleade-test-02-fr.xml
├── frajlsm-pleade-test-img-cn.xml
├── frajlsm-pleade-test-img-fr.xml
└── images-test
├── images
│ ├── FRAD044_E_002_015_001.JPG
│ ├── FRAD044_E_002_015_002.JPG
│ ├── FRDAF_esclavage_image002.JPG
│ └── FRDAF_esclavage_image003.JPG
├── minutes-notariales
| ...
├── series
│ └── serie-01
│ └── pleade01.jpg
├── SS_Y_445
│ ├── SHDMV__MV_SS_Y_445__0001__T.JPG
│ ...
└── vieux_velos.jpg
Les documents EAD sont en dehors du cadre de classement :
File plan
Inventories of research published on this site are organized with the help of a file plan. You can access to the documents browsing the above file plan.
Document de test pour les images dans Pleade 3.4 • 2003-2011New...
Document EAD de test pour PLEADENew...
Document test - Les liens vers les séries d'images • 1898-1923New...
Pleade 3.4 图像测试文档 • 2003-2011New...
PLEADE - EAD测试文档New...
PLEADE 的第二个EAD测试文档New...
Second document EAD de test pour PLEADENew...
Documents d'exemple
...
Les erreurs EAD : les médias
[modifier | modifier le wikicode]Erreur de lien vers une image ou une série d'images.
Modifier les lignes suivantes dans le fichier /usr/local/workspace-spe/dev/xml/applications.xml :
L'application Pleade Social Média contient des exemples de document EAD dans le répertoire pleade-media-social/src/webapp/exemples/social-media. Aussi les images des documents EAD sont dans le répertoire pleade-media-social/src/webapp/exemples/social-media/images-test.
Dans un document EAD, l'attribut href d'un élément pointant vers une image doit être pris en compte. Par exemple, pour la valeur d'attribut href="images_test/vieux_velos.jpg", l'image vieux_velos.jpg doit être dans le répertoire pleade-media-social/src/webapp/exemples/social-media/images-test
Ainsi, l'élément suivant causera une erreur Erreur de lien vers une image ou une série d'images. <daoloc title="De vieux vélos !" href="images_test/vieux_velos.jpg" />
<property name="pleade.img-server.racines" value="${basedir}/pleade-social-media/src/webapp/exemples/social-media:${basedir}/pleade-social-media/src/webapp/exemples/social-media/images-test"/>
<sedpropertyfile file="app/build/pleade-libre/src/webapp/WEB-INF/properties/pleade-admin.properties"
property="pleade.img-server.racines" value="{$pleade.img-server.racines}" />
TODO Pour les vidéos, les mp3, ...
http://pitcairn/functions/ead/relative/ file:/usr/local/workspace-spe/pleade-social-media/src/webapp/exemples/social-media/docs/test.flv
Les erreurs SDX
[modifier | modifier le wikicode]SDX - Application - Base de documents : « ead », base de document indéfinie pour cette application : « org.pleade3.demo ».
Il faut supprimer les répertoires datadir; temp et works.
Les erreurs Java
[modifier | modifier le wikicode]Suite à une publication, l'interface de Pleade indique :
java.lang.NullPointerException
Vérifier que le nom de la station de travail est correcte :
$ hostname
pitcairn
Vérifier que Postgresql est installé :
$ psql --version
psql (PostgreSQL) 9.1.9
Si Postgresql n'est pas installé, alors faire la modification suivante dans le fichier /usr/local/workspace-2.0/tomcat/webapps/pleade-entreprise/WEB-INF/properties/pleade-admin.properties :
pleade.sdx-database=
pleade.sdx-ead-repository=
pleade.sdx-eac-repository=
Ainsi, c'est la base HSQL qui sera mise en oeuvre.
Les logs catalina.out retournent les lignes suivantes :
resolving entity
java.lang.NullPointerException
at org.apache.cocoon.www.module_eadeac.xsp.ead_publish_xsp.generate(org.apache.cocoon.www.module_eadeac.xsp.ead_publish_xsp:1447)
On peut vérifier si l'erreur est causée par Pleade libre, Pleade entreprise ou Pleade Social Media, en construisant une de ces applications et vérifiant si elles fonctionnent.
ant stop clean build.pleade-libre start
ant stop clean build.pleade-entreprise start
ant stop clean build.pleade-social-media start
Les locks
[modifier | modifier le wikicode]Résultat de publication
test: Ils existent des verrous sur les index. Vérifier qu'une publication ou un moissonnage OAI n'est pas en cours.
Origine possible de l'erreur :
- manque de ressource : par exemple accès au disque dur ou garbage collector saturé;
- il existe une autre publication en cours;
- il existe un lock, concrétisé par un fichier build/exe/module-eadeac/datadir/*.lck, définit par la configuration.
Dans les logs :
Error lockfile: context://module-eadeac/datadir/pleade_index.lck
- Tue Mar 05 09:31:28 CET 2013 **
Pour sortir de ce cas de figure :
- dans un premier temps, on supprime le fichier de lock pleade_index.lck puis on vérifie à chaud si ce lock était bien à l'origine de l'erreur;
- dans un second temps, on arrête Apache Tomcat, puis on supprime les répertoires build/exe/module-eadeac/datadir, ainsi que les sous-répertoires temp et work du répertoire $TOMCAT_HOME/webapps;
- on redémarre Apache Tomcat.
Allumer le verrouillage numérique
[modifier | modifier le wikicode]En console
[modifier | modifier le wikicode]On décommente les lignes suivantes dans le fichier /etc/zsh/zlogin :
# Pour les ordinateurs avec un pavé numérique...
# Active le pavé numérique quand on se logue en console
case "`tty`" in /dev/tty[1-6]*)-
setleds +num
esac
Sous X
[modifier | modifier le wikicode]On installe le paquet numlockx :
# apt-get install numlockx
Si lors de l'installation du paquet, apt-get vous demande Enable NumLock automatically ? : répondez Oui.
Si on utilise GDM, il faut ajouter le script de lancement de numlockx au script de lancement de GDM :
# more /etc/X11/Xsession.d/55numlockx >> /etc/gdm3/PreSession/Default
Enfin, on redémarre GDM.
gnome-terminal
[modifier | modifier le wikicode]gnome-terminal --geometry 128x34+42-66
gnome-terminal --tab-with-profile=transparent -x bash -c "read-cocoon-date-logs.sh"
gnome-terminal --geometry 128x34+42-66 --tab-with-profile="t" --title=cocoon-date-logs -e cocoon-date-logs.sh --tab-with-profile="t" --title=cocoon-logs -e cocoon-logs.sh
Version
[modifier | modifier le wikicode]Pour connaitre le numéro de version de Debian sur un poste :
$ cat /etc/debian_version
7.0
$ cat /etc/issue
Debian GNU/Linux 7.0 \n \l
Pour faire le lien avec le nom de la version :
Svn
[modifier | modifier le wikicode]Apporter des modifications à une copie de travail
[modifier | modifier le wikicode]Voici un aperçu des cinq sous-commandes Subversion les plus utilisées pour faire des modifications sur l'arborescence :
Marquer le fichier, le répertoire ou le lien symbolique truc pour ajout :
$ svn add truc
Lors de la prochaine propagation, truc devient un fils de son répertoire parent. Notez que si truc est un répertoire, tout ce qui se trouve à l'intérieur de truc est marqué pour ajout.
Pour ajouter truc uniquement :
$ svn add truc --depth empty
Marquer le fichier, le répertoire ou le lien symbolique truc pour suppression :
$ svn delete truc
Quand vous propagez vos modifications, truc est complètement supprimé de votre copie de travail et du dépôt.
Les mots-clés
[modifier | modifier le wikicode]- svn : logiciel de gestion de versions. Un logiciel de gestion de versions permet l'édition collaborative et le partage de données.
- dépôt : serveur de fichiers, lieu de stockage central des données.
- stratégies de gestion : modèle verrouiller-modifier-libérer ou modèle copier-modifier-fusionner
- verrou (lock) : permet de bloquer l'accès à un fichier du dépôt.
- fichier périmé (out of date) : copie de travail d'un fichier plus ancienne que sa version sur le dépôt.
- fichier fusionné, fusion : fichier du dépôt résultant de la fusion de deux copies de travail de ce fichier.
- état de conflit, conflit : situation caractérisée par l'impossibilité d'une fusion.
- répertoire administratif : répertoire .svn
- extraire (check out) : crée une copie de travail à partir d'un dépôt.
- propagation (commit ou check in, et parfois en français, archivage ou livraison) : action de publication de fichiers d'une copie de travail dans le dépôt.
- mise à jour (update) : mise à jour d'une copie de travail,
- révision : état de l'arborescence du système de fichiers du dépôt. La révision N représente l'état du système de fichiers du dépôt après la N-ième propagation.
- révision de travail : la révision sur laquelle un fichier de travail est basé.
- révisions mixtes : copie de travail contenant des fichiers et des répertoires avec un mélange de différents numéros de révision.
La version de svn
[modifier | modifier le wikicode]La version du client svn est a choisir en fonction de la version du serveur svn. Par exemple, les sources d'un dépôt construit avec svn 1.7 n'est plus compatible avec svn 1.6. Dans le cas, où l'on plusieurs client svn, il est donc préférable qu'ils soient compatibles avec une même version.
Pour connaître la version de svn :
$ svn --version
svn, version 1.6.17 (r1128011)
compilé Apr 18 2013, 20:26:08
Par défaut, Debian Wheezy propose svn 1.6.17.
A vérifier : Pour Eclipse, la version de Svn semble correspondre avec celle de Subversion. Pour svn 1.6 : SVN - http://subclipse.tigris.org/update_1.6.x Pour svn 1.7 : SVN - http://subclipse.tigris.org/update_1.8.x
Installer svn 1.7 sous Debian Wheezy
[modifier | modifier le wikicode]Le script Bash suivant permet l'installation de svn version 1.7.9 : (Source :http://blog-del-gato.blogspot.fr/)
#!/bin/bash
#http://ymartin59.free.fr/wordpress/index.php/2012/11/25/how-to-install-subversion-1-7-from-wandisco-repository-on-debian-wheezy/
apt-get install equivs
cat > libdb4.8-control-wheezy <<EOF
### Commented entries have reasonable defaults.
### Uncomment to edit them.
# Source: <source package name; defaults to package name>
Section: misc
Priority: optional
# Homepage: <enter URL here; no default>
Standards-Version: 3.9.2
Package: libdb4.8
Version: 4.8.30-fake
Maintainer: Yves Martin <guess@free.fr>
# Pre-Depends: <comma-separated list of packages>
Depends: db4.8-util
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
Architecture: all
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
# Files: <pair of space-separated paths; First is file to include, second is destination>
# <more pairs, if there's more than one file to include. Notice the starting space>
Description: Link to new package name db4.8-util
EOF
equivs-build libdb4.8-control-wheezy
apt-get install db4.8-util
dpkg -i libdb4.8_4.8.30-fake_all.deb
wget -q -O - http://opensource.wandisco.com/wandisco-debian.gpg | sudo apt-key add -
echo "deb http://opensource.wandisco.com/debian/ squeeze svn17" > /etc/apt/sources.list.d/wandisco-subversion.list
apt-get update
apt-get install subversion subversion-tools
Pour vérifier la version de svn :
# svn --version
svn, version 1.7.9 (r1462340)
compilé Apr 25 2013, 14:44:34
Création d'un nouveau projet
[modifier | modifier le wikicode]Projet déjà existant au sein d'un dépôt
[modifier | modifier le wikicode]Récupérer les données d'un projet : checkout
$ cd /usr/local/workspace
$ svn co svn+ssh://groche@192.168.123.16/home/svn/pleade-libre/trunk
Enter passphrase for key '/home/greg/.ssh/id_rsa':
Enter passphrase for key '/home/greg/.ssh/id_rsa':
A trunk/README.PARAMETERS
A trunk/output
...
A trunk/build.xml
U trunk
Révision 24507 extraite.
Les sources du répertoire trunk sont appelées copie de travail. Le résultat de la commande indique la liste des fichiers récupérés et le numéro de la dernière révision, soit 24507. La copie de travail se trouve dans le répertoire dont le nom est la dernière sous-chaîne de svn+ssh://groche@192.168.123.16/home/svn/pleade-libre/trunk après le dernier caractère "/".
L'option info de la commande svn fournit des informations supplémentaires :
$ cd trunk/
$ svn info
Chemin : .
URL : svn+ssh://groche@192.168.123.16/home/svn/pleade-libre/trunk
Racine du dépôt : svn+ssh://groche@192.168.123.16/home/svn
UUID du dépôt : 821c4372-602f-458a-929c-9a67f14f9944
Révision : 24507
Type de nœud : répertoire
Tâche programmée : normale
Auteur de la dernière modification : jlarvers
Révision de la dernière modification : 24504
Date de la dernière modification: 2013-05-23 07:45:13 +0200 (jeu. 23 mai 2013)
Pour créer une copie de travail dans le répertoire workspace/pleade-libre :
$ cd /usr/local/workspace
$ svn co svn+ssh://groche@192.168.123.16/home/svn/pleade-libre/trunk pleade-libre
$ ls pleade-libre/
ant.bat build.xml changes-v3.txt legal output pleade.properties README.PARAMETERS
ant.sh ChangeLog.csv jsdoc-toolkit lib pleade-image README src
La mise en cache du mot de passe
[modifier | modifier le wikicode]Ne fonctionne pas.
svn --username groche --password jpkvid5h co svn+ssh://192.168.123.16/home/svn/pleade-libre/trunk pleade-libre
Beaucoup de serveurs sont configurés pour demander une authentification à chaque requête.
Pour désactiver la mise en cache du mot de passe pour un appel donné d'une commande particulière, passez l'option --no-auth-cache sur la ligne de commande :
$ svn commit -F log_msg.txt --no-auth-cache
Pour désactiver de façon permanente la mise en cache, vous pouvez ajouter la ligne store-passwords = no à votre fichier de configuration Subversion sur votre machine locale.
touch ~/.subversion/auth/config chmod 600 ~/.subversion/auth/config [auth] store-auth-creds = yes
Import d'un projet déjà existant en local : import
[modifier | modifier le wikicode]On importe dans le repository les fichiers locaux du projet :
cd /usr/local/workspace/
$ svn import pleade-social-media svn+ssh://groche@192.168.123.16/home/svn/pleade-social-media/trunk -m 'Initial import'
Enter passphrase for key '/home/greg/.ssh/id_rsa':
Ajout pleade-social-media/src
Ajout pleade-social-media/src/webapp
...
Ajout (bin) pleade-social-media/lib/ant-launcher.jar
Ajout (bin) pleade-social-media/lib/ant.jar
Révision 24512 propagée.
Chaque ligne débutant par Ajout indique l'ajout d'un fichier dans le repository. L'opération se termine par l'affichage du numéro de la révision.
On peut retrouver la notification de l'opération dans la journalisation. Elle contient le numéro de la révision r24512, l'identifiant de l'utilisateur, la date de l'opération, ainsi que le nombre de ligne du message : 1 ligne. Viens enfin, le message indiqué par l'option -m de svn.
$ svn log svn+ssh://groche@192.168.123.16/home/svn/pleade-social-media/trunk
Enter passphrase for key '/home/greg/.ssh/id_rsa':
------------------------------------------------------------------------
r24512 | groche | 2013-05-23 10:12:57 +0200 (jeu. 23 mai 2013) | 1 ligne
Initial import
On peut vérifier le résultat de l'importation des sources du projet dans le repository :
$ svn ls svn+ssh://groche@192.168.123.16/home/svn/pleade-social-media/trunkEnter passphrase for key '/home/greg/.ssh/id_rsa':
.classpath
.project
.settings/
ant.bat
ant.sh
build.xml
lib/
pleade-social-media.properties
src/
tmp.txt
Récupération de la dernière version d'un projet : update
[modifier | modifier le wikicode]Avant de travailler sur les fichiers du projet, il faut s'assurer que l'on est bien synchronisé avec le dépôt, c'est à dire que la copie de travail correspond bien à la dernière révision en cours. Pour cela, il faut effectuer un update à l'aide de la commande svn update :
$ svn update
Enter passphrase for key '/home/greg/.ssh/id_rsa':
U src/webapp/module-eadeac/xsl/cdc-results.xsl
...
Référence externe actualisée à la révision 24530.
Actualisé à la révision 24530.
Chaque ligne débutant par le caractère U indique une mise à jour d'un fichier dans notre copie de travail, vraisemblablement modifié par quelqu'un d'autre depuis notre dernier update.
Mise à jour des modifications dans le dépôt : commit
[modifier | modifier le wikicode]Une fois qu'on a modifié des fichiers, il faut basculer ces modifications au sein du dépôt pour qu'elles soient accessibles aux autres utilisateurs.
$ cd /usr/local/workspace/
$ svn commit -m "Essai de commit."
Les outils de svn
[modifier | modifier le wikicode]Aide intégrée
[modifier | modifier le wikicode]Une aide est intégrée à l'interface en ligne de commande. Pour obtenir de l'aide générale, et notamment la liste des commandes possibles, il suffit de faire :
svn help
Pour obtenir de l'aide sur une commande particulière, utiliser :
svn help <nom de la commande>
Informations sur la copie de travail
[modifier | modifier le wikicode]Pour obtenir des informations sur la copie de travail en cours, on peut utiliser svn info :
$ svn info
Chemin : .
Chemin racine de la copie de travail : /usr/local/workspace-spe/pleade-social-media
URL : svn+ssh://192.168.123.16/home/svn/pleade-social-media/trunk
Racine du dépôt : svn+ssh://192.168.123.16/home/svn
UUID du dépôt : 821c4372-602f-458a-929c-9a67f14f9944
Révision : 24546
Type de nœud : répertoire
Tâche programmée : normale
Auteur de la dernière modification : groche
Révision de la dernière modification : 24546
Date de la dernière modification: 2013-05-23 19:13:57 +0200 (jeu. 23 mai 2013)
Voir l'historique des modifications d'un projet ou d'un fichier
[modifier | modifier le wikicode]La commande svn log permet d'afficher l'historique d'un projet entier :
$ svn log svn+ssh://groche@192.168.123.16/home/svn/pleade-social-media/trunk
Enter passphrase for key '/home/greg/.ssh/id_rsa':
------------------------------------------------------------------------
r24550 | groche | 2013-05-24 17:07:00 +0200 (ven. 24 mai 2013) | 1 ligne
Mise en oeuvre de la notion de surcharge.
...
------------------------------------------------------------------------
r24515 | groche | 2013-05-23 10:40:22 +0200 (jeu. 23 mai 2013) | 1 ligne
Suppression les fichiers de configuration d'un projet eclipse.
------------------------------------------------------------------------
r24512 | groche | 2013-05-23 10:12:57 +0200 (jeu. 23 mai 2013) | 1 ligne
Initial import
La commande svn log <filename.ext> permet d'afficher l'historique d'un fichier donné en paramètre :
$ svn log svn+ssh://groche@192.168.123.16/home/svn/pleade-social-media/trunk/src/webapp/module-social-media/module-social-media.xmap
Enter passphrase for key '/home/greg/.ssh/id_rsa':
------------------------------------------------------------------------
r24550 | groche | 2013-05-24 17:07:00 +0200 (ven. 24 mai 2013) | 1 ligne
Mise en oeuvre de la notion de surcharge.
------------------------------------------------------------------------
r24547 | groche | 2013-05-24 11:58:59 +0200 (ven. 24 mai 2013) | 1 ligne
Modifications de documents EAD et ajout du répertoire d'images serie-07
------------------------------------------------------------------------
r24512 | groche | 2013-05-23 10:12:57 +0200 (jeu. 23 mai 2013) | 1 ligne
Initial import
------------------------------------------------------------------------
La commande svn blame permet d'obtenir des informations sur un fichier ligne par ligne, avec la révision et l'auteur correspondants :
$ svn blame svn+ssh://groche@192.168.123.16/home/svn/pleade-social-media/trunk/src/webapp/module-social-media/module-social-media.xmap
Enter passphrase for key '/home/greg/.ssh/id_rsa':
24512 groche <?xml version="1.0" encoding="UTF-8"?>
24512 groche <!--
...
24512 groche </map:handle-errors>
24512 groche
24512 groche </map:pipelines>
24512 groche
24512 groche </map:sitemap>
24512 groche
Voir le statut de la copie de travail
[modifier | modifier le wikicode]La commande svn status permet d'avoir des informations sur l'état de la copie de travail depuis le dernier update :
$ svn status -v
24546 24546 groche .
24546 24512 groche ant.bat
24546 24512 groche ant.sh
? bin
24546 24512 groche build.xml
...
24546 24512 groche src/webapp/theme/js/pleade/module/eadeac
24546 24512 groche src/webapp/theme/js/pleade/module/eadeac/EadContentManager.js
Pour le fichier module-social-media.xmap en particulier, on obtient :
$ svn status -v | grep module-social-media.xmap
24550 24550 groche src/webapp/module-social-media/module-social-media.xmap
Parcourir le dépôt
[modifier | modifier le wikicode]La commande svn list permet d'afficher le contenu du dépôt à distance :
$ svn list svn+ssh://groche@192.168.123.16/home/svn/pleade-social-media/trunk/
Enter passphrase for key '/home/greg/.ssh/id_rsa':
ant.bat
ant.sh
build.xml
lib/
pleade-social-media.properties
src/
Utiliser les propriétés
[modifier | modifier le wikicode]Les propriétés sont des attributs attachés à un ou plusieurs fichiers du dépôt et qui permettent des comportements particuliers. Sans entrer dans le détail, on ne citera que deux types de propriétés.
Tout d'abord, la propriété svn:ignore permet de retirer explicitement certains fichiers du contrôle de version. Par exemple, si votre éditeur de texte enregistre systématiquement une copie de sauvegarde de vos fichiers avec l'extension .bak, il peut être intéressant de systématiquement mettre de côté ces fichiers en positionnant la propriété correspondante :
$ svn propset svn:ignore *.bak .
property 'svn:ignore' set on '.'
Sous Eclipse, on peut définir svn:ignore pour un répertoire ou fichier donné :
Click droit sur le répertoire ou le fichier >> Team >> Add to svn:ignore.
L'icône en forme de cylindre jaune à côté de l'icône du répertoire ou du fichier disparaît.
Cependant, si le fichier a déjà été commité vers le dépôt, alors cette option n'est plus disponible.
On devra alors nécessairement le supprimer du dépôt, puis nettoyer la copie de travail.
On pourra ainsi ajouter le drapeau svn:ignore.
Une autre utilisation intéressante concerne l'utilisation de mots-clés. Ceux-ci sont des identifiants insérés dans les fichiers du projet et qui seront remplacés au moment du commit par des informations propres à Subversion, comme le nom du fichier, le numéro de révision, l'auteur et la date de la dernière modification, etc. Par exemple, si vous insérez la chaîne $Id$ dans votre fichier, celle-ci sera automatiquement remplacée par un résumé de ces informations :
$Id: pleade-aggregate-social-media.xsl 24552 2013-05-24 16:47:04Z groche $
Pour que ces mots-clés fonctionnent, il faut positionner la propriété svn:keywords de manière adéquate pour les fichiers concernés :
$ svn propset svn:keywords "Id" index.htm
property 'svn:keywords' set on 'index.htm'
Eclipse >> Onglet Navigator >> click droit sur le nom du fichier >> Entrée Team >> Sous-entrée Set Property... >> Property name : svn:keywords >> Enter the text property : Id
Il est possible d'associer une propriété à tous les fichiers d'une arborescence, en faisant hériter cette propriété.
Eclipse >> Onglet Navigator >> click droit sur le nom du fichier >> Entrée Team >> Sous-entrée Set Property... >> Boîte de dialogue "Set Property", cocher "Set property recursively".
http://dev.nozav.org/intro_svn.html
http://maverick.inria.fr/~Xavier.Decoret/resources/svn
$ cd /usr/local/workspace $ mkdir pleade-libre-old $ svn co svn+ssh://groche@192.168.123.16/home/svn/pleade-libre/trunk A trunk/README.PARAMETERS A trunk/ChangeLog.csv A trunk/legal ... Révision 24331 extraite. Révision 24331 extraite. $ cd trunk/ $ svn merge -r 24331:23938 svn+ssh://groche@192.168.123.16/home/svn/pleade-libre/trunk --- Fusion inverse de r24331 à r23939 dans '.' : U src/java/org/pleade/acting/SimpleFileCreator.java U src/script-pre-traitement/bin/traitement_img.sh D src/script-pre-traitement/processImage ... U src/webapp/commons/admin/xsl/users.xsl D src/webapp/commons/xsp/get-request-queries.xsp
Faire de même pour pleade-entreprise-old.
Installation Pleade
[modifier | modifier le wikicode]L'ajout du fichier de configuration pour Apache Tomcat :
$ cd /usr/local/apache-tomcat-6.0.36/conf/Catalina/localhost
$ touch pleade-entreprise.xml
$ echo '<?xml version="1.0" encoding="utf-8"?>' > pleade-entreprise.xml
$ echo '<Context docBase="/usr/local/apache-tomcat-6.0.36/webapps/pleade-entreprise"/>' >> pleade-entreprise.xml
$ more pleade-entreprise.xml
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="/usr/local/apache-tomcat-6.0.36/webapps/pleade-entreprise"/>
L'ajout d'un sous-domaine dans le fichier /etc/hosts :
$ head -4 /etc/hosts
127.0.0.1 localhost
127.0.1.1 pitcairn.ile pitcairn
127.0.1.1 pleade-libre.pitcairn.ile pitcairn
127.0.1.1 pleade-entreprise.pitcairn.ile pitcairn
La configuration de l'hôte virtuel pleade-entreprise.pitcairn.ile de Apache HTTP, passe par la création du fichier /etc/apache2/sites-available/pleade-entreprise.pitcairn.ile :
$ :>/etc/apache2/sites-available/pleade-entreprise.pitcairn.ile
La configuration est la suivante :
$ cat /etc/apache2/sites-available/pleade-entreprise.pitcairn.ile
<VirtualHost *:80>
ServerName pleade-entreprise.pitcairn.ile
ServerAdmin groche@ajlsm.com
DocumentRoot /usr/local/apache-tomcat-6.0.36/webapps/pleade-entreprise/
AddDefaultCharset utf-8
# IIPimage server
ProxyPass /cgi-bin/iipsrv.fcgi http://localhost/cgi-bin/iipsrv.fcgi
ProxyPassReverse /cgi-bin/iipsrv.fcgi http://localhost/cgi-bin/iipsrv.fcgi
#ProxyPass /fcgi-bin/iipsrv.fcgi http://localhost/fcgi-bin/iipsrv.fcgi
#ProxyPassReverse /fcgi-bin/iipsrv.fcgi http://localhost/fcgi-bin/iipsrv.fcgi
ProxyPass / ajp://localhost:8009/pleade-entreprise/
ProxypassReverse / ajp://localhost:8009/pleade-entreprise/
# Extremely verbose
RewriteLogLevel 9
RewriteLog ${APACHE_LOG_DIR}/pleade-entreprise.log
# Log file
ErrorLog ${APACHE_LOG_DIR}/pleade-entreprise-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/pleade-entreprise-access.log combined
</VirtualHost>
La vérification de la syntaxe :
$ sudo apachectl configtest
Syntax OK
L'activation de l'hôte virtuel pleade-entreprise.pitcairn.ile de Apache HTTP :
$ sudo a2ensite pleade-entreprise.pitcairn.ile
[sudo] password for greg:
Enabling site pleade-entreprise.pitcairn.ile.
Run '/etc/init.d/apache2 reload' to activate new configuration!
$ sudo /etc/init.d/apache2 reload
Reloading web server config: apache2.
Arrêter Tomcat 6.0 à partir du PID
[modifier | modifier le wikicode]Le fichier $TOMCAT_HOME/tomcat.pid est créé au démarrage de Tomcat. Il contient le PID du processus de Tomcat :
cat $TOMCAT_HOME/tomcat.pid
6891
Ce fichier est supprimé à l'arrêt de Tomcat.
Pour arrêter Tomcat :
cat $TOMCAT_HOME/bin/catalina.pid | xargs kill -9
Arrêter Tomcat :
$TOMCAT_HOME/bin/catalina.sh stop
Définir la variable d'environnement CATALINA_BASE dans ~/.profile :
CATALINA_BASE=/usr/local/apache-tomcat-6.0.36
Créer le fichier $TOMCAT_HOME/bin/setenv.sh :
CATALINA_PID="$CATALINA_BASE/bin/catalina.pid"
Redémarrer Tomcat :
$TOMCAT_HOME/bin/catalina.sh start
Pour arrêter Tomcat :
cat $TOMCAT_HOME/bin/catalina.pid | xargs kill -9
Erreurs à l'arrêt du serveur
[modifier | modifier le wikicode]$ catalina.sh stop
Using CATALINA_BASE: /usr/local/apache-tomcat-6.0.36
Using CATALINA_HOME: /usr/local/apache-tomcat-6.0.36
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-6.0.36/temp
Using JRE_HOME: /usr/local/jdk1.6.0_39
Using CLASSPATH: /usr/local/apache-tomcat-6.0.36/bin/bootstrap.jar
Using CATALINA_PID: /usr/local/apache-tomcat-6.0.36/bin/catalina.pid
15 mars 2013 11:22:47 org.apache.catalina.startup.Catalina stopServer
GRAVE: Catalina.stop:
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
Arrêter Tomcat :
cat $TOMCAT_HOME/bin/catalina.pid | xargs kill -9
Supprimer le fichier catalina.pid :
rm -f $TOMCAT_HOME/bin/catalina.pid
Démarrer Tomcat :
$TOMCAT_HOME/bin/catalina.sh start
Vérifier si Apache Tomcat est démarré
[modifier | modifier le wikicode]netstat -a | grep "LISTEN"
tcp 0 0 localhost.localdom:7634 *:* LISTEN
tcp 0 0 localhost.locald:domain *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 localhost.localdoma:ipp *:* LISTEN
tcp 0 0 localhost.lo:postgresql *:* LISTEN
tcp 0 0 localhost.localdom:smtp *:* LISTEN
tcp 0 0 *:http *:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN
tcp6 0 0 ip6-localhost:smtp [::]:* LISTEN
tcp6 0 0 localhost.localdom:8005 [::]:* LISTEN
tcp6 0 0 [::]:8009 [::]:* LISTEN
tcp6 0 0 [::]:http-alt [::]:* LISTEN
Apache Tomcat et JAVA_OPTS
[modifier | modifier le wikicode]A compléter
JAVA_OPTS="-Dfile.encoding=UTF-8 -Xmx2500m -XX:MaxPermSize=128m -XX:NewSize=300m -Djava.awt.headless=true -server -Duser.language=fr -Duser.region=FR"
- -Xmx2500m : défini l'allocation mémoire, 2500m signifi 2.5Go;
- -Duser.language=fr et -Duser.region=FR : permettent de forcet la locale de Tomcat.
UTF8
[modifier | modifier le wikicode]Voir : UTF-8
sudo
[modifier | modifier le wikicode]L'installation de la commande :
# apt-get update
# apt-get install sudo
La commande sudo doit être setuid root :
# chmod 4755 `which sudo`
Le test de la commande sudo :
# exit
$ locate /etc/hosts
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
La commande visudo permet d'éditer le fichier de configuration /etc/sudoers :
# visudo
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d
La validation du fichier de configuration :
# visudo -c
/etc/sudoers: parsed OK
Lorsqu'un utilisateur souhaite utiliser la commande sudo sans en avoir la permission, on obtient un message tel que :
$ sudo rmdir repertoire
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for user:
user is not in the sudoers file. This incident will be reported.
Pour avoir la permission d'utiliser la commande sudo, un utilisateur doit appartenir au groupe sudo.
Pour ajouter un utilisateur user au groupe sudo :
# adduser user sudo
Ajout de l'utilisateur « user » au groupe « sudo »...
Ajout de l'utilisateur user au groupe sudo
Fait.
# groups user
greg : user cdrom floppy sudo audio dip video plugdev scanner bluetooth netdev
L'utilisateur user se verra affecter au groupe sudo à l'ouverture de sa prochaine session utilisateur.
Source : Root sudo
Configuration de la commande sudo : PATH not set
[modifier | modifier le wikicode]Certaines commandes ne sont pas disponibles dans le PATH de l'utilisateur :
# cd /usr/sbin
# touch test.sh
# echo "#!/bin/bash" > test.sh
# echo '#!/bin/bash' > test.sh
# echo 'echo "ok"' >> test.sh
# chmod 744 test.sh
$ sudo test.sh
sudo: test.sh: command not found
On peut ajouter un chemin :
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# visudo -c
# visudo -c
/etc/sudoers: parsed OK
/etc/sudoers.d/README: parsed OK
$ sudo test.sh
ok
NAS
[modifier | modifier le wikicode]L'administrateur du NAS doit avoir préalablement créer un compte.
L'installation du paquet smbfs afin de disposer du système de fichier de Samba et des utilitaires du paquet cifs-utils :
$ sudo apt-get update
$ sudo apt-get install smbfs cifs-utils
Les paquets supplémentaires suivants seront installés : cifs-utils, samba-common et samba-common-bin.
L'installation de l'utilitaire backintime pour le bureau Gnome :
$ sudo apt-get install backintime-gnome
Alternativement, le paquet backintime-kde est utilisé pour le bureau KDE.
La création du fichier des données de connexion /home/greg/.naspwd au NAS :
$ cd ~
$ :>.naspwd
$ echo username=greg > .naspwd
$ echo password=******** >> .naspwd
$ more .naspwd
username=greg
password=********
$ sudo chmod 600 ~/.naspwd
$ sudo chown $(whoami):$(whoami) ~/.naspwd
$ ls -al ~/.naspwd
-rw------- 1 greg greg 32 2 mai 11:48 /home/greg/.naspwd
Note : chown $(whoami):$(whoami) suppose que l'utilisateur courant à le même login que l'utilisateur du NAS.
La création du point de montage du NAS :
$ sudo mkdir /media/nas
$ ls -al /media/nas
total 8
drwxr-xr-x 2 root root 4096 2 mai 09:08 .
drwxr-xr-x 5 root root 4096 2 mai 10:17 ..
Le montage du système de fichier du NAS :
$ su -
# sudo mount.cifs //192.168.123.3/homes /media/nas --verbose -o user=greg,pass=********,credentials=/home/greg/.naspwd
mount.cifs kernel mount options: ip=192.168.123.3,unc=\\192.168.123.3\homes,user=greg,pass=********
# ls /media/nas
admin ctate elopez greg mdia
# exit
- //192.168.123.3/homes : chemin réseau vers le dossier partagé. On peut utiliser un nom d'hôte à la place d'une IP; par exemple nas plutôt que 192.168.123.3, ce nom d'hôte doit être configuré dans le fichier /etc/hosts;
- /media/nas : chemin du point de montage;
- credentials=/home/greg/.naspwd : le chemin et le fichier des données de connexion.
Le démontage du système de fichier du NAS :
$ sudo umount /media/nas
$ ls /media/nas/
Le montage automatique lors du démarrage de Debian s'effectue en ajoutant au fichier /etc/fstab la ligne suivante :
//192.168.123.3/homes /media/nas cifs credentials=/home/greg/.naspwd,iocharset=utf8,codepage=cp850,noperm,auto 0 0
Le montage manuel du système de fichier du NAS à partir du fichier /etc/fstab :
$ sudo mount -a
$ ls /media/nas/
admin ctate elopez greg mdia
Enfin, dans Gnome, l'application Backintime est disponible à partir du menu :
Barre d'outils >> Applications >> Outils système >> Back In Time.
La configuration de l'application Backintime :
Barre de menu >> Préférences
Onglet Général >> Dossier pour les sauvegardes >> Autre... >> /media/nas/greg
Le répertoire /media/nas/greg/backintime est alors créé par l'application.
Onglet Inclure >> Ajouter ... les répertoires à sauvegarder >> Valider.
Le lancement de la sauvegarde par l'application Backintime :
Barre de menu >> Sauvegarder
La barre de tâche indique le fichier en cours de sauvegarde : En cours : Sauvegarder (rsync: ...)
Source : Chapitre 20. Utiliser des médias de stockage
Raccourcis bash en mode Emacs
[modifier | modifier le wikicode]Déplacement
[modifier | modifier le wikicode]CTRL + a : déplace le curseur en début de ligne (équivalent à la touche début).
CTRL + e : (end) déplace le curseur en fin de ligne (équivalent à la touche fin).
ALT + f : (forward) avance le curseur d'un mot.
ALT + b : (backward) recule le curseur d'un mot.
CTRL + x CTRL + x : (car x est en forme de croisement) alterne le curseur avec son ancienne position.
Couper / Coller
[modifier | modifier le wikicode]CTRL + l : efface le contenu de l'écran (équivalent à la commande clear).
CTRL + k : efface le contenu de la ligne après le curseur et le place dans le presse-papier.
CTRL + u : efface le contenu de la ligne avant le curseur et le place dans le presse-papier.
CTRL + w : efface le mot avant le curseur et le place dans le presse papier.
ALT + u : (uppercase) transforme le mot courant en majuscules à partir du curseur et avance d'un mot.
ALT + l : (lowercase) transforme le mot courant en minuscules à partir du curseur et avance d'un mot.
ALT + c : (capitalize) met la lettre sous le curseur en majuscule et avance d'un mot.
CTRL + y : (yank) ajoute le contenu du presse-papier à partir de la position du curseur. ALT + del : coupe le mot avant le curseur.
ALT + d : (delete) coupe le mot après le curseur.
CTRL + x CTRL + e : (editor car reprend la variable $EDITOR du shell) édite la ligne courante dans votre éditeur de texte.
Historique et recherche
[modifier | modifier le wikicode]CTRL + p : (previous) rappelle la commande précédente (équivalent à la touche flèche du haut).
CTRL + n : (next) rappelle la commande suivante (équivalent à la touche flèche du bas).
CTRL + r : (research) rappelle la dernière commande contenant les caractères spécifiés (équivalent à vim ~/.bash_history). Un 2e CTRL + r rappelle la prochaine commande antérieure correspondant à la recherche. CTRL + s : rappelle la commande suivante de la recherche (attention à ne pas l'exécuter depuis un terminal car cette commande déclencherait son XOFF). CTRL + o : exécute la commande trouvée dans la recherche.
Divers
[modifier | modifier le wikicode]TAB : auto-complète un mot à partir de la position du curseur.
CTRL + c : envoie le signal SIGINT à la tâche au premier plan, ce qui a pour effet de l'interrompre.
CTRL + d : ferme le shell courant (équivalent de la commande exit).
CTRL + z : envoie le signal SIGTSTP à la tâche au premier plan ce qui a pour effet de la suspendre. Pour la réafficher on peut entrer fg 'nom du processus'.
CTRL + _ : annule la dernière modification.
ALT + r : annule les changements et remet la ligne telle qu'elle était dans l'historique.
Internals
[modifier | modifier le wikicode]Voir http://mw.ajlsm.com/wiki/AJLSM_Mots_de_passe
La commande cron
[modifier | modifier le wikicode]La commande cron permet d’exécuter des programmes à des temps déterminés.
Pour ce faire, le daemon cron inspecte par défaut les répertoires /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly et /etc/cron.monthly.
Ce comportement de cron est décrit dans le fichier /etc/crontab.
Lancer une tâche avec cron
[modifier | modifier le wikicode]Vous disposez donc de 2 manières d’exécuter une tâche ou un job :
- soit en ajoutant le programme dans un des répertoires /etc/cron.*y;
- soit en insérant une entrée dans le fichier /etc/crontab.
Par défaut, le fichier /etc/crontab comprends deux parties. La première partie définit un ensemble de variables. La seconde partie définit un ensemble d'entrée.
$ more /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
Dans la première partie, les variables sont :
- SHELL : définit le shell dans lequel sera executé cron. Si ce dernier n’est pas spécifié, le shell par défaut de l’utilisateur sera sélectionné grâce au fichier /etc/passwd;
- PATH : un ensemble de chemins absolus de répertoires d'éxecutables; La variable d'environnement PATH du super utilisateur a la même valeur par défaut;
- MAILTO : envoi la sortie de la commande, s’il y en existe une, par mail à l’utilisateur indiqué. Si la variable MAILTO n’est pas spécifiée, alors la sortie de la commande sera envoyée par mail au propriétaire de la commande;
- HOME : définit le répertoire home de cron. Si la variable HOME n’est pas spécifiée, le répertoire home de l’utilisateur sera choisit grâce au fichier /etc/passwd.
La seconde partie décrit à quels instants seront exécutés les commandes des répertoires /etc/cron.*y. La syntaxe d’une entrée est la suivante : mm hh jj MMM JJJ utilisateur commande.
- m (minute, de 0 à 59) : représente les minutes;
- h (hour, de 0 à 23) : représente l’heure;
- dom (day of month, de 1 à 31) : représente le numéro du jour du mois;
- mon (month, de 1 à 12, ou de Jan à Dec) : représente le numéro du mois; ou l’abréviation du nom du mois : jan, feb, mar, apr, …
- dow (day of week, de 0 à 7, ou de Sun à Sat) : représente l’abréviation du nom du jour ou le chiffre correspondant au jour de la semaine; ainsi 0 représente le dimanche, 1 représente le lundi, …, dimanche peut aussi etre représenté par le chiffre 7.
Pour chaque unité de temps, on peut utiliser :
- l'astérisque * : pour définir une fréquence; telle que « tous les jours » ou « toutes les minutes »;
- le slash / : pour définir une période; par exemple */3 pour indiquer « tous les 3 jours » ou « toutes les 3 minutes »;
- le caractère – : pour spécifier un intervalle de temps; par exemple 1-10 signifit « les 10 premiers jours » ou « les 10 premières minutes »;
- la virgule , : pour spécifier plusieurs valeurs de temps; par exemple 1,15 signifie « le 1er jour et le 15ème jour » ou « la 1ère minute et la 15ème minute », etc.
Exemples :
* 12 1-15,17,20-25 * * root backupMySQL.sh
lance la commande backupMySQL.sh tous les lundi entre le 1er et le 15 et entre le 20 et 25 du mois (inclus) et le 17 de tous les mois.
* 12 10-16/2 * * root backupMySQL.sh
équivaut à
* 12 10,12,14,16 * * root backupMySQL.sh
Pour ne pas envoyer le mail de la sortie au super utilisateur ni aucun utilisateur, on peut rediriger la sortie vers /dev/null. :
* * * * * /sbin/ping -c 1 192.168.0.1 > /dev/null
Par défaut, un email est envoyé à l'utilisateur définit par la variable MAIL, soit par défaut, le super utilisateur.
Pour envoyer la sortie d'une commande par mail à l’utilisateur désiré :
commande | mail -s "sujet du mail" user@nowhere.org
Pour rediriger la sortie standard vers un fichier de journalisation :
commande >> file.log
Pour rediriger la sortie standard et les erreurs :
commande >> file.log 2>&1
Pour enfin renvoyer le fichier de journalisation par mail en créant une nouvelle entrée cron :
MAILTO=user@nowhere.org,user2@somewhere.org
mail -s "Le fichier de journalisation" < file.log
La commande crontab
[modifier | modifier le wikicode]Le programme crontab est utilisé pour installé, lister ou désinistaller les entrées utilisées par cron. Chaque utilisateur peut avoir son propre crontab; et ces fichiers seront dans le répertoire /var/spool/cron/crontabs, ils n'ont pas à être éditer directement.
If the /etc/cron.allow file exists, then you must be listed therein in order to be allowed to use this command. If the /etc/cron.allow file does not exist but the /etc/cron.deny file does exist, then you must not be listed in the /etc/cron.deny file in order to use this command. If neither of these files exists, then depending on site-dependent configuration parameters, only the super user will be allowed to use this command, or all users will be able to use this command. For standard Debian systems, all users may use this command.
If the -u option is given, it specifies the name of the user whose crontab is to be tweaked. If this option is not given, crontab examines "your" crontab, i.e., the crontab of the person executing the command. Note that su can confuse crontab and that if you are running inside of su you should always use the -u option for safety's sake.
The first form of this command is used to install a new crontab from some named file or standard input if the pseudo-filename ``- is given.
The -l option causes the current crontab to be displayed on standard output.
The -r option causes the current crontab to be removed.
The -e option is used to edit the current crontab using the editor specified by the VISUAL or EDITOR environment variables. The specified editor must edit the file in place; any editor that unlinks the file and recreates it cannot be used. After you exit from the editor, the modified crontab will be installed automatically.
Instead of the first five fields, one of eight special strings may appear:
string meaning
------ -------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".
Sources :
http://www.pantz.org/software/cron/croninfo.html
http://www.debian-administration.org/articles/56
VT
[modifier | modifier le wikicode]http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO.html#toc10
Changer pour le terminal 2 :
$ chvt 2
Indiquer au gestionnaire de console d'effacer l'écran au bout de nn mimutes d'inactivité :
$ setterm -blank nn
Pour annuler l'effet de setterm :
$ setterm 0
The s option of xset(1) will set the X screensaving parameters :
$ xset s 10 blanks the screen after 10 minutes.
Pour annuler l'action de l'économiseur d'écran de X :
$ xset s off
Afficher le contenu de l'écran de /dev/ttyN :
$ sudo cat /dev/vcsN (virtual console screen)
/dev/vcsN ne contient pas de caractère de nouvelle ligne ou d'attributs, tel que la couleur. Pour un affichage lisible, le terminal d'affichage doit donc avoir le même nombre de lignes et de colonnes que /dev/ttyN. Sinon, /dev/vcsaN permet de donner le nombre de ligne, le nombre de colonnes ainsi que l'emplacement du curseur. (`virtual console screen with attributes')
Pour modifier l'état des LED du clavier :
$ setleds ...
Mozilla
[modifier | modifier le wikicode]Le plugins Adobe Flash
[modifier | modifier le wikicode]http://get.adobe.com/flashplayer/
1 cd /Downloads 2 tar xvf install_flash_player_11_linux.x86_64.tar.gz
Now copy extracted file of plugin into specific directory: 1 cp libflashplayer.so /usr/lib/mozilla/plugins/
Change working directory: 1 cd ./usr/bin/
Finally copy last thing: 1 cp flash-player-properties /usr/local/bin