Une place pour une véritable innovation. Partagez vos propres utilitaires créés avec la communauté Manjaro.
Questions et discussions sur la programmation et le codage.
Répondre

alternative a iso avec meta package

#1Messageil y a 9 ans

Je viens d'avoir une idée (suite a mp avec fassil) pour une alternative à un gros iso d'installation :

installer a partir d'une net install une Manjaro sans interface graphique.
puis
utiliser son "propre" (meta) package (comme un groupe?):

il suffit juste de mettre en dépendance nos packages voulus dans le PKGBUILD
et avec un petit script post-install peaufiner quelques réglages et/ou auto-télécharger quelques fichiers

En final on devrait avoir un produit presque équivalent a une grosse iso communautaire mais qui est super léger : net install + 2 minuscules fichiers texte et de plus super souple a modifier (pas de compilation interminable via manjaro-tools)

Cela est possible/réalisable ? Ça n'existe déjà pas ?

-------------------------------
problème : impossible de désinstaller un package (puisque dépendant de celui ci) ? donc il faut supprimer avant la dépendance puis recharger pour pouvoir le modifier ou alors est t-il possible de supprimer ce super-package tout en gardant toutes ces dépendances installées ?

alternative a iso avec meta package

#2Messageil y a 9 ans

Ouaip, mais tu auras sans doute tout par défaut au niveau utlisateur à la sortie, l'avantage de manjaro-tool, c'est que tu peux jouer là-dessus (comme les devs de Manja, avec le goût qu'on leur connait..) & arriver direct sur ta config "aux petits oignons".

Ps: La "compilation" (plutôt "squashfsisation", si j'ai bien suivi) n'est pas si longue -> 20/25 minutes pour une iso de ~800 Mo avec un intel I3 (qui monte à 80° pour l'occase, pfuuu..) :bien
Dernière modification par fassilil y a 9 ans, modifié au total 1 fois.

alternative a iso avec meta package

#3Messageil y a 9 ans

j'appellerais ça la méthode Ubuntu, où un paquet vide "ubuntu-desktop" installe en dépendance un environnement de bureau complet...

le seul problème de cette méthode, c'est que si par la suite tu veux désinstaller un des paquets qui dépend de ce meta-paquet, ça va poser un soucis: tu seras obligé de désinstaller aussi ton meta-paquet, ce qui au début ne sera pas grave, mais par la suite, tous les paquets qui ont été installés par dépendance à ce meta-paquet apparaitront comme orphelins.

si on veut partir d'une net-install, et se servir d'un fichier texte pour installer une liste de paquets, il y a une méthode meilleure; Pacman accepte de lire un fichier texte contenant une liste de paquets, autant s'en servir:

pacman -S $(< pkglist.txt)

il faut juste faire attention à ce qu'il y a dans cette liste, sachant que le meilleur moyen de faire une bonne liste est de partir d'une installation existante qui contient tout ce qu'on veut, et d'utiliser cette commande:

pacman -Qqen > pkglist.txt

cette commande a l'avantage de ne lister que les paquets installés explicitement (pas les dépendances), et donc on ne réinstallera que ces paquets (et ils seront installés explicitement) et les dépendances suivront, en tant que dépendances (et non en tant qu'explicite).
le seul soucis, les paquets de AUR n'apparaissent pas dans cette liste, mais à mon sens c'est mieux.

alternative a iso avec meta package

#4Messageil y a 9 ans

@Loubrix : Pour ne pas avoir un paquet non supprimable j'ai utilisé makedepends et non depends

bon j'ai fait mon petit test DANS VIRTUALBOX par dessus l'iso E de fassil :rendre:
c'est une pseudo kde5 non configurée mais ici, je suis juste en test de possibilité / intérêt ...

fichier : PKGBUILD

# Maintainer: papajoke <papajoke[at]archlinux[dot]xxx>
pkgname=super-mega-meta
pkgver=0.0.1
pkgrel=1
pkgdesc='Mon super package'
arch=('any')
url="http://www.manjaro.fr/"
license=('MIT')
# future source  github pour personnalisation
#source=("$pkgname::git+git://github.com/papajoke/mes-truc-en-plus.git")

#pour test en mettre une
depends=( 'ruby' )
# diverses dependances  uniquement lors de la construction
makedepends=(
    'bash-completion' 'zsh' 'unzip' 'binutils' 'smbclient' 'sqlite' 'tree' 'cifs-utils' 'curl' 'dialog' 'docker' 'espeak' 'glances' 'htop' 'go' 'gparted' 'imagemagick' 'iptables' 'lua51' 'mariadb' 'unrar'  'p7zip' 'pulseaudio'
    'python' 'python-dbus' 'python-pyqt5' 'python2' 'vlc'
    'java-environment-common' 'java-runtime-common' 'jdk8-openjdk' 'jre8-openjdk' 'poedit'
    'kactivities-frameworks' 'sddm'  'sddm-kcm'
    'kdebase-dolphin' 'kde-l10n-fr' 'kdegraphics-svgpart' 'kdegraphics-thumbnailers' 'kdemultimedia-ffmpegthumbs' 'kdesdk-thumbnailers' 'kate' 'kcmsystemd'
    'kmenuedit' 'plasma-meta' 'oxygen'  'oxygen-cursors ' 'qtcurve' 'kdegraphics-ksnapshot' 'kdeutils-ark' 'kdeutils-kcalc'  'terminator'
    'filezilla' 'chromium' 'flashplugin' 'keepass'
    'php' 'php-fpm' 'gd' 'php-gd' 'php-mcrypt' 'php-sqlite' 'nginx' 'nmap' 'openssl'
    'git'  'gtk3' 'cherrytree'  'clementine' 'gimp' 'gimp-help-fr' 'graphviz' 'gwenview' 'inkscape' 'qpdf'
    'gstreamer' 'gstreamer0.10' 'gstreamer0.10-bad' 'gstreamer0.10-bad-plugins' 'gstreamer0.10-base' 'gstreamer0.10-base-plugins' 'gstreamer0.10-ffmpeg' 'gstreamer0.10-good' 'gstreamer0.10-good-plugins' 'gstreamer0.10-python' 'gstreamer0.10-ugly' 'gstreamer0.10-ugly-plugins'
    'virtualbox'
    )

install='.install'
#md5sums=('SKIP')
conflicts=()
replaces=()
backup=()

prepare(){
    echo "prepare avant build"
}

build() {
    echo "compilation"
}

check(){
  true
}

package() {
    # option fakeroot pas meme environnement ?
    echo "package"
    echo "$HOME"
    true
}


le fichier .install lui est utile pour la personnalisation ...
ici je modifie (pour voir) le système et surtout $HOME (trouvé a l'arrache!)

#!/bin/bash

set_dirfile() {
    dir=$1
    ico=$2
    create=$3
    if [ -d "$dir" ]; then
        [ -z "$ico" ] && ico='folder-important'
        file="$dir/.directory"
        [ -f "$file" ] && rm $file
        if [ "$create" == "true" ]; then
            touch "$file"
            echo -e "[Desktop Entry]\nIcon=$ico\nType=Directory\n\n[Settings]\nHiddenFilesShown=true" > $file
            chown root:users $file
            chmod 644 $file
        fi
    fi
}


post_install() {
   echo "post installation"
   echo "$HOME"
   
   user=$(users | awk '{print $1}')
   echo "user: $user"
   
   set_dirfile "/home" "user-identity" true
   set_dirfile "/etc" "preferences-system" true
   set_dirfile "/home/$user/.config" "folder-important" true
   set_dirfile "/home/$user/.local" "folder-important" true
   
   # si installation via git
        cd $pkgname
        rm -rf .git*
       
    echo "Sddm par défaut"
    systemctl enable sddm -f
    echo -e "pensez a faire un : \nsystemctl disable slim [ou autre sauf sddm]"
    echo -e "#pensez a faire un : \nsystemctl disable slim #[ou autre sauf sddm]">>"/home/$user/todo.txt"
    #todo modif /etc/sddm.conf
   
    echo "pensez a l'activation de vboxdrv:    modprobe vboxdrv"
    echo -e "#pensez a l'activation de vboxdrv:\n modprobe vboxdrv">>"/home/$user/todo.txt"

   #...
   echo "il vous reste a exécuter ce fichier en mode simple utilisateur : /home/$user/todo.txt"
}

post_remove() {
    echo "post remove"
    user=$(users | awk '{print $1}')
    echo "user: $user"
   
    set_dirfile "/home"
    set_dirfile "/etc"
    set_dirfile "/home/$user/.config"
    set_dirfile "/home/$user/.local"
}

post_upgrade() {
   echo "post upgrade"
   echo "$HOME"
}


pour l'utilisation/installation, il faut donc 2 passes
# ajoute les dependances
makepkg -fsC --needed
# personnalisation
sudo pacman -U super-mega-meta-0.0.1-1-any.pkg.tar.xz

pacman -Qi super-mega-meta
sudo pacman -R super-mega-meta #pour test pour refaire un pacman -U

-------------------------------
par rapport a un script ... je trouve pas l’intérêt immédiat d'utiliser PKGBUILD ... :pleure: mais bon vais continuer ...

alternative a iso avec meta package

#5Messageil y a 9 ans

Et une iso manjaro avec pas mal de compléments type virtual box, graveur, etc ..... enfin ce qui est installé souvent est-il possible d'en avoir une ?

Merci

alternative a iso avec meta package

#6Messageil y a 8 ans

Moi j'avais pensé a me faire des "box" en fonction de l'utilisation du pc
exemple pour un pc multimédia
je fait un shell que j'enregistre sur un cloud

#!/bin/bash
sudo pacman -S clementine brasero mplayer vlc ...



voila cela me fait gagner un peu de temps
Répondre