Monday, July 24, 2017

Downgrade a package to fix package dependency issue

I've got the following error message when I tried to install g++ on ubuntu 17.10.

The following packages have unmet dependencies:
 build-essential : Depends: libc6-dev but it is not going to be installed or
                            libc-dev
                   Depends: g++ (>= 4:5.2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.













After checking that dependency using following command:
apt-cache policy libc6-dev

It looks like it depends on an earlier version.
libc6-dev:
  Installed: (none)
  Candidate: 2.24-9ubuntu2
  Version table:
     2.24-9ubuntu2 500
        500 http://archive.ubuntu.com/ubuntu artful/main amd64 Packages



So I went ahead to downgrade this package
sudo apt install libc6=2.24-9ubuntu2
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Suggested packages:
  glibc-doc
The following packages will be DOWNGRADED:
  libc6

...
dpkg: warning: downgrading libc6:amd64 from 2.24-9ubuntu2.2 to 2.24-9ubuntu2

After this downgrading this package, I can install the g++ again!

Sunday, July 23, 2017

setup fcitx for xfce4 under WSL in Windows 10

After setting up xfce4 under WSL(Windows Subsystem for Linx) in Windows 10, I tried to add chinese input support.

Looks like the following steps need to be taken:
1. Install a Chinese font, for example:
    sudo apt install fonts-noto-cjk
2. Install fcitx
    sudo apt install fcitx fcitx-googlepinyin
3. Configure environment variable and start fcitx with xfce
    Create a file under /usr/bin/xfce4 with the following content
     #!/bin/sh   
     export GTK_IM_MODULE=fcitx
     export QT_IM_MODULE=fcitx
     export XMODIFIERS=@im=fcitx

     xfce4-session
     fcitx

   Add executable permission to the file
   sudo chmod a+x /usr/bin/xfce4
4. quit VcXSrv. Close WSL console
5. Start VcXSrv, run WSL console(i.e. BashOnWindows) and start xfce4 again.

    /usr/bin/xfce4