ฉันจะลดระดับ Gedit เป็นเวอร์ชันก่อนหน้า (3.10.4) ใน Ubuntu 16.04 LTS ได้อย่างไร


17

ตามที่กล่าวไว้ในหัวข้อแล้ว: ฉันมีปลั๊กอินบางตัวที่ไม่ทำงานด้วย gedit 3.18.3 ซึ่งมาพร้อมกับ Ubuntu 16.04 LTS

ฉันจะปรับลดรุ่นเป็นรุ่น 3.10.4 ซึ่งใช้ใน Ubuntu 14.04 LTS และ Ubuntu 15.10 และติดตั้งปลั๊กอินทั้งหมดได้อย่างไร

และฉันจะแปลงกลับเป็น 3.18.3 ได้อย่างไรถ้า 3.10.4 ไม่ต้องการอีกต่อไป


3
ยอดเยี่ยมสำหรับผู้ที่เกลียดการออกแบบ Gedit ใหม่ของ Xenial ซึ่งรวมถึงตัวฉันด้วย ฉันอาจจะลองทำตามขั้นตอนของคุณสักวันเมื่อฉันไม่ได้ทำงาน
ผู้บัญชาการ Byte

@ ByteCommander คุณหมายถึงอะไรการออกแบบใหม่ ? Gedit เป็นเครื่องมือแก้ไขพื้นฐานฉันมักใช้ Geany หรือ IDE ที่มีประโยชน์มากขึ้นสำหรับการเขียนโปรแกรมอย่างจริงจัง
NoBugs

2
@NoBugs เปรียบเทียบลักษณะที่ Gedit ดูที่ 15.10 หรือก่อนหน้าและเปรียบเทียบกับ 16.04 อันใหม่หายไปส่วนใหญ่ของแถบเครื่องมือและ IMO น่าเกลียด
ผู้บัญชาการ Byte

@Nobugs: ดีสำหรับฉันมันเกินกว่าความสวยงาม ฉันใช้เครื่องมือบางอย่างที่ทำงานอยู่ด้านบนของ gedit-plugin และยังไม่ได้เขียนใหม่เพื่อนำแถบเครื่องมือใหม่มาพิจารณา
user2413

คำตอบ:


18

การแก้ปัญหาค่อนข้างซับซ้อนดังนั้นโปรดอ่านและดำเนินการอย่างระมัดระวัง เพื่อเป็นการเตรียมการให้แน่ใจว่าคุณเปิดใช้งานแหล่งที่มาของแพ็คเก็ตทั้งหมดเพื่อให้/etc/apt/sources.listมีลักษณะเช่นนี้และทำการอัปเกรด:

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

วิธีติดตั้งเวอร์ชันเก่า:

จากนั้นเป็นขั้นตอนแรกคุณต้องลบเวอร์ชันที่มีอยู่ของ gedit โดยรันคำสั่งต่อไปนี้ในเทอร์มินัลของคุณ ( 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

ตอนนี้เตรียมไดเร็กตอรี่ให้ทำงานด้วย. เพื่อความสะดวกเราทำเช่นนั้นในโฮมไดเร็กตอรี่ของเรา

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

ขั้นตอนต่อไปคือการสร้างwget-listไฟล์เพื่อทำให้การดาวน์โหลดง่ายขึ้น (คุณสามารถคัดลอกและวางทั้งฟิลด์ลงในเทอร์มินัลของคุณ) หากคุณไม่ได้ใช้ระบบ 64 บิตคุณอาจต้องการที่จะหาการเชื่อมโยงที่เหมาะสมสำหรับ i386 ที่นี่

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

ตอนนี้คุณมีwget-listไฟล์นั้นแล้วคุณสามารถดาวน์โหลดทุกอย่างได้ในครั้งเดียวโดยการพิมพ์wget -i wget-listปล่อยให้ไฟล์ดาวน์โหลดแล้วเริ่มการติดตั้งของคุณ

โปรดทำตามขั้นตอนด้านล่างหนึ่งต่อหนึ่งและถ้าคุณพบข้อผิดพลาดในการพึ่งพาเพียงแค่ทำsudo apt-get remove <package-name>ซึ่งสะท้อนให้เห็นถึงแพคเกจให้ปัญหาแล้วติดตั้งการพึ่งพาด้วยมือsudo apt-get install <package-name>แล้วทำสาย dpkg อีกครั้ง ทำไม่ได้และฉันหมายถึงไม่ทำงานsudo apt-get -f installในขณะที่คุณพยายามติดตั้งนี้: มันจะเลอะทุกอย่าง

ตอนนี้มาเริ่มด้วยแพ็คเกจที่จำเป็น (ทดสอบและทำงานบนการติดตั้ง 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

แพคเกจต่อไปนี้เป็นเพียงทางเลือกเท่านั้นและคุณควรจะติดตั้งได้อย่างง่ายดายการอ้างอิงในการดาวน์โหลดจะได้รับและทดสอบในการติดตั้งที่สะอาด 16.04 LTS เช่นเดียวกับข้างต้น

# 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

ตอนนี้คุณต้องแน่ใจว่าจะไม่มีการเปลี่ยนแปลงแพ็คเกจเมื่อคุณทำการอัพเดทดังนั้นให้แน่ใจว่าจะระบุแพ็คเกจที่คุณติดตั้งเท่านั้น:

# 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

หากต้องการย้อนกลับกระบวนการทั้งหมดให้ทำดังนี้

# 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

มีสคริปต์ให้ทำหรือไม่:

ใช่ฉันได้สร้างสคริปต์เพื่อทำให้กระบวนการทั้งหมดเป็นไปโดยอัตโนมัติคุณสามารถทำได้ที่นี่หรือโดย:

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

จากนั้นเรียกใช้:

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

การทำเช่นนี้จะสร้างไฟล์ที่กำหนดเองให้คุณgupgrade.shซึ่งเรียกว่าอนุญาตให้คุณย้อนกลับกระบวนการทั้งหมดเพียงแค่:

sudo ./gupgrade.sh

8

บทนำ

ซอลเบลโลว์สคริปต์ทำการติดตั้ง gedit 3.10.4 โดยอัตโนมัติจากแหล่งที่มา อนุญาตให้ทั้งสองใช้เวอร์ชัน gedit ที่เก่ากว่าและใหม่กว่าในกรณีที่ผู้ใช้ตัดสินใจว่าต้องการกลับไปที่ gedit ที่ใหม่กว่า สคริปต์สร้างขึ้น/usr/share/applications/gedit_downgraded.desktopเพื่อให้คุณสามารถมีทางลัดที่ดีไปยัง Gedit ที่เก่ากว่า

การใช้งานนั้นง่ายมาก:

sudo ./downgrade_gedit.sh [option]

ตัวเลือก-iสำหรับการติดตั้งหรือ-uถอนการติดตั้ง

ซอร์สโค้ดยังมีอยู่ใน git ของฉันซึ่งคุณสามารถรับได้จากการรัน:

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

แหล่งสคริปต์

#!/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

ปัจจุบันคุณมี.debแพ็คเกจด้วยgedit3.10 สำหรับ Ubuntu 16.04 ที่นี่:

gedit
gedit-common

คุณสามารถดาวน์โหลดได้ (เลือกแพ็คเกจตามสถาปัตยกรรมของคุณ) และติดตั้ง ตัวอย่างเช่น

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

(คำสั่งนี้จะถอนการติดตั้งเวอร์ชันปัจจุบันของคุณgeditและติดตั้งใหม่)

และระวังการหลีกเลี่ยงการอัปเดตในอนาคตที่เป็นไปได้อัปเกรดแพ็คเกจนี้ (เช่นวางไว้ในรายชื่อที่ระงับ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.