Fedora」タグアーカイブ

Fedora 15 007

Fedora 15 (GNOME 3) 64bit 生活七日目。
Ubuntu から Fedora へ乗り換えの覚書日記フィナーレ。

※ samba

Ubuntu でやっていてまだやっていないのは Windows との接続だ。

Ubuntu と Windows でファイル共有 – L’Isola di Niente
と同じように簡単ではない、つか共有なんてプロパティタブは Fedora 15 には無い。

とにかく「追加/削除」から samba 導入。
chkconfig コマンドを root で使って起動時にサービスが立ち上がるように。
ついでに先日導入した Apache も、Ubuntu は導入すれば全自動でやってくれたけど。

$ su
# chkconfig httpd on
# chkconfig smb on

ファイアーウォールの設定で Samba の項目にチェックを入れて適用。

ついでだが、 dconf-editor で workgroup を書き込んでおいたほうがよさそう。

再起動、Nautilus の「移動」メニューから「ネットワーク」に移動。
ひたすらクリックしていくと私のノート PC が見つかった。

これで Windows ノートからファイルをコピーできるようになった。
だけどこれだけでは fedora のファイルは Windows にはコピーできない。
SELinux を弄くる必要があるみたい。

Apache を動かしているのでとりあえず http で今回がお茶を濁した。
ifconfig コマンドで自分の ip アドレスを調べる。
ファイアーウォールで www を有効にする。
コピーしたいファイルを www ディレクトリにコピーする。
んで Windows のブラウザに ip アドレスを打ち込んでダウンロード。
面倒くさいけどコレなら SELinux に左右されないようだ。
以上多分誰もやらない Tips でした。

**********

で、一週間ほど x86_64 の Fedora を利用してみた結果。
問題無さそうだということで半年間継続利用することにします。

来週あたりに 8 GByte 以上のメモリを買ってきてみるか。
今まで仮想 Vista を使っている時にホストで何もできなかったもの。

追記

FTP のほうが簡単だった…

vsftpd を導入
SELinux の FTP 設定変更 # setsebool -P ftp_home_dir 1
使いたい時だけ FTP 有効 # /etc/init.d/vsftpd start
ファイアーウォールの FTP ポートを開ける。
Windows Explorer で ftp://Linux ユーザー名@IPアドレス/ホーム以下で FTP したい場所
例 ftp://sasakima-nao@192.168.1.21/_temp
Explorer がダイアログを出すので Linux のログインパスワード

終わったらファイアーウォールのポートを閉じればセキュリティもばっちり、と思う。
SELinux 自体はあまり弄くりたくないんでコレでいこうかと。

Fedora 15 006

Fedora 15 (GNOME 3) 64bit 生活六日目。

※ Gedit Plugin

Gedit/PythonPluginHowTo – GNOME Live!

Gedit 3 のプラグインは妙に複雑になった感じだけどやってみると簡単。
Gedit プラグインの作り方 – L’Isola di Niente
私の公開しているこのページを Gedit 3 用に改造してみる。

*.gedit-plugin 拡張子であったファイルは *.plugin と拡張子を変更。
セクション名を [Plugin] に、IAge を 3 に変更、v2 との違いはコレだけだ。

肝心のコード

#-*- coding:utf-8 -*-

import gedit
import gtk

class TestPligin(gedit.Plugin):
    def __init__(self):
        gedit.Plugin.__init__(self)

    def activate(self, window):
        self.window = window

    def deactivate(self, window):
        pass

    def update_ui(self, window):
        pass

#-*- coding:utf-8 -*-

from gi.repository import GObject, Gedit, Gtk

class TestPligin(GObject.Object, Gedit.WindowActivatable):
    __gtype_name__ = "TestPligin"
    window = GObject.property(type=Gedit.Window)
    def __init__(self):
        GObject.Object.__init__(self)

    def do_activate(self):
        pass
        
    def do_deactivate(self):
        pass

    def do_update_state(self):
        pass

ということみたい、コールバックに引数は無くなったんだね。
__gtype_name__ は class 名と同じにしなければいけないみたい。

多重継承の敬称元を Gedit.AppActivatable とか3つから選べになっている。
普通なら Gedit.WindowActivatable だけでいいだろう。
下のほうにあるサンプルコードは継承元を書き忘れているじゃん…

後は self.window のメソッドを辿って弄くっていく。
v2 のコードから gtk → Gtk に全置換する必要がある。
それと activate のコールバックは引数を3つにしておく必要があった。
user_data を指定しなくても None が送られてくるみたい、注意ね。

ついでに GtkMessageDialog の引数は enum 形式に変更されていた。
指定がよく解らない人は dir() で辿って(私はそうやった)

testtest.plugin

[Plugin]
Loader=python
Module=testtest
IAge=3
Name=testtest
Name[ja]=テストテスト
Description=plugin test
Description[ja]=プラグインのテスト
Authors=sasakima-nao 
Copyright=Copyright © 2011 sasakima-nao 
Website=http://palepoli.skr.jp/

testtest.py

#-*- coding:utf-8 -*-

from gi.repository import GObject, Gedit, Gtk

ui_str = """<ui>
  <menubar name="MenuBar">
    <menu name="EditMenu" action="Edit">
      <placeholder name="EditOps_3">
        <menuitem name="testtest" action="testtest"/>
      </placeholder>
    </menu>
  </menubar>
</ui>
"""

class TestTest(GObject.Object, Gedit.WindowActivatable):
    __gtype_name__ = "TestTest"
    window = GObject.property(type=Gedit.Window)
    def __init__(self):
        GObject.Object.__init__(self)

    def do_activate(self):
        # GtkUIManager を得る
        manager = self.window.get_ui_manager()
        # GtkActionGroup を新規で作成
        self._action_group = Gtk.ActionGroup("TestTestActions")
        # GtkActionEntry を作成
        # name, stock_id, label, accelerator, tooltip, callback
        actions = [("testtest", None, "引用に変換", None, "すてーたすばー", self.on_testtest_activate)]
        # GtkActionGroup に挿入
        self._action_group.add_actions(actions)
        # GtkUIManager に追加
        manager.insert_action_group(self._action_group, -1)
        self._ui_id = manager.add_ui_from_string(ui_str)
        
    def do_deactivate(self):
        manager = self.window.get_ui_manager()
        manager.remove_ui(self._ui_id)
        manager.remove_action_group(self._action_group)
        manager.ensure_update()
        

    def do_update_state(self):
        pass
    
    def on_testtest_activate(self, action, data=None):
        view = self.window.get_active_view()
        buf = view.get_buffer()
        try:
            begin, end = buf.get_selection_bounds()
        except:
            self.messagebox("変換したいテキストを選択してください")
            return
        text = begin.get_text(end)
        lines = text.split("\n")
        # list の join に変更
        result = []
        for line in lines:
            result.append("> {0}".format(line))
        buf.delete_selection(True, True)
        buf.insert_at_cursor("\n".join(result))
            
        
    def messagebox(self, text):
        dlg = Gtk.MessageDialog(
                self.window,  
                Gtk.DialogFlags.MODAL,  
                Gtk.MessageType.WARNING, 
                Gtk.ButtonsType.OK,  
                text)  
        r = dlg.run()  
        dlg.destroy()

と2つのファイルを作成して ~/.local/share/gedit/plugins に置く。
Gedit を再起動して設定からこのプラグインを選択。

GtkUIManager のメソッドや XML UI 指定は v2 と変わっていないようだ。
これで Gedit 3 のプラグイン作りはなんとかなりそう。

ついでに、外部ツールで実行前にファイルを保存するように指定すると動作しない。
gedit って更新毎に必ず一ヶ所はおかしな所があるよね。

Fedora 15 005

Fedora 15 (GNOME 3) 64bit 生活五日目。

※ データ移動

そういえば、毎度のように旧 STAT HDD をスレーブ接続してファイルコピーしたんだけど。
よく考えたら 64bit OS で 32bit 記録データを普通に認識できるんだ、今頃気がついた。
デスクトップ PC 限定の話だけど 64bit Linux への移行でデータコピーは悩まなくていいね。

※ GNOME 3

【レポート】Fedora 15に搭載された新機能 (1) GNOME 3を採用したFedora | エンタープライズ | マイコミジャーナル

GNOME3 の機能についてはココが一番解りやすかった。
コピペしてもしょーがないしリンクだけ、Alt キーでシャットダウンメニューを出すのか…
ログアウトしないとシャットダウンできないかと思っていたよ。

※ VirtualBox ose

VirtualBox が v4 になって標準の vdi 作成位置が変わって面食らった。
とりあえず v3 のデータはコピペで動きますけど。

【レポート】VirtualBox 4.0でデータの保存場所が変更された理由とは? | エンタープライズ | マイコミジャーナル

変換するより使わないのを整理と入れ直しで綺麗にしたほうがいいと思うけど。
Vista は Visual Studio を含めると再インストールに二日掛かるんだよね。
v3 形式のままでも動くんだからしばらくはこのままでいこうかと。

つかドットディレクトリ内に入れてくれよ、手書き編集なんかしないんだから。
デフォルトじゃ標準ディレクトリが全部アルファベット小文字な私は一番上に来て困る。
設定を変更して Ubuntu 11.04 は入れ直しするはめになったぞこのやろう。

ose 版だと USB が使えないとか見かけるけどマウスもキーボードも USB だけど動く。
そういえば USB メモリって全然使わなくなったなぁ。

※ 個々アプリケーション

gcc が入っていない、ヘッダも lib も何もない。
Ubuntu でさえ入るようになったのに。

evince (ドキュメント・ビューア)が凄い進化をしている。
手持ちの PDF で見れないものは無くなった。

gksu の代わりに beesu なのは以前と同じだ。
でも sudo は自分をユーザー登録しないと使えない。
su で充分だしホーム以下以外はほとんど弄くらないで使えるからどうでもいい。

gnome-tweak-tool ってのを入れたけど dconf-editor とあまり変わらない。

※ 自作アプリケーション

Y901x が x86_64 環境で動画再生できない原因がやっと解った。

Unicode Manipulation

g_utf8_collate_key_for_filename ()
の引数は gchar* と gssize なので char* と size_t が実体だ。
_t が付く型名はコンパイラ依存なので x86_64 では 64bit サイズになる、と思う。
つまり numsort.py の argtypes 指定は int ではなく size_t にする必要がある。

glibc = ctypes.cdll.LoadLibrary('libglib-2.0.so.0')
cmpstr = glibc.g_utf8_collate_key_for_filename
cmpstr.restype = ctypes.c_char_p
#cmpstr.argtypes = [ctypes.c_char_p, ctypes.c_int]
cmpstr.argtypes = [ctypes.c_char_p, ctypes.c_size_t]

それとgtk.gdk.threads_init() 処理を入れるとリピートで死ぬ。
全然使わないので気がつかなかった、終了前に次を再生にするもので。

gtk.gdk.threads_enter()
self.next_menu.emit("activate")
gtk.gdk.threads_leave()

とやってみたら上手く動いた、実はイマイチ解っていない(ぉい!
エ○動画連続再生の要望しか来なかったあの頃を思い出す…

VirtualBox ose 上 Ubuntu 11.04 (x86) でも動作確認してと。
てなわけで Y901x 0.3.7 公開、次は gedit プラグインの作り替えか…

Fedora 15 004

Fedora 15 (GNOME 3) 64bit 生活四日目。

※ 動画

ftypisom な MPEG4 が再生及びサムネイルできなかった件。

ソフトウエア更新を行う。
~/.gstreamer-0.10 にある registry.x86_64.bin を Shift+Delete で削除。
動画サムネイル失敗があったら ~/.thumbnails 以下も削除。
後は Totem に動画を放り込むと registry.x86_64.bin が再作成される。

これで Totem で再生できて Nautilus でサムネイルも作ってくれるようになった。
でも Y901x は相変わらず再生不能、起動はできるのだから playbin2 は作れているはずだが。

※ font

Firefox で観覧していて何かおかしい。
font をよく調べたら VL ゴシックが等幅しか入っていないって何だよ…

VL Gothic Font Family
から落として VL-PGothic-Regular.ttf を ~/.fonts に入れる。

で日本語フォントが変なのはなんとかなる。
ついでに IPA フォントならココ、追加/削除からでもいいけど。
IPAフォントのダウンロード || OSS iPedia

※ gedit (2)

gconf-editor で指定していた設定は dconf-editor で行うようだ。
デフォルトでは入っていない、更に端末か Alt+F2 から起動するしか無い。

/org/gnome/gedit/preferences/editor
restore-cursor-position を off
smart-home-end を BEFORE
で私的に使いやすい設定になった。

~/.config/dconf/user
が実態みたいだけど手書き編集は無理っぽい、GSettings API を使う。
Python から使うにはこうすればいいのね。
Using GSettings with Python/PyGObject

※ PHP

PHP は PHP を検索して導入すれば依存関係で Apache2 も勝手に入る。

Ubuntu で Apache2 と打ち込んでいたところを httpd に変更すれば同様に扱える。

$ su
パスワード:
#/etc/init.d/httpd start

たしか Apache2 の設定変更は SELinux に色々ブロックされるので所有者変更で賄う。
ということで /var/www へのシンボリックリンクをホームに www という名前で貼りつける。

# chown -R sasakima-nao /var/www
# exit # Ctrl+D
$ ln -s /var/www ~/www

後はホームに作成された www リンクの html ディレクトリに php ファイルを入れる。
完了、自分しか利用しないのだからコレでいいや。

※ Opera

http://localhost/ を表示してみる。

いやぁ、やっぱり Opera は快適、慣れなんだけどね。
Opera のテーマは環境に合わさるんだけど GTK2 になるようです。
Flash は Firefox 用に入れたパスを追記すれば同じものが利用できる。

以前はダメだった keepassx からの貼り付けも問題無くなっている。
WordPress で Flash アップローダも Opera で使って普通に動く。
しかし以前こんなことを書いていたのが嘘みたい、64bit なのに全然問題がない。

fedora 64bit はやはり強者用だった

行ったことを覚書でシコシコ書いているけど後日まとめたページを作る予定。
多分続く。

Fedora 15 003

Fedora 15 (GNOME 3) 64bit 生活三日目。

※ Nautilus

サイドペインをツリーにするには「表示」メニューからできた。
でもゴミ箱を表示するには場所に戻す必要あり。
デスクトップのゴミ箱アプレットが無くなったのでココからアクセスするしか無い?
ツールバーはもっとボタンを増やしてもいいんでないの、シンプルにしすぎ。

というかファイルの削除が Ctrl+Delete になっている。
面倒ジャン、Delete キーのみに戻す方法はあるのかな?

しかし GNOME2 の場所メニューにあたるものがデスクトップに無いのは痛い。
Nautilus のお気に入りに登録すれば場所メニューに登録されるけど面倒。

Nautilus スクリプトは位置が GNOME2 時と同じ、バックアップを戻して使える。
~/.gnome2/nautilus-scripts に置くだけで利用可能。

※ gedit

設定ディレクトリ

スニペット
~/.gnome2/gedit/snippets → ~/.config/gedit/snippets
外部ツール
~/.gnome2/gedit/tools → ~/.config/gedit/tools
プラグイン
~/.gnome2/gedit/plugins → ~/.local/share/gedit/plugins

スニペットと外部ツールは gedit2 のをコピペで利用できた。
プラグインは gedit3 が GTK3 なので GTK3 に合わせて作り直しの必要あり。

smart_home_end を変更したいんだけど、どうするの?
GConf にて指定では無くなったし、それらしきファイルも見当たらない。

※ コマンド

wget コマンドが無い…
gnome-terminal が y/N を尋ねてくるので y で導入した。
他にもありそう、あって当然だと思っていたコマンドが無いと焦るよね。

あぁ何もかもがもどかしい。
Vista を最初に使った時もそうだったしそのうち慣れるはず。

そういえば Opera をダウンローダーとしても利用していた私であった。
やっぱり Opera も入れておこう。