2017-05-06

Fedora 26 アルファ版へアップグレード

Linux ディストリビューションのひとつ、Fedora は、年に二回の頻度で新しいバージョンがリリースされています。スケジュール通りにリリースされれば、5 月の連休中にベータバージョンをインストールできるのですが、リリーススケジュールは遅延するのが常です。次期バージョンの Fedora 26 のベータリリースは、現時点では 2017-05-30 となっています [1]

この連休中にアップグレードを済ませておきたかったので、以下の手順で Fedora 25 からアルファ版の Fedora 26 へアップグレードしました。

  1. dnf update --refresh
  2. dnf install dnf-plugin-system-upgrade
  3. dnf system-upgrade download --releasever=26
  4. dnf system-upgrade reboot

以下が実際の例です。

$ su
パスワード:
# dnf update --refresh
Dropbox Repository                              8.2 kB/s | 2.4 kB     00:00    
google-chrome                                    38 kB/s | 3.8 kB     00:00    
Visual Studio Code                              388 kB/s | 238 kB     00:00    
依存性が解決されました。
================================================================================
 Package      アーキテクチャ バージョン                      リポジトリ    容量
================================================================================
アップグレード:
 code         x86_64         1.12.1-1493934217.el7           code          59 M

トランザクションの要約
================================================================================
アップグレード  1 パッケージ

総ダウンロード容量: 59 M
これでいいですか? [y/N]: y
パッケージをダウンロードしています:
code-1.12.1-1493934217.el7.x86_64.rpm           6.6 MB/s |  59 MB     00:08    
--------------------------------------------------------------------------------
合計                                            6.5 MB/s |  59 MB     00:09     
トランザクションの確認を実行中...
トランザクションの確認に成功しました。
トランザクションのテストを実行中...
トランザクションのテストに成功しました。
トランザクションを実行中...
  アップグレード: code-1.12.1-1493934217.el7.x86_64                         1/2 
  整理中        : code-1.11.2-1492070635.el7.x86_64                         2/2 
  検証中        : code-1.12.1-1493934217.el7.x86_64                         1/2 
  検証中        : code-1.11.2-1492070635.el7.x86_64                         2/2 

アップグレード済み:
  code.x86_64 1.12.1-1493934217.el7                                             

完了しました!
# dnf install dnf-plugin-system-upgrade
メタデータの期限切れの確認は、0:01:57 時間前の Sat May  6 11:32:25 2017 に実施しました。
依存性が解決されました。
================================================================================
 Package                             アーキテクチャ
                                              バージョン        リポジトリ
                                                                           容量
================================================================================
インストール:
 dnf-plugin-system-upgrade           noarch   0.7.1-4.fc25      updates    48 k
 python3-dnf-plugin-system-upgrade   noarch   0.7.1-4.fc25      updates    31 k

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

総ダウンロード容量: 79 k
インストールされる容量: 173 k
これでいいですか? [y/N]: y
パッケージをダウンロードしています:
(1/2): python3-dnf-plugin-system-upgrade-0.7.1- 120 kB/s |  31 kB     00:00    
(2/2): dnf-plugin-system-upgrade-0.7.1-4.fc25.n 178 kB/s |  48 kB     00:00    
--------------------------------------------------------------------------------
合計                                             12 kB/s |  79 kB     00:06     
トランザクションの確認を実行中...
トランザクションの確認に成功しました。
トランザクションのテストを実行中...
トランザクションのテストに成功しました。
トランザクションを実行中...
  インストール  : python3-dnf-plugin-system-upgrade-0.7.1-4.fc25.noarch     1/2 
  インストール  : dnf-plugin-system-upgrade-0.7.1-4.fc25.noarch             2/2 
  検証中        : dnf-plugin-system-upgrade-0.7.1-4.fc25.noarch             1/2 
  検証中        : python3-dnf-plugin-system-upgrade-0.7.1-4.fc25.noarch     2/2 

インストール済み:
  dnf-plugin-system-upgrade.noarch 0.7.1-4.fc25                                 
  python3-dnf-plugin-system-upgrade.noarch 0.7.1-4.fc25                         

完了しました!
# dnf system-upgrade download --releasever=26
Fedora 26 - x86_64 - Updates                    1.9 kB/s | 257  B     00:00    
RPM Fusion for Fedora 26 - Nonfree              122 kB/s | 158 kB     00:01    
RPM Fusion for Fedora 26 - Free                 688 kB/s | 529 kB     00:00    
Fedora 26 - x86_64                              6.4 MB/s |  53 MB     00:08    
Failed to synchronize cache for repo 'rpmfusion-free-updates', 無効化。
Failed to synchronize cache for repo 'Dropbox', 無効化。
Failed to synchronize cache for repo 'rpmfusion-nonfree-updates', 無効化。
メタデータの期限切れの確認は、0:01:13 時間前の Sat May  6 11:35:52 2017 に実施しました。
依存性が解決されました。
================================================================================
 Package                         アーキテクチャ
                                        バージョン                 リポジトリ
                                                                           容量
================================================================================
インストール:
 beignet                         x86_64 1.3.1-1.fc26               fedora 4.6 M
 blivet-gui                      noarch 2.1.3-1.fc26               fedora 300 k
 clang-libs                      x86_64 3.9.1-2.fc26               fedora 8.7 M
 cldr-emoji-annotation           noarch 31.0.0_1-1.fc26            fedora 2.0 M
 compat-openssl10                x86_64 1:1.0.2j-6.fc26            fedora 1.1 M
...
...
...
  zlib.x86_64 1.2.11-2.fc26                                                     
  zlib-devel.x86_64 1.2.11-2.fc26                                               
  zziplib.x86_64 0.13.62-8.fc26                                                 

ダウングレード済み:
  blender.x86_64 1:2.78c-1.fc26                                                 
  blender-fonts.noarch 1:2.78c-1.fc26                                           
  inkscape.x86_64 0.92.0-11.fc26                                                
...
...
...

完了しました!
Download complete! Use 'dnf system-upgrade reboot' to start the upgrade.
ダウンロードされたパッケージは、次の成功するトランザクションまで、キャッシュに保存されます。
'dnf clean packages' を実行することでキャッシュを削除できます。
# dnf system-upgrade reboot

最後のリブート処理で、パッケージのアップグレードと整理が始まります。時間はかかりましたが、アップグレードを無事終了することができました。

Fedora 26 の新しい機能などについては別記事でレポートして行く予定です。

参考サイト

  1. Releases/26/Schedule - FedoraProject

 

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

2017-04-20

Oracle、8件の脆弱性を修正した「Java SE 8 Update 131」を公開 - 窓の杜

Oracle Corporation は 18 日(現地時間)、Java Platform, Standard Edition(Java SE)の最新版 Java SE 8 Update 131 を公開しました。これは定例更新であるクリティカルパッチアップデート (CPU) で、8 件の脆弱性を修正したものです。

なお、次回の定例セキュリティアップデートは 7 月 18 日に実施される予定だそうです。

参考サイト

  1. Oracle、8件の脆弱性を修正した「Java SE 8 Update 131」を公開 - 窓の杜 [2017-04-19]

 

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

2017-03-20

Android Studio と Fedora (2)

Fedora に Android Studio をインストールして、Android アプリを開発する最低限の環境を整えましたが[1]、ひとつ問題が残っていました。それは、Android 端末の実機を、USB を通して接続し、開発したアプリを実機で直接実行することを確認できなかったことでした。もしかすると Linux 版では実機の接続はサポートされていないか、もしくは、今回購入した型落ちの Android 端末 URBANO V02 では、Linux へ接続するのは無理なのかもしれないという不安がありました。

しかしその不安は杞憂でした。Fedora 側で メディア転送プロトコル (MTP, Media Transfer Protocol) をサポートするライブラリをインストールすれば接続できるはずだということが判ったためです。参考サイト [2] にぴったりの説明がありましたので、それにもとづき自分の環境 (Fedora 25 x86_64) で確認した結果を備忘録としてまとめました。

開発者向けオプションの設定 [Android]

まずは、Android 側で「開発者向けオプション」の設定が出来るようにします。デフォルトでは「設定」でこのオプションが非表示になっているので参考資料 [3] に従って表示させます。

とりあえず、「開発者向けオプション」では以下のように設定しました。

 

jmtpfs のインストール [Fedora]

jmtpfs は MTP 対応デバイスへアクセスするためのファイルシステムで、ユーザー空間でファイルシステムを作成する機能を提供する FUSE, Filesystem in Userspace と、MTP を実装したライブラリ libmtp をベースにしています[4]

root 権限で jmtpfs をインストールします。

$ su
パスワード:
# dnf install jmtpfs
...
...

Android 端末を、Fedora が稼働している PC へ USB 接続します。念の為、dmesg コマンドで OS が Android 端末を認識しているかどうか確認します。マウントに成功すると、ファイルの中身を確認できます。

$ dmesg | tail
[ 2413.637244] usb 1-2: Product: KYOCERA_Android
[ 2413.637254] usb 1-2: Manufacturer: KYOCERA
[ 2413.637262] usb 1-2: SerialNumber: dce34c3086
[ 2430.772947] usb 1-2: usbfs: process 4908 (jmtpfs) did not claim interface 0 before use
[ 2430.929832] usb 1-2: reset high-speed USB device number 18 using xhci_hcd
[ 2431.101339] usb 1-2: usbfs: process 4908 (jmtpfs) did not claim interface 0 before use
[ 2431.101621] usb 1-2: usbfs: process 4883 (events) did not claim interface 0 before use
[ 2530.095480] perf: interrupt took too long (4011 > 4005), lowering kernel.perf_event_max_sample_rate to 49000
[ 3314.230265] usb 1-2: usbfs: process 4875 (gvfsd-mtp) did not claim interface 0 before use
[ 3316.737372] perf: interrupt took too long (5016 > 5013), lowering kernel.perf_event_max_sample_rate to 39000
$ 

Android 端末のマウント [Fedora]

root 権限で、マウントポイント(この例では /mnt/android)を作成し、jmtpfs コマンドで Android 端末のファイルシステムをマウントします。

# mkdir /mnt/android
# jmtpfs /mnt/android
Device 0 (VID=0482 and PID=0a74) is UNKNOWN in libmtp v1.1.11.
Please report this VID/PID and the device model to the libmtp development team
Android device detected, assigning default bug flags
# ls /mnt/android
内部ストレージ
# ls /mnt/android/内部ストレージ
Alarms   Download    Movies         Podcasts             com.facebook.orca
Android  Effectplus  Music          Ringtones            kindle
Books    IrDA        Notifications  amazonmp3            media
DCIM     LISMO       Pictures       com.facebook.katana
# 

Android Studio でアプリの実行 [Fedora/Android]

Android 端末のファイルシステムをマウントした状態で、Android Studio でプロジェクトのアプリをコンパイル・実行すると、接続するデバイス、USB 接続した Android 端末とシミュレーター (AVD, Android Virtual Device) のリストが表示されます。

同時に、Android 端末上では下記のメッセージが表示されますので、OK ボタンをタップします。

すると、Fedora の Android Studio 側では認証されたデバイスとして表示されますので、選択して OK ボタンをクリックします。

プロジェクトのアプリがビルドされると、Android 端末へ転送されて起動されます。なお、転送されたアプリ (My Application) は「その他のアプリ」にありました。

 

Android 端末のアンマウント [Fedora]

Fedora にマウントした Android 端末のファイルシステムをアンマウントするには、以下のように fusermount コマンドを使います。

# fusermount -u /mnt/android
# exit

追記 [2017/03/31]

本記事を書いている時に PC と Android を接続するマイクロ USB ケーブルに悩まされていました。それは充電用に使うマイクロ USB コードと、データ通信用のものとを区別せずにごちゃごちゃに使っていためです。結局、データ通信用のケーブルを購入して専用に使うことにしたのですが、この USB ケーブルで Android を接続すれば自動的に Linux 側にマウントされることがわかりました。そもそも既に持っていた(デジカメのデータ通信用)USB ケーブルでも同じ結果になることも確認できました。

当初なぜそれに気が付かなかったのか謎だったので、カーネルのバージョン(現バージョンは kernel-4.10.6-200)を下げるなどして確認したのですが、バージョンを下げても自動的にマウントされることが確認できました。結局、Android の実機でアプリを動かしてみたい一心で、USB ケーブルの混用に悩まされる中で基本的なことをしっかり確認していなかった可能性があります。

ちなみに自動的にマウントされる場所は以下の場所でした。

$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=1962756k,nr_inodes=490689,mode=755)
...
...
...
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,seclabel)
/dev/mmcblk0p2 on /boot type ext4 (rw,relatime,seclabel,data=ordered)
/dev/mmcblk0p1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)
/dev/mapper/fedora-home on /home type ext4 (rw,relatime,seclabel,data=ordered)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
tmpfs on /run/user/42 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=394956k,mode=700,uid=42,gid=42)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=394956k,mode=700,uid=1000,gid=1000)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
$ ls /run/user/1000/gvfs
'mtp:host=%5Busb%3A001%2C003%5D'
$ ls /run/user/1000/gvfs/'mtp:host=%5Busb%3A001%2C003%5D'
'Internal storage'
$ ls /run/user/1000/gvfs/'mtp:host=%5Busb%3A001%2C003%5D'/'Internal storage'
Alarms   Download    Movies         Podcasts             com.facebook.orca
Android  Effectplus  Music          Ringtones            kindle
Books    IrDA        Notifications  amazonmp3            media
DCIM     LISMO       Pictures       com.facebook.katana
$ 

参考サイト

  1. bitWalk's: Android Studio と Fedora [2017-03-12]
  2. Linux でAndroid スマートフォンをストレージデバイスとしてマウントする - Qiita [2016-08-22]
  3. アプリを実行する | Android Developers
  4. jmtpfs: Exchanging files between Android devices and Linux | Jacquette Engineering

 

私の Java プログラマ歴は 20 年もありませんが、ぴったりな入門書が発売されましたので早速購入して教科書にしています。

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

2017-03-19

Android と iPhone

2007 年の Macworld Expo 2007 で発表された初代 iPhone が米国で発売されたのは同年 6 月末のこと。日本では次代の iPhone 3G がソフトバンクから 2008 年 7 月に発売されました。

一方、Android 端末については、2009 年 7 月にドコモから発売された HTC-03A (Abndroid 1.5) が、日本での最初の発売でした。

日本のスマートフォン市場では(米国同様)Apple iPhone のシェアが多いのですが、グローバルな市場で見ると、現在では Android のシェアが過半数を占めています。

2009 年ごろと言えば、私は Android について明るい将来を描くほどには情報を持っておらず、ひょっとすると Windows Mobile 端末が iPhone を追い上げ、ポスト携帯端末市場を席巻するかもしれないと考えていました。ですので au から発売された Windows Mobile 6.1 の端末 E30HT に飛びついたのでした。当時としては結構高価な端末だったのですが一年も経たずして壊れて使えなくなってしまったので、これに懲りてつい最近まで個人用にはガラケーを使っていたのでした。

会社から支給されている iPhone に加え、最近ようやく個人用に型落ちの Android 端末 (URBANO V02) を購入したので、操作に慣れるために積極的に使っています。Android の操作については、きっと慣れが必要なのだろうと思っています。とは言え、世の中の方はどのような比較をしているのか気になりましたので、なるべく操作方法に焦点を当てた Android と iPhone の比較をしているサイトを集めてみました。

Android と iPhone を比較しているサイト

  1. iPhoneとAndroidはどっちが使いやすい? 両方を2ヵ月半くらい使い比べて感じたこと。 - いつもマイナーチェンジ! [2015-03-08]
    • iPhone を長年使っていた方が Android 端末を使い始めた時の感想がまとめてあります。
  2. だから、私はiPhoneを使わない - 小山安博編 (1) 操作性はAndroidが上 | マイナビニュース [2015-08-01]
    • Android 端末をメインに使っている方の比較です。
  3. iPhoneとアンドロイドはどっちがいい?操作性重視が吉 [2016-03-24]
    • iPhone 寄りの記事です。
  4. iPhone搭載の「iOS」を好む人と、「Android」が大好きな人の違い (1/2) - TechTargetジャパン 中堅・中小企業とIT [2016-03-27]
    • 中立な比較を心がけていることが伝わる記事です。
  5. 長年iPhoneを使っていたが思い切ってAndroid端末を購入してみた…が2日でiPhoneに戻った – MMiyauchi Blog [2016-05-15]
    • iPhone 寄りの記事です。
  6. どっちがいい?面々でiPhone Androidを比較する - iMobie [2016-09-28]
    • これも中立な比較を心がけている記事です。
  7. AndroidとiPhoneの違いを比較!2017年 [2017-01-12]
    • もしかすると筆者は Android の方が好きなのかな?と感じる部分はあるのですが、全体的には中立な立場に立っている記事です。

 

単なる個人の印象ですが、iPhone は血統種、Android は雑種と感じています。そして、自分は雑種とか多様性が好きな人間です。しかし最初に使い始めたのが会社から支給された iPhone だったためか、iPhone の操作に愛着があるのも事実です。

Steve Jobs 氏が 2007 年の Macworld Expo 2007 で iPhone を発表し、その後の世界を変えた歴史的なプレゼンテーションです。

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

2017-03-12

Android Studio と Fedora

身近なプログラミングの主役が PC からスマートフォンなどの携帯端末のアプリに移っても、あいかわらず PC 上の GUI プログラミングを続けてきましたが、ついにその先へ一歩踏み出すチャンスが訪れました。

会社からは iPhone が支給されており、ほとんど私用の携帯電話を使わないので、維持費を抑えるために私用の携帯電話はずっと、いわゆるガラケーを使っていました。しかしひょんなことからついにガラケーを手放すことになりました。

かねてから Android のプログラミングをしたいと思っていたので、この機会にまずは廉価な型落ちの Android 端末 (URBANO V02) を購入しました。これで Android のアプリの開発ができるぞ、と意気込んだのですが、とりあえず iPhone との操作の違いに慣れる必要があります。操作方法の観点では iPhone と Android は似て非なるものだったのです。

Android Studio を試す

Android の操作に慣れるまでの間、開発環境を整えることはできます。早速、Android Studio を Fedora 25 の 64bit (x86_64) 版が稼働している PC へインストールしました。インストールは参考サイト [1] に従って作業を進めましたが、まともに動くようになるまでには意外と手こずってしまいましたので、注意点をまとめておきます。

追加のライブラリ(主に 32bit 向け)

Java の環境は OpenJDK と Oracle の JDK の両方をインストールしてあるのですが、32bit 用のライブラリを追加でインストールする必要があり、下記のパッケージをインストールしています。

$ su
パスワード:
# dnf install zlib.i686 ncurses-libs.i686 bzip2-libs.i686 compat-libstdc++-296.i686 compat-libstdc++-33.i686 compat-libstdc++-33.x86_64

KVM の有効化

Android のアプリを開発するにあたって、Android のエミュレータを利用しますが、そのためには KVM を利用できるようにします。まずは、BIOS の設定で、仮想化の機能を有効にしました。

次に参考資料 [2] に従って、KVM 関連のパッケージをインストールしてデーモンを起動します。

$ su
パスワード:
# dnf group install with-optional virtualization
...
# systemctl start libvirtd
# systemctl enable libvirtd

初めてのアプリ作成

以上の二点で Android Studio が正常に起動するようになったので、参考資料 [3] に従って、(Hello World! の文字列を表示するだけの)空のプロジェクトを作ってエミュレータ上で実行してみました。

まとめてしまえばこれだけなのですが、土曜日からはじめて、最初はなかなかうまくいかず試行錯誤を繰り返してしまい、日曜日の夜になって Android Studio の最低限の動作確認ができたところで時間切れです。ただ、ここまでできれば、あとは経験値を上げるだけです。今後少しずつアプリを紹介できるようになりたいです。

参考サイト

  1. Android Studio と SDK ツールをダウンロードする | Android Studio
  2. Getting started with virtualization - FedoraProject
  3. 初めてのアプリの作成 | Android Developers

 

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