Bagaimana cara menurunkan versi Gedit ke Versi (3.10.4) sebelumnya di Ubuntu 16.04 LTS

17

Seperti judulnya sudah katakan: Saya memiliki beberapa plug-in yang tidak berjalan dengan gedit 3.18.3 yang dikirimkan dengan Ubuntu 16.04 LTS.

Bagaimana saya bisa menurunkan versi ke versi 3.10.4 yang digunakan di Ubuntu 14.04 LTS dan Ubuntu 15.10 dan mendapatkan semua plug-in yang mungkin diinstal?

Dan bagaimana cara mengembalikannya kembali ke 3.18.3 jika 3.10.4 tidak diperlukan lagi.

Videonauth
sumber
3
Bagus untuk orang-orang yang membenci desain Gedit Xenial baru ... yang mencakup saya. Saya mungkin akan mencoba prosedur Anda suatu hari ketika saya sedang menganggur.
Byte Commander
@ ByteCommander Apa maksud Anda, desain baru ? Gedit adalah editor dasar, saya biasanya menggunakan Geany atau ide lain yang lebih berguna untuk pemrograman yang serius.
NoBugs
2
@NoBugs Bandingkan bagaimana Gedit terlihat pada 15.10 atau sebelumnya dan pada 16.04. Yang baru kehilangan sebagian besar bilah alatnya dan terlihat IMO jelek.
Byte Commander
@NoBugs: baik bagi saya itu melampaui estetika. Saya menggunakan beberapa alat yang berjalan di atas gedit-plugin dan yang belum ditulis ulang untuk mempertimbangkan bilah alat baru.
user2413

Jawaban:

18

Solusinya cukup rumit jadi pastikan Anda membaca dan melanjutkan dengan hati-hati. Sebagai persiapan untuk ini, pastikan Anda mengaktifkan semua sumber paket sehingga Anda /etc/apt/sources.listterlihat seperti ini dan melakukan peningkatan:

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

Untuk menginstal versi lama:

Kemudian sebagai langkah pertama, Anda perlu menghapus versi gedit yang ada. Untuk melakukannya jalankan perintah berikut di terminal Anda ( 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

Sekarang siapkan direktori untuk bekerja. Untuk kenyamanan kami melakukannya di direktori rumah kami.

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

Langkah selanjutnya adalah membuat wget-listfile untuk mempermudah pengunduhan (Anda dapat menyalin dan menempelkan seluruh bidang ke terminal Anda). Jika Anda tidak menggunakan sistem 64-bit, Anda mungkin ingin menemukan tautan yang tepat untuk i386 di sini .

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

Sekarang Anda memiliki wget-listfile itu, Anda dapat mengunduh semuanya dengan mengetik wget -i wget-list, biarkan file tersebut diunduh dan kemudian mulai instalasi Anda.

Ikuti langkah-langkah di bawah ini satu per satu dan jika Anda mengalami kesalahan dependensi cukup lakukan sudo apt-get remove <package-name>yang mencerminkan masalah yang terjadi pada paket, kemudian instal dependensi dengan tangan dengan sudo apt-get install <package-name>lalu lakukan lagi baris dpkg. Jangan, dan maksud saya jangan jalankan sudo apt-get -f installsaat Anda mencoba instalasi ini: itu akan mengacaukan semuanya.

Sekarang, mari kita mulai dengan paket-paket penting (diuji dan bekerja pada instalasi 16,04 LTS yang bersih):

# 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

Paket-paket berikut ini hanya opsional dan Anda harus dapat menginstalnya dengan mudah, dependensi untuk mengunduh diberikan dan diuji pada instalasi 16,04 LTS yang bersih seperti di atas.

# 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

Sekarang Anda harus memastikan paket tidak akan berubah ketika Anda menjalankan pembaruan, jadi pastikan hanya untuk menyatakan paket yang telah Anda instal:

# 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

Untuk membalikkan seluruh proses, lakukan:

# 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

Apakah ada skrip untuk melakukannya ?:

Ya, saya bahkan membuat skrip untuk mengotomatiskan seluruh proses, Anda bisa mendapatkannya di sini atau dengan:

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

Kemudian untuk menjalankannya:

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

Ini akan membuat file khusus untuk Anda dipanggil gupgrade.shyang memungkinkan Anda untuk membalik seluruh proses hanya dengan:

sudo ./gupgrade.sh
Videonauth
sumber
8

pengantar

Script di bawah ini mengotomatiskan instalasi gedit 3.10.4 dari sumber. Hal ini memungkinkan keduanya menggunakan versi gedit yang lebih lama dan lebih baru, jika pengguna memutuskan mereka ingin kembali ke gedit yang lebih baru. Script dibuat /usr/share/applications/gedit_downgraded.desktopsehingga Anda juga dapat memiliki pintasan yang bagus ke gedit yang lebih lama.

Penggunaannya sangat sederhana:

sudo ./downgrade_gedit.sh [option]

Pilihannya adalah -iuntuk menginstal atau -umenghapus

Kode sumber juga tersedia di git saya, yang bisa Anda peroleh dengan menjalankan:

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

Sumber Skrip

#!/bin/bash
#
###########################################################
# Author: Serg Kolo , contact: [email protected] 
# 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 "$@"
Sergiy Kolodyazhnyy
sumber
3

Saat ini, Anda memiliki .debpaket dengan gedit3.10 untuk Ubuntu 16.04 di sini:

gedit
gedit-common

Anda dapat mengunduhnya (pilih paket tergantung arsitektur Anda) dan instal. Contohnya:

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

(Perintah ini akan menghapus versi Anda saat ini geditdan menginstal yang baru)

Dan berhati-hatilah untuk menghindari kemungkinan pembaruan di masa mendatang akan memperbarui paket ini (misalnya, menundanya)

Agus
sumber