En quelques étapes :
-
Mettre à jour son système
sudo apt update && sudo apt upgrade
-
Cloner le projet
git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
-
Exécuter le script d'installation présent à la racine du répo Git fraîchement cloné.
sudo ./retropie_setup.sh
-
Choisir les options d'installation dans l'utilitaire. Apparemment "Basic install" convient dans la plupart des cas.
Oubliez les tutos.
Sauf la webcam, tout marche nickel en installant la dernière LMDE 6 (et surtout pas la version de Mint basée sur Ubuntu).
La communauté Debian a toujours fait un travail formidable. La Linux Mint basée sur Debian est de loin ma distribution préférée.
Je viens de m'apercevoir que ma Surface tournait en mono thread alors que c'est une 2 cœurs / 4 threads. Le tuto aide bien.
Le temps de démarrage dépasse les 2 min 20
Le temps de démarrage est d'environ ~15 sec, on est donc à 2 min de trop. Après investigation cela vient du service systemd-udev-settle.service
qui est bloquant et qui part en timeout après 120 seconds quand il ne parvient pas à recevoir des notifications des autres services au démarrage qui quant à eux sont en mode non-bloquant.
Que faire ?
Saisir la commande suivante :
sudo systemctl mask systemd-udev-settle.service
La tablette ne s'arrête plus et reste bloquée sur une ligne de log du type "kvm: ..."
Cela vient du fait que la méthode d'arrêt de l'EFI de Microsoft ne supporte pas l'ACPI.
Que faire ?
1) Ouvrir le fichier /etc/default/grub
sudo nano /etc/default/grub
2) Modifier la ligne
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
En ceci
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=off"
Puis exécuter la commande suivante pour mettre à jour Grub
sudo update-grub
L'installation de Mint a écrasé l'entrée Linpus dans l'UEFI donc il devient impossible de booter sur clef USB
Ce problème interviendra lorsqu'on voudra reformater la tablette. Il va donc falloir préparer le terrain pour l'avenir.
1) Réafficher les options de démarrage de GRUD
C'est aussi dans le fichier /etc/default/grub
. Il faut affecter ces valeurs aux variables suivantes :
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=3
Puis exécuter la commande suivante pour mettre à jour Grub
sudo update-grub
Cela permettra d'avoir un menu de 3 secondes au démarrage pour accéder à l'EFI de la tablette.
2) Changer l'ordre de boot via l'efibootmgr
J'ai ceci
$ sudo efibootmgr
BootCurrent: 001
Timeout: 0 seconds
BootOrder: 0001,2001,2002
Boot0001* Linut Mint
Boot2001* EFI USB Device
Boot2002* EFI Network
Je veux donc mettre 2001 avant 0001 ce qui se fait via la commande
sudo efibootmgr -o 2001,0001,2002
En substance, je souhaite mettre à jour le Linux de ma Surface Go 2 qui a maintenant plus 3 ans.
Quel est le problème ?
Microsoft... J'aurai pu m'arrêter car à celle seule, la firme de Redmond est un problème.. Dans l'idée, l'accès à l'UEFI ne permet pas de choisir l'USB comme périphérique bootable. Il faut donc trouver autre chose
Solution
Depuis une console vous aller lister toutes les périphériques accessible via UEFI
$ sudo efibootmgr
BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0000,0001,2002,2001
Boot0000* Linux Mint
Boot0001* Linpus
Boot2001* EFI USB Device
Boot2002* EFI Network
Ensuite il faut choisir le numéro associé à Linpus pour les Surface Go 2 de Microsoft et dire à efibootmgr
de booter dessus, si une clef USB est branchée, lors du prochain démarrage.
sudo efibootmgr --bootnext 0001
sudo systemctl reboot
A noter que seul l'ID de l'entrée compte donc pour Boot0001 on utilise que 0001.
Anglais + Europe... Je suis sûr que c'est grâce au Brexit ! 🤣
Merci pour l'astuce 👌
Côté Linux :
sudo apt-get install build-essential libz-dev zlib1g-dev
Côté GraalVM :
Faire pointer les variables d'environnements JAVA_HOME et GRAALVM_HOME vers le répertoire d'installation de GraalVM.
$GRAALVM_HOME/bin/gu native-image
Enjoy...
@Guigui juste pour te dire que j'adore tous tes posts, des plus techniques aux plus politiques (même quand nous ne sommes pas accord).
Et celui-ci sur Debian répond à une de mes très vieilles questions.
Voilà tu gères ! Des bisous 😚
Un tuto pour installer Docker sur une Linux Mint
Rappel
Maven Wrapper est un petit script à positionner à la racine de votre projet et qui vous permettra :
- De définir la bonne version de Maven avec laquelle vous pouvez builder votre projet.
- De récupérer automatiquement cette version
Problème
Pour exécuter vos commandes de build, il ne faut plus taper
mvn clean install
mais
./mvnw clean install
Inconvénients :
- Le "./" a ajouter devant la commande est fastidieux.
- Si vous êtes dans un sous-module, vous devrez faire un "../mvnw clean install" et cela fait perdre du temps.
Solution
Elle est en trois phases :
-
Installer une version de Maven dans votre poste
- Sans l'ajouter à votre PATH
- Mais en créant la variable MAVEN_HOME
-
Ajouter le script suivant dans votre .bashrc
_build_mvnw_dir() {
echo "$1/mvnw"
}
_find_mvnw() {
currentDir=`pwd`
while [ "$currentDir" != "" ]; do
isMvnwDir=`_is_mvnw_dir "$currentDir"`
if [ "$isMvnwDir" == "true" ]; then
break
else
currentDir=`_get_parent_dir "$currentDir"`
fi
done
if [ "$currentDir" == "" ]; then
echo ""
else
_build_mvnw_dir "$currentDir"
fi
}
_get_parent_dir() {
echo "$currentDir" | sed "s|^\(.*\)/[^/.]*$|\1|"
}
_is_mvnw_dir() {
if [ -f "$1/mvnw" ]; then
echo "true"
else
echo "false"
fi
}
_mvn() {
mvnwPath=`_find_mvnw`
if [ "$mvnwPath" == "" ]; then
$MAVEN_HOME/bin/mvn $*
else
eval "$mvnwPath $*"
fi
}
- Ajouter l'alias suivant à votre .bash_aliases
alias mvn='_mvn'
Fonctionnement
Utiliser Maven comme vous en avez l'habitude, le script va simplement utilise Maven Wrapper s'il est définit dans votre projet, sinon il utiliser l'installation "par défaut" que vous avez faite de Maven dans le répertoire $MAVEN_HOME.
Comment installer un antivirus sous Linux. Grosso-modo, cela sert surtout à protéger les utilisateurs d'OSX / Windows, mais si vous faites tourner des applis avec Wine, alors vous êtes aussi concernés.
Pour Chlouchloutte qui aide sa Maman
Merci à Timo qui est toujours serviable à ce sujet.
Mon point de vue à ce sujet
Quand vous aider gratuitement un utilisateur de Windows à "nettoyer son Windows" en réalité vous :
- Vous assurez gratuitement le support après-vente sur société commerciale américaine qui défiscalise massivement.
- Vous apportez de la visibilité et du soutien à un système privateur qui agresse le logiciel libre chaque année.
- Vous permettez à des gens "qui s'en foutent" de continuer de s'en foutre.
- Vous contribuez directement à la mort du logiciel libre en dépensant votre temps à servir son concurrent sans pitié.
Savoir quand un OS a été installé en retrouvant la date de création du "/".
La commande vaut pour Linux et est à éxécuter en tant que root :
fs=$(df / | tail -1 | cut -f1 -d' ') && tune2fs -l $fs | grep created
Si vous ne comprenez pas clairement ce que c'est que 'root'... N'UTILISEZ PAS CETTE COMMANDE !
Installer une virtualbox à jour sur une debian (net install)
sudo apt download <ma lib>
Va vous créer un tar.gz du .deb ainsi que de ses dépendances de sorte à pouvoir l'installer sur un machine sans connexion à internet.
C'est parti pour un tuto de réinstallation de Linux Mint Debian Edition 2. Ce post est avant tout pour moi une sorte de gros mémo.
Installer ce qui manque
## htop - pour visualiser les processus
## gparted - pour repartitionner des disques
## tree - pour visualiser une arborescence de fichiers dans une console
## wine - pour faire les applications Windows
## filezilla - pour les accès FTP
## audacity - pour la retouche audio
sudo aptitude install htop gparted tree wine filezilla audacity
## Ajouter les tools de versionning :
sudo aptitude install mercurial git gitk git-flow git-doc git-sh git-man git-all
## Ajout de police de caractères (Microsoft pour la compatibilité avec la suite Office, Anonymous Pro pour coder et Bitstream par habitude) :
sudo aptitude install ttf-mscorefonts-installer ttf-anonymous-pro ttf-liberation ttf-bitstream-vera
Mettre à jour les kernels
## Ajouter le kernel i686 :
sudo aptitude install linux-image-686-pae linux-headers-686-pae
## Supprimer l'ancien kernel :
sudo aptitude remove linux-headers-586 linux-image-586 linux-headers-3.16.0-4-586 linux-image-3.16.0-4-586 linux-image-3.16.0-4-586
Suppression des softs inutiles
## Avahi - l'équivalent du service 'Bonjour' d'Apple mais sous Linux. Rien à péter de publier les services de ma machine sur un réseau local avec une sorte DNS/DHCP décentralisé (pas pour aller sur le net, décentralisé de votre réseau privé uniquement).
sudo aptitude remove avahi-autoipd avahi-daemon avahi-utils
## apt-xapian-index est LE paquet qui fait ramer votre Mint ; il sert principalement pour la recherche rapide dans Synaptic (recherche qui bug toujours par rapport à la recherche "normale"). Ce service tourne en tâche de fond pour tenir à jour votre cache APT avec les actions qui sont faites entre les différents outils (apt, apt-get, aptitude, etc). Perso, j'utilise aptitude du début à la fin, avoir un service qui tourne rien que pour ça est au mieux inutile au pire carrément stupide.
sudo aptitude remove apt-xapian-index
## Pulseaudio (fait double emploi avec ALSA et je ne me sers pas du lecteur audio intégré)
sudo aptitude remove pulseaudio pulseaudio-module-x11 pulseaudio-utils
## Bye bye Apache, je ne me sers plus de toi.
sudo aptitude remove apache2-bin
## Bye bye les firmware inutiles pour ma machine.
sudo aptitude remove atmel-firmware zd1211-firmware
## Un lecteur de musique dont je ne me sers pas.
sudo aptitude remove banshee
## Je ne suis pas aveugle, brltty est pour les claviers en braille, espeak est un synthétiseur vocal, speech-dispatcher sers à diffuser le son du synthétiseur.
sudo aptitude remove brltty espeak espeak-data speech-dispatcher speech-dispatcher-audio-plugins
## Bye bye le bluetooth.
sudo aptitude remove blueberry bluetooth bluez bluez-cups bluez-firmware bluez-obexd obex-data-server odbcinst odbcinst1debian2
## Bye bye Open JDK / Icedtea, perso j'utilise une version à jour d'OpenJDK / Oracle-JDK :
sudo aptitude remove ca-certificates-java default-jre default-jre-headless icedtea-7-jre-jamvm icedtea-7-plugin icedtea-netx icedtea-netx-common java-common openjdk-7-jre openjdk-7-jre-lib openjdk-7-jre-headless icedtea-plugin tzdata-java
## Bye bye CUPS (je n'utilise pas d'imprimante, le papier ça pollue) :
sudo aptitude remove cups cups-browsed cups-bsd cups-client cups-common cups-core-drivers cups-daemon cups-filters cups-filters-core-drivers cups-ppdc cups-server-common printer-driver-all printer-driver-brlaser printer-driver-c2050 printer-driver-c2esp printer-driver-cjet printer-driver-dymo printer-driver-escpr printer-driver-foo2zjs-common printer-driver-hpijs printer-driver-min12xxw printer-driver-pnm2ppa printer-driver-ptouch printer-driver-sag-gdi system-config-printer
## Bye bye tout ce qui touche à l'impression :
sudo aptitude remove hplip-data
## Bye bye duplicity, je ne fais pas de backup incrémentaux de mon poste fixe.
sudo aptitude remove duplicity
## Bye bye evolution, je ne me sers pas d'evolution et d'aucune appli l'ayant pour dépendance.
sudo aptitude remove evolution-data-server
## Je n'ai pas de partition Mac / OSX sur mon PC.
sudo aptitude remove hfsplus hfsprogs hfsutils
## Je n'ai pas de périphériques du type iBidule.
sudo aptitude remove ideviceinstaller
## Mon PC est un ordinateur de bureau pas un PC portable ni un mobile ou une clef 3G/4G
sudo aptitude remove laptop-detect pcmciautils mobile-broadband-provider-info
## Tout ce qui a été codé en .NET (désolé mais pas de soft développés avec un compilateur dont la licence est piégée).
sudo aptitude remove mono-4.0-gac mono-gac mono-runtime mono-runtime-common mono-runtime-sgen tomboy
## Mon PC fixe est connecté en câble et n'utilise pas le protocole PPTP.
sudo aptitude remove network-manager-pptp network-manager-pptp-gnome pptp-linux
## Tenir l'heure de son PC synchronisé avec internet
sudo aptitude remove ntpdate
## Bye bye les impressions dans 'le cloud' (beurk).
sudo aptitude remove openprinting-ppds
## Bye bye Pidgin, je ne chat pas.
sudo aptitude remove pidgin pidgin-data pidgin-libnotify
## Je n'ai pas de scanner
sudo aptitude remove sane-utils simple-scan
## Je ne me sers pas du partage bureautique Windows :
sudo aptitude remove samba samba-common samba-common-bin samba-dsdb-modules samba-libs smbclient
## Ma machine est une machine physique, pas une VM donc je vire les drivers virtualbox.
sudo aptitude remove virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11
Les optimisations
- Optimiser les accès disque (notatime/nodiratime) & écrire les logs dans la RAM)
- Supprimer l'écriture de log par l'OS
- Swapper que lorsque la RAM est pleine
- Rendre Firefox & Thunderbird plus rapide
- Supprimer la journalisation d'EXT4
- Réduire la consommation mémoire des JVM sous Linux
Désactiver les services :
sudo update-rc.d -f cups remove
sudo update-rc.d -f samba remove
sudo update-rc.d -f samba-ad-dc remove
sudo update-rc.d -f samba-ad-dc remove
sudo update-rc.d -f virtualbox-guest-utils remove
sudo update-rc.d -f virtualbox-guest-x11 remove
sudo update-rc.d -f speech-dispatcher remove
sudo update-rc.d -f brltty remove
sudo update-rc.d -f apache2 remove
Et une petite liste d'actions manuelles :
## Supprimer le cash APT :
sudo sh -c "echo 'Dir::Cache \"\";\nDir::Cache::archives \"\";' >> /etc/apt/apt.conf.d/02nocache"
Réduire le nombre de TTY :
1) sudo nano /etc/default/console-setup
# Remplacer
ACTIVE_CONSOLES="/dev/tty[1-6]"
# par
ACTIVE_CONSOLES="/dev/tty[1-1]"
2) sudo nano /etc/inittab
## Remplacer ceci :
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
## Par ceci
1:2345:respawn:/sbin/getty 38400 tty1
#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6
Réduire le temps de boot de grub :
1) Ouvrir le fichier /etc/default/grub
2) Modifier la ligne GRUB_TIMEOUT=10
3) Exécuter la commande :
sudo update-grub
J'ai repris certains points comme les DNS de FDN, merci Seb.
Le petit rappel qui va bien :
NodeJS c'est quoi ?
NodeJS est une machine virtuelle capable d'exécuter des applications écrites en JavaScript côté serveur ; avec la capacité de démarrer un serveur web, de se connecter à une base de données, d'écrire sur le disque, etc. NodeJS est basé sur le moteur JavaScript développé pour WebKit et fournit sa propre implémentation du standard ECMAScript 6 (aka. ES2016), c'est-à-dire la dernière version standardisée de JavaScript en ce début 2017.
NPM c'est quoi ?
NPM est le gestionnaire de dépendances/paquets de NodeJS. Il est founi avec l'installation de NodeJS et utilisé par les développeurs pour télécharger, installer et exécuter l'ensemble des dépendances transitives de leurs projets JavaScript.
NPM peut :
- Gérer les dépendances pour les librairies s'exécutant côté client.
- Gérer les dépendances pour les librairies s'exécutant côté serveur.
- Exécuter des commandes dans la syntaxe du shell courant (et donc toutes les commandes figurant dans le path du-dit shell).
Comment qu'on setup toussa ?
1) Télécharger la dernière version (stable de préférence) de NodeJS
- La dernière version LTS (pour Long Term Support) est disponible ICI.
- Veillez à choisir la version compatible avec votre système, c'est-à-dire OS + architecture (32 ou 64 bits).
2) Installer NodeJS
Décompresser le tar.gz téléchargé dans un répertoire dédié, par exemple /tools/apps/nodejs-6.9.1.
Modifier votre fichier ~/.profile ou au choix ~/.bashrc comme suit :
- Créer la variable d'environnement $NODE_HOME
export NODE_HOME="/tools/apps/nodejs-6.9.1"
- Ajouter le sous-répertoire $NODE_HOME/bin/ dans votre path système :
export PATH="$PATH:$NODE_HOME/bin"
- Veillez à bien enregistrer les changements et redémarrer votre console si vous avez modifié le fichier ~/.bashrc et votre session pour le fichier ~/.profile.
- Hop vous avez à présent NPM et NodeJS disponible sous les commandes npm et node depuis un shell.
3) Configurer NPM
N.B : Dans la suite, le répertoire /tools/repositories peut en réalité être celui de votre choix. Moi je stocke tout dans /tools (en fait dans /opt/tools mais on s'en fiche).
- Nous allons dire à NPM où stocker les versions zippées des librairies qu'il a téléchargé, pour cela il faut ajouter/modifier la ligne suivante dans le fichier ~/.npmrc.
cache="/tools/repositories/npm/cache"
- Ensuite nous allons indiquer à NPM où décompresser les librairies télécharger au point précédent en ajoutant au fichier ~/.npmrc
prefix="/tools/repositories/npm/modules"
- Modifier votre fichier ~/.profile ou au choix ~/.bashrc comme suit :
export NPM_MODULES="/tools/repositories/npm/modules" export PATH="$PATH:$NPM_MODULES/bin"
- Et encore une fois veillez à bien enregistrer les changements et redémarrer votre console si vous avez modifié le fichier ~/.bashrc et votre session pour le fichier ~/.profile.
4) Dis-nous comment ça marche en moins de 60 secondes ?
## Télécharger un outil et l'installer dans le répertoire global contenant les modules, par exemple Gulp :
npm install -g gulp
## Exécuter Gulp en tapant
gulp --version
## Télécharger un outil et l'installer uniquement pour votre projet (i.e dans le sous-répertoire ./node_modules):
npm install --save-dev gulp
## Exécuter Gulp en tapant
./node_modules/gulp/bin/gulp --version
## NDR : des fois il faut taper ceci à la place
node ./node_modules/gulp/bin/gulp.js --version
## Installer une librairie en tant que dépendance de votre projet (elle sera mise dans le répertoire ./node_modules).
npm install -save aurelia-framework
## Installer une librairie qui ne sera pas livrée avec votre projet (par exemple un framework de test) :
npm install --save-dev jasmine
Et voilà en prime le lien vers le site officiel de NPM :D
Ah il y a des notions comme ça... Comme la gentillesse, la courtoisie, le partage et même certains parlent "d'humanité aux autres" (c'est la signification même du mot Ubuntu)... Après, si vous vous demandez pourquoi j'ai arrêté d'utiliser ubuntu, la question posée par Octave Klaba résume mon point de vue.
Installer une Raspbian minimalist sur votre Raspberry.