Mais conteúdo relacionado
Semelhante a サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える (20)
Mais de Fuminobu Takeyama (20)
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
- 5. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 5/43
正解
●
3. 20年以上前にドイツで生まれた Linux ディストリビューション
– 1996 年: S.u.S.E Linux 4.2 リリース
●
これ以前は Slackware + 設定ツールでした
●
Q: RedHat 系ですか? Debian 系ですか?
A: どちらでもありません! Slackware系でもありません
●
Q: OpenSUSE ですか?openSUSE ですか?
A: o は小文字です。IPhone ではなく、iPhone なのと同じです
- 7. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 7/43
YaST でかんたん設定
SSH からもアクセスできる TUI 版→
●
ソフトウェアのインストール
ハードディスクとファイルシステムの設定
●
ネットワークの設定
●
Samba サーバーの設定
●
ユーザの追加…
詳しくは OSC Kansai/Kyoto 2015の資料を参照: http://www.slideshare.net/ftake/ok-yastlinux
- 11. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 11/43
openSUSE Leap
●
SUSE Linux Enterprise ベースの安定志向
ディストリビューション
– 年に1回のマイナーアップデート(サービスパック)
– 3年に1度程度のメジャーアップデート
●
エンタープライズ版に openSUSE 独自のパッケージを追加
– デスクトップ環境:
Plasma 5, GNOME 3, XFCE, MATE, LXQt, etc.
– 合計: 約 9000 パッケージ
●
有償サポートが不要なサービス運用や、
常用のデスクトップ環境に最適
CentOS + Fedora
のような感じ
- 12. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 12/43
openSUSE Leap 42.3
●
openSUSE Leap 42.x の2回目のアップデート
●
openSUSE Leap の各パッケージをアップデート
– SUSE Linux Enterprise 12 SP3 がベース
– Kernel 4.4 + Intel の最新のハードウェアサポート
●
半年間のアップデート期間
– 42.2 の利用者は半年の間に 42.3 へアップデートする
New!
- 14. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 14/43
なぜ Linux デスクトップなのか?
●
開発ツールが豊富
– コンパイラ
– バージョン管理: Git など
– POSIX シェル、SSH、Docker、Ansible、…
●
本番と同じ(近い)環境で開発できる
– その場で実行できる
●
いろいろなアプリケーションの開発環境が簡単に
整えられることを紹介します
– コーディングの方法は紹介できません
Windows へのインストール
は意外とメンドクサイ
(仮想マシンを使う?)
- 16. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 16/43
インストール手順
●
依存する 32bit ライブラリをインストール
●
Android Studio をダウンロード
– https://developer.android.com/studio/index.html
●
Android Studio をインストール
1. Android アプリを開発してみる
$ sudo zypper install glibc-32bit libncurses5-32bit libstdc++6-32bit libz1-32bit libbz2-1-32bit
$ cd ~/Applications
$ unzip ~/Download/android-studio-ide-162.3934792-linux.zip
パッケージ管理しないアプリケーションは
~/Applications などに置くと良いでしょう
実は必要ないかも?
- 18. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 18/43
Android Studio の起動
●
インストールした studio.sh を実行
●
早速
「Start a new Android Studio project」
を選択してアプリを作ってみましょう
$ ~/Applications/android-studio/studio.sh
1. Android アプリを開発してみる
- 23. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 23/43
Kotlin で書いてみる
●
Kotlin
– Java 仮想マシンで動作するアプリをかける新しい
プログラミング言語
●
型推論やクロージャーなどをサポート
●
Java のクラスをそのまま呼び出せる
●
(ネイティブアプリも書けるらしい)
– 先日の Google IO で、Android アプリの公式な開発言語に採用さ
れた
●
準備 (Android Studio 2.3)
– Android Studio SDK の Settings から Kotlin プラグインを
インストール
1. Android アプリを開発してみる
- 24. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 24/43
Hello world 的なコードを書いてみる
中略
import kotlinx.android.synthetic.main.content_main2.*
class Main2Activity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
val toolbar = findViewById(R.id.toolbar) as Toolbar
setSupportActionBar(toolbar)
list1.adapter = ArrayAdapter<String>(this, R.layout.list_item)
}
public fun addNewItem(view: View) {
val adapter = list1.adapter as ArrayAdapter<String>
adapter.add("あひる焼き")
}
}
●
New > Kotlin Activity でJavaのプロジェクトに
Kotlin のアクティビティテンプレートを追加
1. Android アプリを開発してみる
- 26. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 26/43
2. Ruby on Rails アプリを開発してみる
●
Ruby on Rails
– Web アプリケーションフレームワーク
●
Linux デスクトップで開発する利点
– Gem を簡単にインストールできる
– 運用の環境と近い環境でテストできる
●
Ruby インタプリターの管理方針
– Rbenv を使って好きなバージョンの Ruby を入れる
– ディストリビューション提供の Ruby を使う ←今日はこの方針で
- 27. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 27/43
Rails のインストール
●
必要なパッケージをインストール
●
Rails をインストール
– 以下の内容の Gemfile を作成
(後で上書きして消します)
– インストールを実行
# Ruby 2.2
$ sudo zypper install ruby2.2
$ sudo gem.ruby2.2 install bundler
# Nokogiri に必要なライブラリ
$ sudo zypper install libgcrypt-devel libgpg-error-devel libxslt-devel ruby2.2-devel
# SQLite3 に必要なライブラリ
$ sudo zypper install sqlite3-devel
source 'https://rubygems.org'
gem 'rails', '~>5.0'
$ bundle.ruby2.2 install --path vendor/bundle
ライブラリのインストールが簡単
Ruby のインストールが簡単
2. Ruby on Rails アプリを開発してみる
- 28. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 28/43
Rails アプリの雛形生成
●
Rails アプリの雛形生成
●
Gemfile の therubyracer の
行コメントを外す
– JavaScript のランタイムを
therubyracer にする
$ bundle.ruby2.2 exec rails new rails-demo
app
├─ assets
│ ├─ config
│ │ └─ manifest.js
│ ├─ images
│ ├─ javascripts
│ │ ├─ application.js
│ │ ├─ cable.js
│ │ └─ channels
│ └─ stylesheets
│ └─ application.css
├─ channels
│ └─ application_cable
│ ├─ channel.rb
│ └─ connection.rb
├─ controllers
│ ├─ application_controller.rb
│ └─ concerns
├─ helpers
│ └─ application_helper.rb
├─ jobs
│ └─ application_job.rb
├─ mailers
│ └─ application_mailer.rb
├─ models
│ ├─ application_record.rb
│ └─ concerns
└─ views
└─ layouts
├─ application.html.erb
├─ mailer.html.erb
└─ mailer.text.erb
- #gem 'therubyracer', platforms: :ruby
+ gem 'therubyracer', platforms: :ruby
2. Ruby on Rails アプリを開発してみる
- 30. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 30/43
Ruby 開発にエディタは何を使う?
●
古くからあるエディタ: Emacs, VIM
– 豊富なプラグインにより、機能を拡張して IDE のように
– パッケージから簡単にインストール可能
●
ATOM
– GitHub によるテキストエディタ
– Linux 版もあり
– https://atom.io
●
高機能なデスクトップ環境付属エディタ: GEdit, KWrite
– これで十分と言う人もいる
2. Ruby on Rails アプリを開発してみる
- 31. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 31/43
3. C++ 1x でアプリを開発してみる
●
ここで言う C++ 1x: C++ 11, 14, 17のこと
●
新しい言語機構が増えて、昔の C++ とはチョット違う
– 拡張 for 文
– auto による型の省略
– ラムダクロージャー
vector<int> *v = new vector<int>();
v->push_back(1);
v->push_back(2);
for (vector<int>::iterator itr = v->begin(),
end = v->end(); itr != end; itr++) {
cout << *itr;
}
return 0;
auto *v = new vector<int>();
v->push_back(1);
v->push_back(2);
for (int& i: *v) {
cout << *itr;
}
return 0;
- 35. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 35/43
Go
●
go パッケージをインストールするだけ
4. Go, Rust, Haskell コンパイラも簡単にインストール
$ sudo zypper in go
$ go build hello.go
$ ./hello
Hello Geeko!
package main
import fmt "fmt"
func main() {
fmt.Print("Hello Geeko!n")
}
hello.go
- 36. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 36/43
Rust
●
rust パッケージを入れるだけ
4. Go, Rust, Haskell コンパイラも簡単にインストール
$ sudo zypper in rust
$ rustc hello.rs
$ ./hello
Hello Geeko! 30
fn main() {
let x = 10;
let y = 20;
println!("Hello Geeko! {}", x + y);
}
hello.rs
- 37. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 37/43
Haskell
●
必要なパッケージが多いが、haskell_platform パターン
をインストールすればOK
4. Go, Rust, Haskell コンパイラも簡単にインストール
$ sudo zypper in -t pattern haskell_platform
$ ghci
GHCi, version 8.0.2: http://www.haskell.org/ghc/ :? for help
Prelude> 1 + 1
2
Prelude> let x = 10 in x + 20
30
Prelude>
- 41. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 41/43
openSUSE.Asia Summit 2017 Tokyo
●
openSUSE や Linux など周辺の OSS に関する国際イベント
●
今年は初日本開催!
– 北京→台北→ジョグジャカルタ(インドネシア)
●
日時: 10月21日(土)、22日(日)
●
会場: 電気通信大学(東京都調布市)
技術書展もやっています
週末はぜひ東京へ
- 42. 2017/07/14サーバーだけじゃない!Linux デスクトップを使い倒そう その3 42/43
openSUSE.Asia Summit 2017 Tokyo
●
日本語も OK な国際会議
●
いろいろな講演内容
– openSUSE、カーネル、クラウド
– FLOSS セキュリティ
– LibreOffice
– Linux デスクトップ
●
発表以外の交流も
たっのしー!
JD にサインを求められる
@hatochan