Come posso effettuare il downgrade di Gedit a una versione precedente (3.10.4) in Ubuntu 16.04 LTS


17

Come già dice il titolo: ho alcuni plug-in che non funzionano con gedit 3.18.3 fornito con Ubuntu 16.04 LTS.

Come posso effettuare il downgrade alla versione 3.10.4 che è stata utilizzata in Ubuntu 14.04 LTS e Ubuntu 15.10 e ottenere tutti i plug-in possibili installati?

E come posso ripristinarlo a 3.18.3 se 3.10.4 non è più necessario.


3
Ottimo per le persone che odiano il nuovo design Gedit di Xenial ... che include me stesso. Probabilmente proverò la tua procedura un giorno quando sono inattivo.
Byte Commander

@ByteCommander Cosa vuoi dire con il nuovo design ? Gedit è l'editor di base, generalmente uso Geany o altri ide più utili per una programmazione seria.
NoBugs,

2
@NoBugs Confronta l'aspetto di Gedit il 15.10 o precedente e il 16.04. Il nuovo ha perso gran parte della sua barra degli strumenti e sembra brutto IMO.
Byte Commander

@NoBugs: beh per me va oltre l'estetica. Uso alcuni strumenti che funzionano su gedit-plugin e che non sono stati ancora riscritti per tenere conto della nuova barra degli strumenti.
user2413

Risposte:


18

La soluzione è piuttosto complicata, quindi assicurati di leggere e procedere con attenzione. Come preparazione per questo essere sicuri di abilitare tutte le fonti di pacchetti in modo che le /etc/apt/sources.listassomiglia a questo e fare un aggiornamento:

sudo apt-get update
sudo apt-get dist-upgrade
reboot

Per installare la vecchia versione:

Quindi, come primo passo, è necessario rimuovere la versione esistente di gedit. Per fare ciò, esegui i seguenti comandi nel tuo terminale ( ctrl+ alt+ t):

# this installs the build dependencies
sudo apt-get build-dep gedit gedit-plugins
sudo apt-get install moreutils

# this uninstalls the 3.18.3 version of gedit, gedit-dev, 
# gedit-plugins and gedit-common and should get rid of everything else
# installed for gedit
sudo apt-get remove gedit gedit-dev gedit-plugins gedit-common

Ora prepara una directory in cui lavorare. Per comodità, lo facciamo nella nostra home directory.

# creating directory and switching to it
mkdir ~/gedit-downgrade
cd ~/gedit-downgrade

Il prossimo passo è creare un wget-listfile per facilitare il download (puoi copiare e incollare l'intero campo nel tuo terminale). Se non si utilizza un sistema a 64 bit, è possibile che si desideri trovare i collegamenti corretti per i386 qui .

cat > wget-list << "EOF"
http://mirrors.kernel.org/ubuntu/pool/main/g/gedit/gedit-common_3.10.4-0ubuntu13_all.deb
http://mirrors.kernel.org/ubuntu/pool/main/g/gedit/gedit_3.10.4-0ubuntu13_amd64.deb
http://mirrors.kernel.org/ubuntu/pool/main/g/gedit/gedit-dev_3.10.4-0ubuntu13_amd64.deb
http://mirrors.kernel.org/ubuntu/pool/universe/g/gedit-developer-plugins/gedit-developer-plugins_0.5.15-0ubuntu1_all.deb
http://mirrors.kernel.org/ubuntu/pool/universe/g/gedit-latex-plugin/gedit-latex-plugin_3.8.0-3build1_all.deb
http://mirrors.kernel.org/ubuntu/pool/universe/g/gedit-plugins/gedit-plugins_3.10.1-1ubuntu3_amd64.deb
http://mirrors.kernel.org/ubuntu/pool/universe/g/gedit-r-plugin/gedit-r-plugin_0.8.0.2-Gtk3-Python3-1ubuntu1_all.deb
http://mirrors.kernel.org/ubuntu/pool/universe/g/gedit-source-code-browser-plugin/gedit-source-code-browser-plugin_3.0.3-3_all.deb
http://mirrors.kernel.org/ubuntu/pool/universe/g/gedit-valencia-plugin/gedit-valencia-plugin_0.8.0-0ubuntu2_amd64.deb
http://mirrors.kernel.org/ubuntu/pool/universe/r/rabbitvcs/rabbitvcs-gedit_0.16-1_all.deb
http://mirrors.kernel.org/ubuntu/pool/universe/s/supercollider/supercollider-gedit_3.6.6~repack-2-1build1_all.deb
EOF

Ora che hai quel wget-listfile, puoi scaricare tutto in una volta digitando wget -i wget-list, lasciare che i file vengano scaricati e quindi iniziare l'installazione.

Seguire i passaggi seguenti uno per uno e se si verificano errori di dipendenza, sudo apt-get remove <package-name>ciò fa semplicemente riflettere il pacchetto che causa problemi, quindi installare manualmente le dipendenze, sudo apt-get install <package-name>quindi ripetere nuovamente la riga dpkg. Non farlo, e intendo non correre sudo apt-get -f installmentre stai provando questa installazione: rovinerà tutto.

Ora, iniziamo con i pacchetti essenziali (testati e funzionanti su un'installazione pulita 16.04 LTS):

# install gedit-common (essential needed)
sudo dpkg -i gedit-common_3.10.4-0ubuntu13_all.deb

# install gedit (essential needed)
sudo dpkg -i gedit_3.10.4-0ubuntu13_amd64.deb

# install gedit-dev (essential needed)
sudo dpkg -i gedit-dev_3.10.4-0ubuntu13_amd64.deb 

# install gedit-plugins (essential needed)
# here are some steps needed follow them carefully

    # unpacking the .deb file
    sudo dpkg-deb -R gedit-plugins_3.10.1-1ubuntu3_amd64.deb tmp

    # editing tmp/DEBIAN/control:
    # change 'python3 (<< 3.5), python3 (>= 3.4~), python3.4' to 'python3 (>= 3.5~), python3.5'
    sed 's/python3 (<< 3\.5), python3 (>= 3\.4~), python3\.4/python3 (>= 3.5~), python3.5/' tmp/DEBIAN/control | sudo sponge tmp/DEBIAN/control

    # editing tmp/DEBIAN/postinst
    # change 'py3compile -p gedit-plugins /usr/lib/x86_64-linux-gnu/gedit/plugins -V 3.4' to
    # 'py3compile -p gedit-plugins /usr/lib/x86_64-linux-gnu/gedit/plugins -V 3.5'
    sed 's/3\.4/3.5/' tmp/DEBIAN/postinst | sudo sponge tmp/DEBIAN/postinst

    # packing a new .deb file 
    sudo dpkg-deb -b tmp gedit-plugins_3.10.1-1ubuntu4_amd64.deb

    # changing ownership of the new .deb file replace username with your username
    sudo chown username:username gedit-plugins_3.10.1-1ubuntu4_amd64.deb

    # removing tmp
    sudo rm -rfv tmp

    # installing it
    sudo dpkg -i gedit-plugins_3.10.1-1ubuntu4_amd64.deb

I seguenti pacchetti sono solo opzionali e dovresti essere in grado di installarli facilmente, le dipendenze da scaricare vengono fornite e testate su un'installazione pulita 16.04 LTS come sopra.

# install gedit-developer-plugins (optional)
sudo apt-get install python-pocket-lint
sudo dpkg -i gedit-developer-plugins_0.5.15-0ubuntu1_all.deb

# install gedit-latex-plugin (optional)
sudo apt-get install rubber
sudo dpkg -i gedit-latex-plugin_3.8.0-3build1_all.deb

# install gedit-r-plugin (optional but needs gedit-plugins)
sudo dpkg -i gedit-r-plugin_0.8.0.2-Gtk3-Python3-1ubuntu1_all.deb 

# install gedit-source-code-browser-plugin (optional)
sudo apt-get install ctags
sudo dpkg -i gedit-source-code-browser-plugin_3.0.3-3_all.deb

# install gedit-valencia-plugin (optional)

    # unpacking .deb file
    sudo dpkg-deb -R gedit-valencia-plugin_0.8.0-0ubuntu2_amd64.deb tmp

    # edit tmp/DEBIAN/control
    # change 'libvala-0.28-0 (>= 0.15.1)' to 'libvala-0.30-0 (>= 0.15.1)'
    # change 'libvte-2.90-9 (>= 1:0.27.2)' to 'libvte-2.91-0 (>= 0.27.2)'
    sed -e 's/libvala-0\.28-0 (>= 0\.15\.1)/libvala-0.30-0 (>= 0.15.1)/' -e 's/libvte-2\.90-9 (>= 1:0\.27\.2)/libvte-2.91-0 (>= 0.27.2)/' tmp/DEBIAN/control | sudo sponge tmp/DEBIAN/control

    # packing a new .deb file 
    sudo dpkg-deb -b tmp gedit-valencia-plugin_0.8.0-0ubuntu3_amd64.deb

    # changing ownership of the new .deb file replace username with your username
    sudo chown username:username gedit-valencia-plugin_0.8.0-0ubuntu3_amd64.deb

    # removing tmp
    sudo rm -rfv tmp

    # installing it
    sudo dpkg -i gedit-valencia-plugin_0.8.0-0ubuntu3_amd64.deb

# install rabbitvcs-gedit (optional)
sudo apt-get install rabbitvcs-core
sudo dpkg -i rabbitvcs-gedit_0.16-1_all.deb

# install supercollider-gedit (optional)
sudo apt-get install supercollider-language
sudo dpkg -i supercollider-gedit_3.6.6~repack-2-1build1_all.deb

Ora devi assicurarti che i pacchetti non vengano cambiati quando esegui un aggiornamento, quindi assicurati solo di indicare i pacchetti che hai installato:

# now protecting this all from upgrading
sudo apt-mark hold gedit-common gedit gedit-dev gedit-developer-plugin gedit-latex-plugin gedit-plugins gedit-r-plugin gedit-source-code-browser-plugin gedit-valencia-plugin rabbitvcs-gedit supercollider-gedit

Per invertire l'intero processo:

# removing protection from upgrades
sudo apt-mark unhold gedit-common gedit gedit-dev gedit-developer-plugin gedit-latex-plugin gedit-plugins gedit-r-plugin gedit-source-code-browser-plugin gedit-valencia-plugin rabbitvcs-gedit supercollider-gedit

# simply do an upgrade
sudo apt-get update
sudo apt-get dist-upgrade

C'è una sceneggiatura per farlo ?:

Sì, ho anche creato uno script per automatizzare l'intero processo, puoi ottenerlo qui o tramite:

wget https://github.com/Videonauth/gdowngrade/blob/master/gdowngrade.sh

Quindi eseguirlo:

chmod 755 ./gdowngrade.sh
sudo ./gdowngrade.sh

Questo creerà un file personalizzato per te chiamato gupgrade.shche ti consente di invertire l'intero processo semplicemente:

sudo ./gupgrade.sh

8

introduzione

Il seguente script automatizza l'installazione di gedit 3.10.4 dal sorgente. Consente sia l'utilizzo della versione precedente che quella più recente di gedit, nel caso in cui l'utente decida di voler tornare a gedit più recente. Lo script crea in /usr/share/applications/gedit_downgraded.desktopmodo che anche tu possa avere una bella scorciatoia per il vecchio gedit.

L'utilizzo è decisamente semplice:

sudo ./downgrade_gedit.sh [option]

L'opzione è -iper l'installazione o -uper la disinstallazione

Il codice sorgente è disponibile anche su my git, che puoi ottenere eseguendo:

git clone https://github.com/SergKolo/sergrep.git

Fonte dello script

#!/bin/bash
#
###########################################################
# Author: Serg Kolo , contact: 1047481448@qq.com 
# Date: 
# Purpose: 
#    A script to install version 3.10.4 of gedit on Ubuntu
#    16.04 . Some users are unhappy with new gedit design
#    while others want to downgrade in order to use plugins
#    not available in the new gedit. This script simplifies
#    the downgarde process and building from source.
#    The source is obtained from Gnome's official ftp channels
#    The 3.10.4 is installed separatelly, so if you want to go
#    back to the newer version or used along-side 3.10.4 , you
#    can do so, as the newer version is not uninstalled
# Written for: http://askubuntu.com/q/766055/295286
# Tested on: Ubuntu 16.04
###########################################################
# Copyright: Serg Kolo , 2016
#    
#     Permission to use, copy, modify, and distribute this software is hereby granted
#     without fee, provided that  the copyright notice above and this permission statement
#     appear in all copies.
#
#     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#     IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
#     THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
#     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
#     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
#     DEALINGS IN THE SOFTWARE.

set -e 
download_gedit()
{
  # Here gnome's official ftp channel is used 
  # feel free to use something else
  # just keep in mind you'd need to make changes to script accordingly
  wget http://ftp.gnome.org/pub/GNOME/sources/gedit/3.10/gedit-3.10.4.tar.xz
}

extract_gedit()
{
 ARCHIVE="gedit-3.10.4.tar.xz"
 tar --extract --xz --verbose --file "$ARCHIVE" && \
 rm "$ARCHIVE"
}


resolve_depends()
{
 apt-get install intltool libenchant-dev libxml2-dev libgtksourceview-3.0-dev gsettings-desktop-schemas-dev  libpeas-dev  itstool libxml2-utils 
}

make_desktop_file()
{
cat > /usr/share/applications/gedit_downgraded.desktop  <<EOF
[Desktop Entry]
Name=Gedit(downgraded)
Type=Application 
Terminal=false
Exec=/usr/local/bin/gedit %U
EOF
}

make_install_gedit()
{

 cd gedit-3.10.4
 ./configure #PKG_CONFIG_PATH="$(pkg-config --variable pc_path pkg-config)"
 make
 make install
}

install()
{
  # If /opt/gedit-3.10.4 doesn't exist, that's a first run
  # otherwise - create the directory, download and extract
  cd /opt
  if [ ! -d "gedit-3.10.4" ] ; then
      mkdir gedit-3.10.4
      download_gedit
      extract_gedit 
  fi
  resolve_depends
  make_install_gedit
  make_desktop_file
  #mark gedit to be held back
  dpkg --set-selections <<< "gedit hold"
}
uninstall()
{
  cd /opt/gedit-3.10.4
  make uninstall
  hash -r
  [ -e /usr/share/applications/gedit_downgraded.desktop  ] && \
     rm /usr/share/applications/gedit_downgraded.desktop
}

parse_args()
{
  local OPTIND option
  while getopts "iu" option
  do
    case ${option} in
         i) install && exit 0 ;;
         u) uninstall && exit 0 ;; 
         \?) echo "Invalid option -${option}" > /dev/stderr  
    esac
  done
}

main()
{

  if [ $# -eq 0 ] ; then
     echo "Must specify -i or -u option" > /dev/stderr
     exit 1
  fi

  if [ $( id -u ) -ne 0 ] ; then
    echo "Must run as root" > /dev/stderr
    exit 1
  else
     parse_args "$@"
  fi
}

main "$@"

3

Attualmente, hai .debpacchetti con gedit3.10 per Ubuntu 16.04 qui:

gedit
gedit-common

Puoi scaricarli (scegli il pacchetto in base alla tua architettura) e installali. Per esempio:

sudo dpkg -i gedit_3.10.4-0ubuntu13_amd64.deb gedit-common_3.10.4-0ubuntu13_all.deb 

(Questo comando disinstalla la versione corrente gedite installa quella nuova)

Ed essere consapevoli di evitare che eventuali futuri aggiornamenti aggiornino questo pacchetto (ad esempio, mettendoli in attesa)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.