顯示具有 Setting 標籤的文章。 顯示所有文章
顯示具有 Setting 標籤的文章。 顯示所有文章

2015年1月22日 星期四

Ubuntu 安裝舊版本的 python

1. 下載並安裝 pythonbrew
curl -kL0 http://github.com/utahta/pythonbrew/raw/master/pythonbrew-install  > ./pythonup.sh
chmod  777 pythonup.sh
./pythonup.sh

2. 安裝 python 2.6.6 與 python 2.7.3
pythonbrew install 2.6.6
pythonbrew install 2.7.3

3. 切換python 版本 (需重登, relogin)
pythonbrew switch 2.6.6
pythonbrew switch 2.7.3

4. 測試目前使用版本
python --version


註1: 安裝會使用到以下網域, 留意是否有被防火牆擋掉
github.com
www.python.org
raw.githubuserontent.com
pypi.python.org

註2: pythonbrew 安裝目錄
用 root 安裝, 會安裝到 /usr/local/pythonbrew
 用其它帳號, 會安裝到 $HOME/.pythonbrew
所以需要export PATH
如:  export PATH=$PATH:/usr/local/pythonbrew/bin
   或 export PATH=$PATH:$HOME/.pythonbrew/bin


2014年12月16日 星期二

JAVA 6/JAVA7 切換

上次有說到 怎麼安裝 Java6與 Java7
http://esmondjhchang.blogspot.tw/2014/11/ubuntu-12-java67.html


因為我常常要在 JAVA6與JAVA7之間切換...

因此, 本篇只是分享一個個人的切換script

請先到 https://code.google.com/p/webupd8/downloads/detail?name=update-java-0.5b
下載一個 update-java-0.5b的script (這個直接使用就可以了, 不過需要在GUI環境)

因為我不知我的PC被我怎麼搞的, 所以上面的 update-java-0.5b 居然只能切換部份環境
所以...

使用時, 直接在GUI裡的 console 輸入 java_swap後,
若輸入 Y, 則系統會切換成JAVA6 (compile Android 4.4.4-)
若輸入 N, 則系統會切換成 JAVA7 (compile Android 5+)
接著會出現一個對話框, 再選擇 JAVA的位置即可
如: JAVA6 就選 java-6-oracle (小心選, 不然會只切一半)


java_swap 的 Script 如下 (小弟是把兩個檔, update-java-0.5b 與 此script 放到 /bin 裡)
記得要 chmod 成可執行狀態唷~

#!/bin/bash

JAVA6_PATH=/usr/lib/jvm/java-6-oracle
JAVA7_PATH=/usr/lib/jvm/java-7-openjdk-amd64

read -t 30 -n 3 -p "Set Environment to JAVA6? (Y for 6/N for 7) " ANS_YN
sudo /bin/update-java-0.5b

case $ANS_YN in
    "NO"|"No"|"no"|"nO"|"N"|"n")
        echo "Set to JAVA7 ..."
        sudo update-alternatives --set java $JAVA7_PATH/jre/bin/java
        sudo update-alternatives --set javac $JAVA7_PATH/bin/javac
        sudo update-alternatives --set javadoc $JAVA7_PATH/bin/javadoc
        sudo update-alternatives --set javah $JAVA7_PATH/bin/javah
        sudo update-alternatives --set javap $JAVA7_PATH/bin/javap
        sudo update-alternatives --set javaws $JAVA7_PATH/jre/bin/javaws
#        sudo echo "export J2SDKDIR=/usr/lib/jvm/java-7-openjdk-amd64" > /etc/profile.d/jdk.sh
#        sudo echo "export J2REDIR=/usr/lib/jvm/java-7-openjdk-amd64/jre" >> /etc/profile.d/jdk.sh
        sudo echo "export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64">> /etc/profile.d/jdk.sh
#        sudo echo "export PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib/jvm/java-7-openjdk-amd64/bin:/usr/lib/jvm/java-7-openjdk-amd64/jre/bin:/usr/lib/jvm/java-6-oracle/db">> /etc/profile.d/jdk.sh
        sudo echo "export DERBY_HOME=/usr/lib/jvm/java-6-oracle/db" >> /etc/profile.d/jdk.sh
        echo "Set to JAVA7 completed... Please REBOOT manually..."
        ;;
    *)
        echo "Set to JAVA6..."
        sudo update-alternatives --set java $JAVA6_PATH/jre/bin/java
        sudo update-alternatives --set javac $JAVA6_PATH/bin/javac
        sudo update-alternatives --set javadoc $JAVA6_PATH/bin/javadoc
        sudo update-alternatives --set javah $JAVA6_PATH/bin/javah
        sudo update-alternatives --set javap $JAVA6_PATH/bin/javap
        sudo update-alternatives --set javaws $JAVA6_PATH/jre/bin/javaws
#        sudo echo "export J2SDKDIR=/usr/lib/jvm/java-6-openjdk-amd64" > /etc/profile.d/jdk.sh
#        sudo echo "export J2REDIR=/usr/lib/jvm/java-6-openjdk-amd64/jre" >> /etc/profile.d/jdk.sh
        sudo echo "export JAVA_HOME=/usr/lib/jvm/java-6-oracle">> /etc/profile.d/jdk.sh
#        sudo echo "export PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib/jvm/java-6-openjdk-amd64/bin:/usr/lib/jvm/java-6-openjdk-amd64/jre/bin:/usr/lib/jvm/java-6-oracle/db">> /etc/profile.d/jdk.sh
#        sudo echo "export DERBY_HOME=/usr/lib/jvm/java-6-oracle/db" >> /etc/profile.d/jdk.sh
        echo "Set to JAVA6 completed... Please REBOOT manually..."
        ;;
esac

2014年11月27日 星期四

Ubuntu 12 安裝 Java6/7

文章來源:
https://www.digitalocean.com/community/tutorials/how-to-install-java-on-ubuntu-with-apt-get

安裝原生 default 的 JRE/JDK

這是較佳且容義的選擇,在 Ubuntu 12.04~ 會安裝 OpenJDK 6,而 Ubuntu 12.10+ 則會安裝 OpenJDK 7
全程只需用 apt-get 安裝即可, 便利且穩定。
指令: 
    sudo apt-get update
    sudo apt-get install default-jre
    sudo apt-get install default-jdk

安裝 OpenJDK 7

指令:
    sudo apt-get install openjdk-7-jre
    sudo apt-get install openjdk-7-jdk

安裝 Oracle JDK

前置工作:
    sudo apt-get  install python-software-properties
    sudo add-apt-repository   ppa:webupd8team/java
    sudo apt-get  update

  安裝Oracle JDK 6:
        sudo apt-get  install  oracle-java-6-installer

  安裝Oracle JDK 7:
        sudo apt-get  install  oracle-java-7-installer

  安裝Oracle JDK 8:
        sudo apt-get  install  oracle-java-8-installer

 管理 JAVA使用版本

設定 java 與 javac
    sudo update-alternatives --config  java
    sudo update-alternatives --config  javac

設定 JAVA_HOME
    vi /etc/environment
    修改 JAVA_HOME="想採用的java path"
    如:  JAVA_HOME="/usr/lib/jvm/java-7-oracle"



原文如下:

This is the recommended and easiest option. This will install OpenJDK 6 on Ubuntu 12.04 and earlier and on 12.10+ it will install OpenJDK 7.
Installing Java with apt-get is easy. First, update the package index:
sudo apt-get update
Then, check if Java is not already installed:
java -version
If it returns "The program java can be found in the following packages", Java hasn't been installed yet, so execute the following command:
sudo apt-get install default-jre
This will install the Java Runtime Environment (JRE). If you instead need the Java Development Kit (JDK), which is usually needed to compile Java applications (for example Apache Ant, Apache Maven, Eclipse and IntelliJ IDEA execute the following command:
sudo apt-get install default-jdk
That is everything that is needed to install Java.
All other steps are optional and must only be executed when needed.

Installing OpenJDK 7 (optional)

To install OpenJDK 7, execute the following command:
sudo apt-get install openjdk-7-jre 
This will install the Java Runtime Environment (JRE). If you instead need the Java Development Kit (JDK), execute the following command:
sudo apt-get install openjdk-7-jdk

Installing Oracle JDK (optional)

The Oracle JDK is the official JDK; however, it is no longer provided by Oracle as a default installation for Ubuntu.
You can still install it using apt-get. To install any version, first execute the following commands:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Then, depending on the version you want to install, execute one of the following commands:

Oracle JDK 6

This is an old version but still in use.
sudo apt-get install oracle-java6-installer

Oracle JDK 7

This is the latest stable version.
sudo apt-get install oracle-java7-installer

Oracle JDK 8

This is a developer preview, the general release is scheduled for March 2014. This external article about Java 8 may help you to understand what it's all about.
sudo apt-get install oracle-java8-installer

Managing Java (optional)

When there are multiple Java installations on your Droplet, the Java version to use as default can be chosen. To do this, execute the following command:
sudo update-alternatives --config java
It will usually return something like this if you have 2 installations (if you have more, it will of course return more):
There are 2 choices for the alternative java (providing /usr/bin/java).

Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1062      manual mode

Press enter to keep the current choice[*], or type selection number:
You can now choose the number to use as default. This can also be done for the Java compiler (javac):
sudo update-alternatives --config javac
It is the same selection screen as the previous command and should be used in the same way. This command can be executed for all other commands which have different installations. In Java, this includes but is not limited to: keytool, javadoc and jarsigner.

Setting the "JAVA_HOME" environment variable

To set the JAVA_HOME environment variable, which is needed for some programs, first find out the path of your Java installation:
sudo update-alternatives --config java
It returns something like:
There are 2 choices for the alternative java (providing /usr/bin/java).

Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1062      manual mode

Press enter to keep the current choice[*], or type selection number:
The path of the installation is for each:
  1. /usr/lib/jvm/java-7-oracle
  2. /usr/lib/jvm/java-6-openjdk-amd64
  3. /usr/lib/jvm/java-7-oracle
Copy the path from your preferred installation and then edit the file /etc/environment:
sudo nano /etc/environment
In this file, add the following line (replacing YOUR_PATH by the just copied path):
JAVA_HOME="YOUR_PATH"
That should be enough to set the environment variable. Now reload this file:
source /etc/environment
Test it by executing:
echo $JAVA_HOME
If it returns the just set path, the environment variable has been set successfully. If it doesn't, please make sure you followed all steps correctly.




文章來源:
https://www.digitalocean.com/community/tutorials/how-to-install-java-on-ubuntu-with-apt-get

2014年9月10日 星期三

Android 4.4 在選單增加 Display Never Timeout

Android 4.4.x 在選單增加 Display Never Timeout

本文源自: http://ansonlai.iteye.com/blog/1899764

剛抓下來的 android 4.4.x 裡面的 設定--> 顯示 --> 休眠
只有 30 sec, 1 min, 2 min, 5 min, 10 min, 30 min項目,
可是有些情況我們並不想讓 Display 因為省電保護或... 因而關閉顯示(黑畫面)
可是一開始卻並無此項目可選....

Step 1:  改packages/apps/Settings/res/values/arrays.xml

    <!-- Display settings.  The delay in inactivity before the screen is turned off. These are shown in a list dialog. -->
    <string-array name="screen_timeout_entries">
        <item>15 seconds</item>
        <item>30 seconds</item>
        <item>1 minute</item>
        <item>2 minutes</item>
        <item>5 minutes</item>
        <item>10 minutes</item>
        <item>30 minutes</item>
        <item>Never</item>
    </string-array>
<!-- Do not translate. -->
    <string-array name="screen_timeout_values" translatable="false">
        <!-- Do not translate. -->
        <item>15000</item>
        <!-- Do not translate. -->
        <item>30000</item>
        <!-- Do not translate. -->
        <item>60000</item>
        <!-- Do not translate. -->
        <item>120000</item>
        <!-- Do not translate. -->
        <item>300000</item>
        <!-- Do not translate. -->
        <item>600000</item>
        <!-- Do not translate. -->
        <item>1800000</item>
        <item>-1</item>
    </string-array>



Step 2: 修改所有 packages/apps/Settings/res/values-xxxx/array.xml (各語系的顯示)
以英文為例:  packages/apps/Settings/res/values-en-rGB/arrays.xml

  <string-array name="screen_timeout_entries">
    <item msgid="3342301044271143016">"15 seconds"</item>
    <item msgid="8881760709354815449">"30 seconds"</item>
    <item msgid="7589406073232279088">"1 minute"</item>
    <item msgid="7001195990902244174">"2 minutes"</item>
    <item msgid="7489864775127957179">"5 minutes"</item>
    <item msgid="2314124409517439288">"10 minutes"</item>
    <item msgid="6864027152847611413">"30 minutes"</item>
    <item msgid="9989898989898989898">"Never"</item>
  </string-array>


Step 3: 修改code:  packages/apps/Settings/src/com/android/settings/DisplaySettings.java

    private void updateTimeoutPreferenceDescription(long currentTimeout) {
        ListPreference preference = mScreenTimeoutPreference;
        String summary;
        if (currentTimeout < -1) {
            // Unsupported value
            summary = "";
        } else {
            final CharSequence[] entries = preference.getEntries();
            final CharSequence[] values = preference.getEntryValues();
            if (entries == null || entries.length == 0) {
                summary = "";
            } else {
                int best = 0;
                for (int i = 0; i < values.length; i++) {
                    long timeout = Long.parseLong(values[i].toString());
                    if (currentTimeout == timeout) {
                        best = i;
                    }
                }
                summary = preference.getContext().getString(R.string.screen_timeout_summary,
                        entries[best]);
                if(currentTimeout < 0) summary = entries[best].toString();
            }
        }
        preference.setSummary(summary);
    }


Step 4: 修改code: frameworks/base/services/java/com/android/server/power/PowerManagerService.java

    private void updateUserActivitySummaryLocked(long now, int dirty) {
        // Update the status of the user activity timeout timer.
        if ((dirty & (DIRTY_USER_ACTIVITY | DIRTY_WAKEFULNESS | DIRTY_SETTINGS)) != 0) {
            mHandler.removeMessages(MSG_USER_ACTIVITY_TIMEOUT);

            long nextTimeout = 0;
            if (mWakefulness != WAKEFULNESS_ASLEEP) {
                final int screenOffTimeout = getScreenOffTimeoutLocked();
                final int screenDimDuration = getScreenDimDurationLocked(screenOffTimeout);

                mUserActivitySummary = 0;
                if (mLastUserActivityTime >= mLastWakeTime) {
                    nextTimeout = mLastUserActivityTime
                            + screenOffTimeout - screenDimDuration;
                    if (now < nextTimeout) {
                        mUserActivitySummary |= USER_ACTIVITY_SCREEN_BRIGHT;
                    } else {
                        nextTimeout = mLastUserActivityTime + screenOffTimeout;
                        if (now < nextTimeout) {
                            mUserActivitySummary |= USER_ACTIVITY_SCREEN_DIM;
                        }
                    }
                }
                if (mUserActivitySummary == 0
                        && mLastUserActivityTimeNoChangeLights >= mLastWakeTime) {
                    nextTimeout = mLastUserActivityTimeNoChangeLights + screenOffTimeout;
                    if (now < nextTimeout
                            && mDisplayPowerRequest.screenState
                                    != DisplayPowerRequest.SCREEN_STATE_OFF) {
                        mUserActivitySummary = mDisplayPowerRequest.screenState
                                == DisplayPowerRequest.SCREEN_STATE_BRIGHT ?
                                USER_ACTIVITY_SCREEN_BRIGHT : USER_ACTIVITY_SCREEN_DIM;
                    }
                }
                ////if (mUserActivitySummary != 0) {
                if (mUserActivitySummary != 0 && mScreenOffTimeoutSetting > 0) {
                    Message msg = mHandler.obtainMessage(MSG_USER_ACTIVITY_TIMEOUT);
                    msg.setAsynchronous(true);
                    mHandler.sendMessageAtTime(msg, nextTimeout);
                }
            } else {
                mUserActivitySummary = 0;
            }

            if (DEBUG_SPEW) {
                Slog.d(TAG, "updateUserActivitySummaryLocked: mWakefulness="
                        + wakefulnessToString(mWakefulness)
                        + ", mUserActivitySummary=0x" + Integer.toHexString(mUserActivitySummary)
                        + ", nextTimeout=" + TimeUtils.formatUptime(nextTimeout));
            }
        }
    }



源自: http://ansonlai.iteye.com/blog/1899764