2016-12-27

GNOME デスクトップにアイコンを表示する

Fedora 25 から、Wayland がデフォルトのウィンドウシステムに採用されるようになりました。Wayland は、X Window System の代替を目指している Linux 向けに開発されたディスプレイサーバーのプロトコルで、OpenGL ES ベースのグラフィックシステムです [1]

Wayland は、Fedora 23 の頃から利用出来るようにはなっていましたが、X Window から完全に置き換えるにはまだ機能不十分と思っていました。しかし、Fedora 25 ではデフォルトの設定のままインストールすると GNOME のデスクトップ環境がインストールされ、Wayland が X Window の代わりに利用されるようになります。機能的には、以前とあまり変わらないなと思っていましたが、(頻繁にあるパッケージのアップデート後)ある時からデスクトップにアイコンが表示されるようになりました。

X Window を利用している時にはデスクトップ上によく使うアプリケーションのアイコンなどを表示していたのですが、Wayland に切り替えてから表示されなくなっていました。設定をそのまま残していたので Wayland 側が対応したことにより、また表示されるようになったのでしょう。

※ 以下の CentOS 8 の記事も参考にしてください。

ということで、GNOME のデスクトップにアイコンを表示する方法についてまとめてみました。

動作環境は次の通りです。

  • OS: Fedora 25 (x86_64)
  • xorg-x11-server-Xwayland-1.19.0-2.fc25.x86_64
    • および関連ライブラリ
  • gnome-tweak-tool-3.22.0-1.fc25.noarch

Gnome Tweak Tool

GNOME Tweak Tool を使うと、Microsoft Windows のようにデスクトップ上にホームディレクトリなどを表示することができます。設定例を下記に示しました。

「デスクトップ」フォルダの利用

(「フォルダ」という語を使うのは抵抗があるのですが…)$HOME/デスクトップ にアプリケーションの desktop ファイル(デスクトップエントリファイル)をコピーするとデスクトップ上にアプリケーションのアイコンが表示されます。

$ cd ~/デスクトップ
$ ls
'Notepad Plus Plus.desktop'  netbeans-8.2.desktop
Pidgin.desktop               org.gnome.Cheese.desktop
dia.desktop                  org.gnome.Screenshot.desktop
eclipse.desktop              org.gnome.Terminal.desktop
gimp.desktop                 org.gnome.gedit.desktop
google-chrome.desktop        sqlitebrowser.desktop
libreoffice-calc.desktop     studio.desktop
libreoffice-draw.desktop     transmission-gtk.desktop
libreoffice-impress.desktop  wxPython
libreoffice-writer.desktop   xmind.desktop
mscore.desktop
$ 

ファイル (nautilus) でデスクトップフォルダを見ると、アイコンがそのまま表示されています。

この desktop ファイル(デスクトップエントリファイル)は単純なテキストファイルで、テキストエディタなどで内容を確認できます。例えば Netbeans IDE の netbeans-8.2.desktop の内容は以下のようになっています。

[Desktop Entry]
Encoding=UTF-8
Name=NetBeans IDE 8.2
Comment=The Smarter Way to Code
Exec=/bin/sh "/home/bitwalk/netbeans-8.2/bin/netbeans"
Icon=/home/bitwalk/netbeans-8.2/nb/netbeans.png
Categories=Application;Development;Java;IDE
Version=1.0
Type=Application
Terminal=0

この desktop ファイルは、アプリケーションパッケージをインストールした時に、/usr/share/applications にインストールされます。デスクトップに起動用のアイコンを表示したい場合は、自分のアカウントの $HOME/デスクトップ へ該当する desktop ファイルをコピーするかシンボリック・リンクを作成します。

その他のファイルなどもデスクトップに表示させたい場合は、直接 $HOME/デスクトップ に保存するか、シンボリック・リンクを作成します。

ちなみに、自分のアカウントの領域($HOME)にインストールしたアプリケーションについては、そのアプリケーションが対応していれば、$HOME/.local/share/applications に desktop ファイル(デスクトップエントリファイル)があると思います。

参考サイト

  1. bitWalk's: Wayland と X Window System
  2. Wayland - Wikipedia

 

ブログランキング・にほんブログ村へ
にほんブログ村

2016-12-11

Fedora Media Writer

Fedora をインストールする標準メディアは長い間 CD あるいは DVD でしたが、大容量のフラッシュメモリが安価で入手できるようになった今、もっぱらインストールに USB のフラッシュメモリが使用されるようになりました。

先日リリースされた Fedora 25 では、フラッシュメモリのような USB メディアをデフォルトのインストール・メディアとして扱うようになりました。Fedora Media Player は、USB メモリに Fedora のインストール用イメージを作成するユーティリティ・ツールです。従来からあった liveusb-creator をオーバーホールして改良したもので、より簡単に Fedora のインストーラーイメージを USB メモリに作成できるようになりました [1]

今回は、この Fedora Media Writer の使い方を紹介します。

使用環境は以下のとおりです。

  • OS: Fedora 25 (x86_64) / GNOME desktop

Fedora Media Writer のインストール

端末エミュレータを起動して、root 権限で次のようにタイプしてインストールします。

$ su
パスワード:
# dnf install mediawriter
メタデータの期限切れの確認は、0:33:09 時間前の Sun Dec 11 09:11:56 2016 に実施しました。
依存性が解決されました。
================================================================================
 Package             アーキテクチャ バージョン            リポジトリ       容量
================================================================================
インストール:
 mediawriter         x86_64         4.0.7-0.fc25          updates         2.7 M

トランザクションの要約
================================================================================
インストール  1 パッケージ

総ダウンロード容量: 2.7 M
インストールされる容量: 4.8 M
これでいいですか? [y/N]: y
パッケージをダウンロードしています:
mediawriter-4.0.7-0.fc25.x86_64.rpm             2.9 MB/s | 2.7 MB     00:00    
--------------------------------------------------------------------------------
合計                                            1.0 MB/s | 2.7 MB     00:02     
トランザクションの確認を実行中...
トランザクションの確認に成功しました。
トランザクションのテストを実行中...
トランザクションのテストに成功しました。
トランザクションを実行中...
  インストール  : mediawriter-4.0.7-0.fc25.x86_64                           1/1 
  検証中        : mediawriter-4.0.7-0.fc25.x86_64                           1/1 

インストール済み:
  mediawriter.x86_64 4.0.7-0.fc25                                               

完了しました!
# exit
exit
$ 

Fedora Media Writer の使い方

まず、インストールメディアに使用する USB メモリを USB に挿入しておきます。容量は 2GB 以上あれば十分でしょう。

「アクティビティ」をクリックして表示されるバーから「アプリケーションを表示する」を選択して、Fedora Media Writer のアイコンをクリックして起動します。端末エミュレータから起動する場合は mediawriter とタイプして改行します。

Fedora Workstation と Fedora Server のフレーバーが選択できるようですが、ここでは Fedora Workstation をクリックします。

Fedora Workstation の説明画面になりますので、「Create Live USB」ボタンをクリックして次へ進みます。

インストール用の iso イメージが $HOME/ダウンロード 以下にダウンロードされます。

ダウンロードが終了すると「Write to disk」ボタンが赤くなりますので、クリックして USB メディアに書き込みます。

root 権限が必要になると認証を要求されるので、root のパスワードを入力入力して「認証」ボタンをクリックします。

USB へ書き込みが始まります。

書き込みが終われば検証がはじまります。

懸賞が無事終了すると「Close」ボタンが表示されますので、クリックして終了します。

参考サイト

  1. How to create and use Live USB - FedoraProject

 

ブログランキング・にほんブログ村へ
にほんブログ村

2016-12-05

Java DB を試す

Apache Derby は、IBM から寄贈された Cloudscape のソースコードを元に、Apache ソフトウェア財団によってプログラムの開発が進められている、Java 技術で実装された RDBMS のソフトウェアです。Java DB は、オープンソースの Apache Derby データベースをオラクルがサポートしたディストリビューションです。JDBC API および Java EE API により標準の ANSI/ISO SQLをサポートします。Java DBは、JDKに含まれています。

以前、Python で SQLite3 のデータベースを操作するサンプルを紹介しましたが [1]、Java と Python を状況に応じて使い分けており、アプリケーション専用で使用するような簡単なデータベースが利用できると、どちらの場合も便利です。Java の開発環境である JDK では、Java DB が利用できるので、わざわざ SQLite を使わなくとも、ひとまず、Java DB を使ってみることにしました。

動作環境は次の通りです。Linux (Fedora) ですが、標準パッケージの OpenJDK は使用していません。

  • OS: Fedora 25 (x86_64)
  • Java: jdk1.8.0_112-1.8.0_112-fcs.x86_64 (Oracle)
  • IDE: NetBeans IDE 8.2

ライブラリの追加

Java DB を使うためには、Java DB 用の JDBC ドライバーの入っているライブラリーが必要になります。組込用途には derby.jar を、クライアント/サーバー環境用には derbyclient.jar をクラスパスに追加します。

今回は、組込用途として derby.jar を下記のように NetBeans のプロジェクトに追加しました。

サンプルソース

今回も DBOnlineSQLite入門 › データの追加と削除 › データの更新 [2] で使われている例をベースに焼き直しています。あらかじめご了承ください。

リスト:JavaDBTest.java 
package javadbtest;

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

public final class JavaDBTest {

    Connection conn;

    JavaDBTest(String dbFile) {
        connection(dbFile);
    }

    // database connection
    void connection(String dbFile) {
        try {
            conn = DriverManager.getConnection("jdbc:derby:" + dbFile + "; create=true");
        } catch (SQLException ex) {
            Logger.getLogger(JavaDBTest.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    // Executes the given SQL statement that returns nothing
    void executeSQL(String sql) {
        Statement stat;
        try {
            stat = conn.createStatement();
            stat.executeUpdate(sql);
        } catch (SQLException ex) {
            Logger.getLogger(JavaDBTest.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    // Executes the given SQL statement, which returns a single ResultSet object.
    ResultSet querySQL(String sql) {
        Statement stat;

        try {
            stat = conn.createStatement();
            return stat.executeQuery(sql);
        } catch (SQLException ex) {
            Logger.getLogger(JavaDBTest.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }

    // database termination
    void shutdown(String dbFile) {
        try {
            conn.close();
            DriverManager.getConnection("jdbc:derby:" + dbFile + "; shutdown=true");
        } catch (SQLException ex) {
            Logger.getLogger(JavaDBTest.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public static void main(String[] args) {
        String dbName = "test01";
        String dbDir = new File(System.getenv("HOME"), "tmp").getPath();
        String dbFile = new File(dbDir, dbName).getPath();

        JavaDBTest db = new JavaDBTest(dbFile);

        // create table
        db.executeSQL("create table staff(id integer, name varchar(10), unit varchar(10), flag varchar(4))");
        db.executeSQL("insert into staff(id, name, unit, flag) values (1, 'Satoh', 'Sales', 'Yes')");
        db.executeSQL("insert into staff(id, name, unit, flag) values (2, 'Mori', 'Office', 'No')");
        db.executeSQL("insert into staff(id, name, unit, flag) values (3, 'Yamada', 'Office', 'Yes')");
        db.executeSQL("insert into staff(id, name, unit, flag) values (4, 'Asada', 'Tech', 'Yes')");
        db.executeSQL("insert into staff(id, name, unit, flag) values (5, 'Noguchi', 'Sales', 'No')");

        // query
        ResultSet res = db.querySQL("select * from staff");
        try {
            while (res.next()) {
                System.out.println(res.getInt("id") + "\t" + res.getString("name")
                        + "\t" + res.getString("unit") + "\t" + res.getString("flag"));
            }
        } catch (SQLException ex) {
            Logger.getLogger(JavaDBTest.class.getName()).log(Level.SEVERE, null, ex);
        }

        // database termination
        db.shutdown(dbFile);
    }
}

実行例

CPU (N2830) が非力だからでしょうか、妙に時間がかかっています。

run:
1 Satoh Sales Yes
2 Mori Office No
3 Yamada Office Yes
4 Asada Tech Yes
5 Noguchi Sales No
ビルド成功(合計時間: 12秒)

参考サイト

  1. bitWalk's: Python と SQLite3
  2. データの更新(UPDATE文) - SQLite入門
  3. JavaDBメモ(Hishidama's JavaDB Memo)
  4. Windows上でjavaDBをとりあえず使ってみる

 

ブログランキング・にほんブログ村へ
にほんブログ村

2016-11-28

PlayOnLinux を試す

PlayOnLinux は Linux 上で Wine を使って Windows のゲームなどのインストールを簡単にするためのアプリケーションです [1]

Wine は、Windows 向けのアプリケーションを Linux 上で動作させるため、オープンソースで Windows API を実装した Windows 互換レイヤーです [2]

Linux 上で Windows のゲームをしたいとか、どうしても Windows のアプリケーションを Linux 上で動作させたいといった強い動機がなかったので、Wine に触れることが無くなってしまっていたのですが、Fedora でも PlayOnLinux のパッケージを利用できることを知ったので試してみました。なお PlayOnLinux については、参考サイト [3] に詳しい紹介がされています。

使用環境は以下のとおりです。

  • OS: Fedora 25 (x86_64)
  • Wine: wine-1.9.22-1.fc25.x86_64 と関連パッケージ
  • PlayOnLinux: playonlinux-4.2.10-9.fc25.x86_64

PlayOnLinux のインストール

端末エミュレータを起動して、root 権限で次のようにタイプしてインストールします。私の環境の場合、既にインストールされているパッケージのせいでインストールできなかったので、パッケージの依存性を解決するため、--allowerasing オプションを付加しました。

$ su
パスワード:
# dnf install --allowerasing playonlinux
Failed to synchronize cache for repo 'Dropbox', 無効化。
メタデータの期限切れの確認は、1:27:39 時間前の Sun Nov 27 18:01:50 2016 に実施しました。
依存性が解決されました。
================================================================================
 Package                  アーキテクチャ
                                  バージョン                     リポジトリ
                                                                           容量
================================================================================
インストール:
 ImageMagick              x86_64  6.9.3.0-3.fc25                 fedora   170 k
 ImageMagick-libs         x86_64  6.9.3.0-3.fc25                 fedora   2.2 M
 bzip2-libs               i686    1.0.6-20.fc24                  fedora    46 k
  ...
  ...
 playonlinux              x86_64  4.2.10-9.fc25                  fedora   2.3 M
  ...
  ...
(途中省略)
  ...
  ...
ダウングレード済み:
  gnutls.x86_64 3.5.5-2.fc25             gnutls-c++.x86_64 3.5.5-2.fc25        
  gnutls-dane.x86_64 3.5.5-2.fc25        gnutls-devel.x86_64 3.5.5-2.fc25      
  gnutls-utils.x86_64 3.5.5-2.fc25      

完了しました!
#

PlayOnLinux の起動

GNOME のアクティビティ メニューから「アプリケーションを表示する」を選んで、PlayOnLinux のアイコンをクリックして起動できますが、悲しいかな UTF−8 化されていてもやっぱり日本語環境には優しくなくて、インストール可能なアプリケーションの一覧の画面までたどり着けませんでした。

そこで、端末エミュレータ上で以下のようにデフォルトロケール export LANG=C を設定して PlayOnLinux を起動しました。

# exit
exit
$ export LANG=C;playonlinux
Looking for python... 2.7.12 - wxversion(s): 3.0-gtk3
selected
[main] Message: PlayOnLinux (4.2.10) is starting
[clean_tmp] Message: Cleaning temp directory
[Check_OpenGL] Message: 64bits direct rendering is enabled
[Check_OpenGL] Message: 64bits direct rendering is enabled
[POL_System_CheckFS] Message: Checking filesystem for /home/bitwalk/.PlayOnLinux/
[main] Message: Filesystem is compatible
[install_plugins] Message: Checking plugin: Capture...
[install_plugins] Message: Checking plugin: ScreenCap...
  ...
  ...
  ...

起動したら Install ボタンをクリックします。

しばらく待つと、インストール可能なアプリケーションの一覧が表示されます。

Windows アプリケーションのインストール

ここでは Development で Notepad Plus Plus (Notepad++) をインストールしてみます。Notepad Plus Plus を選択し、右下の Install ボタンをクリックします。

すると、PlayOnLinux Wizard なるダイアログ画面が表示されるので、Next ボタンを押して次へ進みます。

三番目のダイアログ画面で PlayOnLinux Installation Wizard になるのですが、画面上の文字列が溢れているためか、下の Next や Cancel のボタンが見えなくなってしまっています。

しかし、前のダイアログ画面で Next ボタンがあった辺りに、このダイアログ画面でもマウスのポインタを持っていってクリックすると次の画面に進みます。

次のダイアログ画面で Download the program を選択して Next ボタンをクリックすると、インストーラのダウンロードが始まります。

NotePad++ のインストーラが起動しますので、ダイアログに従ってインストールを進めます。

インストールが終了して(Plugin Manager の設定後)Notepad++ が起動します。

Windows のアプリケーションをインストールしてしまえば、アクティビティから「アプリケーションを表示する」を選んで、PlayOnLinux のアイコンをクリックして起動しても使い物になります。インストールした Windows のアプリケーションは PlayOnLinux の画面から起動することができるからです。

まとめ

マルチバイトの言語環境固有の問題なのでしょうか、PlayOnLinux を利用するにはちょっと工夫が必要になります。それでも Linux 上で利用したい Windows のアプリケーションがあり、PlayOnLinux のリストに収録されていれば、インストール/アンインストールの管理が簡単な PlayOnLinux を利用する価値はあるように思います。

参考サイト

  1. Home - PlayOnLinux - Run your Windows applications on Linux easily!
  2. WineHQ - Run Windows applications on Linux, BSD, Solaris and Mac OS X
  3. WindowsのゲームをLinuxで楽しむ PlayOnLinux | OSDN Magazine [2008-3-13]

ブログランキング・にほんブログ村へ
にほんブログ村

2016-11-27

Fedora 25 リリース

Fedora 25 が、米国時間 11 月 22 日にリリースされました。遅くなってしまいましたが、今回のリリースの特徴をまとめました。Fedora 25 のラインナップには,デスクトップ向けの Fedora Workstation、サーバ向けの Fedora Server、そしてクラウドに最適化した Fedora Atomic がありますが、ここではデスクトップ向けの変更を中心にまとめています。

デスクトップで変更を実感できるものは、GNOME の新機能がほとんどになりますが、今後、新機能を確認して特筆すべきものについて個々に紹介していきたいと考えています。

ディスプレイサーバ
GDM (GNOME Display Manager) が、X11 の代わりに Wayland をデフォルトで使用するようになりました。
Gnome 3.22: Karlsruhe [5]
GNOME 3.22 が採用され、以下の機能が追加されました。
  • Flatpak: アプリケーションが必要とするコマンドやライブラリを SandBox に含めて提供するフレームワーク
  • 複数のファイル名を一度に変更する
  • 写真をソーシャルメディアと共有
  • 「ソフトウェア」アプリケーション(パッケージのインストール、更新などを管理する GUI ツール)の改善
  • ファイルアプリケーション Files (nautilus) の改善
  • Files (nautilus) でバッチファイルのリネーム [6]
  • キーボード設定のリデザイン
  • dconf エディタのリデザイン
  • その他多数…
  • Firefox 49
    Firefox 49 が採用されています [7]
    インプットメソッド
    ibus-libpinyin を使用しているユーザーは Ctl + Shift + d で、記憶されている過去に入力されたフレーズが消去されます。
    新しい国際化(多言語化)パッケージ
    フォント
    • adobe-source-serif-pro-fonts
    • oflb-coval-fonts
    • astigmatic-grand-hotel-fonts
    • typetype-molot-fonts
    ライブラリ
    • sharpfont
    • libXfont2
    • nodejs-os-locale
    • nodejs-y18n
    IBus Typing Booster 多言語サポート
    IBus Emoji(絵文字)入力 [8]

    参考サイト

    1. Fedora 25 Release Notes (CC BY-SA 3.0)
    2. Fedora 25がリリース ―GNOME 3.22をサポート,Waylandがデフォルトに:Linux Daily Topics|gihyo.jp … 技術評論社 [2016-11-24]
    3. Waylandがデフォルトとなった「Fedora 25」リリース | OSDN Magazine [2016-11-24]
    4. 「Fedora 25」 正式リリース | Think IT(シンクイット) [2016-11-25]
    5. GNOME 3.22インストール | 主な追加機能・変更点 | 普段使いのArch Linux [2016-10-16]
    6. Nautilus 3.22 Adds Batch File Renaming, Native Compression Features - OMG! Ubuntu! [2016-08-31]
    7. Firefox 49.0 リリースノート [2016-09-20]
    8. bitWalk's: 今度の Fedora 25 では絵文字が使えるらしい [2016-09-30]

     

    ブログランキング・にほんブログ村へ
    にほんブログ村

    2016-11-20

    Python と SQLite3

    Python では、バージョン 2.5 から標準ライブラリに含まれる sqlite3 モジュールで SQLite のデータベースを利用できるようになっています [1]。Python から SQL 文を実行することで、プログラム的には非常に柔軟にデータベースを操作することができるようになります。

    以前、本ブログで sqlite3 のコマンドを紹介しましたが [2]、今回は Python から SQLite のデータベースを操作する例を紹介します。

    使用環境は以下のとおりです。

    • OS: Fedora 25 beta (x86_64)
    • Python: python-2.7.12-7.fc25.x86_64

    ここで紹介する例は、DBOnlineSQLite入門 › データの追加と削除 › データの更新 [3] で使われている例をベースにして、Python から操作したかのように焼き直しています。あらかじめご了承ください。

    データベースの作成とデータの追加

    データベースの作成とデータを追加する例を示しました。

    # -*- coding: utf-8 -*-
    import os
    import sqlite3
    
    db_name = "test01.db"
    db_file = os.path.join(os.environ['HOME'], "tmp", db_name)
    conn = sqlite3.connect(db_file)
    cur = conn.cursor()
    
    sql = "create table staff(id integer, name text, unit text, flag text);"
    cur.execute(sql)
    
    sql = "insert into staff(id, name, unit, flag) values (?, ?, ?, ?);"
    users = [
        (1, 'Satoh', 'Sales', 'Yes'),
        (2, 'Mori', 'Office', 'No'),
        (3, 'Yamada', 'Office', 'Yes'),
        (4, 'Asada', 'Tech', 'Yes'),
        (5, 'Noguchi', 'Sales', 'No')
    ]
    cur.executemany(sql, users)
    conn.commit()
    
    sql = "select * from staff;"
    for row in cur.execute(sql):
        print(row)
    
    conn.close()
    

    実行例を示します。

    (1, u'Satoh', u'Sales', u'Yes')
    (2, u'Mori', u'Office', u'No')
    (3, u'Yamada', u'Office', u'Yes')
    (4, u'Asada', u'Tech', u'Yes')
    (5, u'Noguchi', u'Sales', u'No')
    

    データの更新

    これは特定のレコードのデータを更新する例です。レコードを決めて更新するのではつまらないので、name フィールドが 'Yamada' であるレコードを探し、'Yamaoka' に変更するようにしました。しかし、合致するレコードは(あるとしても)一つしかないという前提でコーディングしています。

    # -*- coding: utf-8 -*-
    import os
    import sqlite3
    
    db_name = "test01.db"
    db_file = os.path.join(os.environ['HOME'], "tmp", db_name)
    conn = sqlite3.connect(db_file)
    cur = conn.cursor()
    
    user = ('Yamada',)
    cur.execute('select * from staff where name = ?', user)
    result = cur.fetchone()
    
    if isinstance(result, tuple):
        sql = "update staff set name = ? where id = ?;"
        user_swap = ['Yamaoka', result[0]]
        cur.execute(sql, user_swap)
        conn.commit()
    
        sql = "select * from staff;"
        for row in cur.execute(sql):
            print(row)
    else:
        print result
    
    conn.close()
    

    実行例を示します。

    (1, u'Satoh', u'Sales', u'Yes')
    (2, u'Mori', u'Office', u'No')
    (3, u'Yamaoka', u'Office', u'Yes')
    (4, u'Asada', u'Tech', u'Yes')
    (5, u'Noguchi', u'Sales', u'No')
    

    Python の sqlite3 モジュールの使い方については、参考サイト [4] に判りやすくまとめられていましたので、参考にさせていただきました。

    参考サイト

    1. 11.13. sqlite3 — SQLite データベースに対する DB-API 2.0 インタフェース — Python 2.7.x ドキュメント
    2. bitWalk's: sqlite3 のコマンド [2016-10-02]
    3. データの更新(UPDATE文) - SQLite入門
    4. Pythonでsqlite - Qiita [2016-05-12]

    ブログランキング・にほんブログ村へ
    にほんブログ村

    2016-11-19

    RStudio が version 1.0 になっていました

    RStudio は R 用の統合開発環境 (IDE) です。ずいぶんと長い間バージョンが 0.9 台のままだったのですが、ふと RStudio のサイトを見てみると、RStudio 1.0.44 が 11/1 にリリースされていました [1]

    RStudio には Desktop 版と Server 版があり、それぞれ無料のオープンソース版と有償版が提供されています。Windows、MacOS および Linux (Ubuntu, Fedora) に対応したバイナリおよびソースがダウンロードできるようになっています [2]

    以下は Fedora 25 beta (x86_64) 上での Desktop 版 (Free) の実行例です。

    参考サイト

    1. RStudio Release Notes – RStudio
    2. Download RStudio – RStudio
    3. RStudio Adds SparklyR Support [2016-11-09]
    4. IBM, Cloudera join RStudio to create R interface to Apache Spark | Computerworld [2016-09-28]

     

    ブログランキング・にほんブログ村へ
    にほんブログ村

    2016-11-13

    【備忘録】dpkg の使い方

    dpkg は Debian の .deb の拡張子を持ったパッケージをインストール、削除し、そしてパッケージの情報を得るために使われる低水準のツールです。Debian のパッケージの仕組みを理解し、ゆくゆくは自分で deb パッケージを作れるようにするには dpkg コマンドの理解は必須であると考え、コマンドの主な内容をまとめてみました。

    ところが…、いろいろなサイトを調べて見ると、いわゆる Debian の man ページに記載されていない内容があり、少々混乱しています。ことによったら Ubuntu などによる拡張があるのかもしれないと思いましたが、当の Debian 上の dpkg コマンドでも使えるアクションだったりもします。今のところ Debian 系のディストリビューションに関して未熟なためなのか、単なるバージョンの違いかどうかを特定できなかったので、ひとまず必要最低限の機能だと思われるものだけまとめてみました。

    Synopsis

    dpkg [option...] action
    

    Action

    主なアクションは以下のとおりです。

    Action説  明
    -i, --install package-file...パッケージ package-file... をインストールします。パッケージのインストールは次のステップで行われます。
    1.新しいパッケージのコントロールファイルを抽出します。
    2.異なるバージョンの同じパッケージが既にインストールされている場合は、古いパッケージの prerm スクリプトが実行されます。
    3.パッケージで指定されていれば、preinst スクリプトを実行します。
    4.新しいファイルを展開します。同時に古いファイルのバックアップもします。
    5.新しいインストールの前に異なるバージョンの同じパッケージが既にインストールされている場合は、古いパッケージの postrm スクリプトが実行されます。
    6.パッケージを設定します。詳細は --configure を参照。
    --unpack package-file...パッケージを展開します。
    --configure package...|-a|--pending展開されているパッケージ package-file... を設定します。-a あるいはパッケージ名の代わりに --pending が指定されている場合は、すべての展開されていないパッケージあるいはまだ設定されていないパッケージが設定されます。
    -r, --remove package...|-a|--pendingパッケージ package-file... をアンインストールします。-a あるいはパッケージ名の代わりに --pending が指定されている場合は、展開されていないすべてのパッケージあるいは /var/lib/dpkg/status で削除マークがつけられているものをアンインストールされます。パッケージのアンインストールは次のステップで行われます。
    1.prerm スクリプトを実行。
    2.インストールされたファイルを削除。
    3.postrm スクリプトを実行。
    -?, --help簡単なヘルプメッセージを表示します。
    --versiondkpg のバージョン情報を表示します。

    Options

    主なオプションをまとめました。

    オプション説  明
    -B, --auto-deconfigure削除するパッケージに依存しているパッケージの設定を自動的に取り消します。
    --no-act, --dry-run, --simulate実行されるべき処理をすべて行うが、いかなる変更も書き込まない。これは一切変更を行わずに、指定したアクションによって何が起こるかを確認する際に用いられます。
    -R, --recursive指定したディレクトリを再帰的に検索し、*.deb というパターンにマッチする通常ファイルすべてに処理を行います。
    -Gインストール済のパッケージのバージョンの方が新しければ、パッケージをインストールしません。
    -E, --skip-same-versionすでに同じバージョンのパッケージがインストールされている場合、パッケージをインストールしません。
    --no-debsigパッケージの署名を確認しません。

    参考サイト

    1. dpkg(1) - Linux manual page
    2. Man page of dpkg

     

    ブログランキング・にほんブログ村へ
    にほんブログ村