Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OSC21do

 OSC21do

パッケージマネージャを3つの面から いいよね... する(主にHomebrewを例に)

オープンカンファレンス北海道2021 A会場 MTG 13:00-13:45 Javaエンジニアグループ北海道出展
「みんなで開発環境をオススメしあおう! LT&座談会」にて発表

Hiroto YAMAKAWA

June 26, 2021
Tweet

More Decks by Hiroto YAMAKAWA

Other Decks in Programming

Transcript

  1. #osc21do #javado
    !"#$%&'$%()*+,-./01123444056
    789:;<=>[email protected])A9B
    @gishi_yama
    山川広人(公立千歳科学技術大学)
    1

    View Slide

  2. #osc21do #javado
    公立千歳科学技術大学 情報システム工学科 専任講師
    R&D: Experimental Development of ICT Systems (ex: City-Bus Tacking System)
    Computer in Education, Programming and Programmer's Learning
    :C?;D;0EFGFHFIFJ0KLCMNCOPQ2
    千歳市バスロケーションシステムの開発 適応型学習支援システムの開発、活用 レポート内の話ことば診断システムの開発
    大学・小学校・地域でのプログラミング教育の実践

    View Slide

  3. #osc21do #javado
    RSTUVWXYZ0['\]^_`$abc,0defgh0ij09klbmn1opqrso
    3
    2時間半の内容が60分にぎゅっと凝縮されています

    View Slide

  4. #osc21do #javado
    !"#$%&'$%($0tun1r5.vw
    789xyz,{+B
    4

    View Slide

  5. #osc21do #javado
    "... a collection of software tools that automates the process of installing, upgrading,
    configuring, and removing computer programs for a computer's operating system in a consistent
    manner." -- Wikipedia (en)
    一貫した方法(コマンド等)で
    OSへのプログラムの導入、更新、設定、削除を自動化するソフトウェアツール集
    (いわゆる ports, yum, apt-get... など)
    何かソフトウェアを導入したい時に(ライブラリなどの依存関係や設定も自動的に含めて)
    使えるようにしてくれる
    !"#$%&'$%($|}
    5
    $ ./con„gure [様々なオプション]
    $ make
    $ make install
    以後、パス通して、設定書いて...
    〈私とパッケージマネージャーの出会い(2000年頃)〉
    $ apt-get install hoge
    Debian 3.0 (Woody)
    必要なものを一つ一つmakeしていた時代
    ✖n
    😮
    えっ、何これ 気持ち悪 すごく便利!

    View Slide

  6. #osc21do #javado
    ~•p|€c•xy‚ƒt„6…€w
    †‡|ˆtun•1‰ˆŠ‹Œv‰|1•Žƒw
    7•9•1‘’./B“”
    6
    ※Linuxユーザーには常識的だけれども、mac/Windowsユーザはそうでもない?
     (アプリストアやインストーラーが王道?)

    View Slide

  7. #osc21do #javado
    •–—9˜™2”tun6šGQ›0:;<=>[email protected]
    7|œ˜•œICžŸ;@M0 N;›;¡QD=PB)A9œw
    ¢+,£h‚0¤¥¥¦0so1
    7

    View Slide

  8. #osc21do #javado
    1.(右も左も分からない初学者でも)
    間違えずに、欲しいソフトウェアを設定できる
    2.自分専用のリポジトリも追加して、
    独自の環境も自動的に・何度も作れる
    3.OSSコントリビューションの入り口にもなる
    !"#$%&'$%($}œ§c•¢+,-‚0¤¥¥¦¨
    8

    View Slide

  9. #osc21do #javado
    パッケージマネージャーを使えば、
    インストーラーの他に依存関係や設定が必要なソフトウェアであっても、
    一行書くだけでインストールできる(つまり、王道の使い方)
    初心者が意外と怖がったりできなかったりする PATH の設定なども自動化してくれる
    「インストールしたけど command not found になります!」
    「システム環境変数?パス?何書けばいいの?」(そしてTypoする)
    というぐらいの初学者であっても、パッケージマネージャーが設定してくれる
    (...ことが多い。ダメでも大体「このコマンドを追加で使え!」って言ってくれる)
    j47©ƒªƒ«./•1¬-®‚ƒB¯°„±9²³´µ,¶·{¸¹)‚q6
    9
    // Javaの環境がほしいな
    $ brew install java11
    // goの環境がほしいな
    $ brew install go
    // visual studio code がほしいな
    $ brew install visual-studio-code
    Homebrew(Mac)
    // Javaの環境がほしいな
    > choco install jdk11
    // goの環境がほしいな
    > choco install golang
    // visual studio code がほしいな
    > choco install VisualStudioCode
    Chocolatey(Windows)

    View Slide

  10. #osc21do #javado
    最新版に更新したいときも、コマンド1行でまとめてやってくれる
    フォントやドライバも同じコマンドでインストールできる
    (ダウンロード先: リポジトリを事前追加する必要があることも)
    10
    // インストールしたのを全部最新版にしたいな
    $ brew upgrade
    Homebrew(Mac)
    // インストールしたのを全部最新版にしたいな
    > choco upgrade all
    Chocolatey(Windows)
    // Notoフォントつかいたいな
    $ brew tap homebrew/cask-fonts
    $ brew install font-noto-sans-cjk-jp
    // Logicoolのマウスドライバもインストールしたいな
    $ brew tap homebrew/cask-drivers
    $ brew intall logitech-options
    Homebrew(Mac) Chocolatey(Windows)
    // Notoフォントつかいたいな
    > choco install Noto
    // Logicoolのマウスドライバもインストールしたいな
    > choco install logitech-options

    View Slide

  11. #osc21do #javado
    自分でリポジトリを用意することで、
    独自の環境に必要なプログラムであっても、パッケージマネージャーで管理できるようになる
    たとえば Homebrewだと、Githubでリポジトリが簡単に作れる
    (追加したいプログラム用のインストール・削除スクリプトをpushするだけ)
    º4»«¼z,!"#$%)½¾snœ¿»,´µƒ»À—9ÁŠÂƒÃŒ6
    11
    // 独自に追加した沖データのプリンタドライバをインストール
    $ brew tap gishi-yama/homebrew-gy
    $ brew install oki_c332dnw

    View Slide

  12. #osc21do #javado
    自分で用意したリポジトリも含めて、コマンドリストやレシピ的なファイルを作っておけば、
    新しいマシンに自動的に環境を用意できる
    12
    コマンドリストを作って、一度にすべて実行する Ansible などの構成管理ツールのレシピに
    独自のリポジトリも追加して実行できる

    View Slide

  13. #osc21do #javado
    「このリポジトリ、まだ更新されていないな」
    「このプログラム、リポジトリにないな」
    というときに、リポジトリを更新・追加することでOSSに貢献できる
    ※パッケージマネージャによって審査の有無など異なるが、
    Homebrewはハードル低め
    ¢40[Ä]ÅÆÇ$ÈÉÄ,ÊËÌ9ƒ•6
    13

    View Slide

  14. #osc21do #javado 14
    (Homebrewの場合)コントリビューションの仕方も
    しっかりマニュアル化・システム化されている
    指示に合わせてスクリプト書いて
    テストツール通して、
    テスト結果と一緒に
    プルリクエスト
    これ抜けてるから
    直してねという指示
    コントリビューション完了!

    View Slide

  15. #osc21do #javado
    1.(右も左も分からない初学者こそ)
    間違えずに、欲しいソフトウェアを設定できる
    2.自分専用のリポジトリも追加して、
    独自の環境も自動的に・何度も作れる
    3.OSSコントリビューションの入り口にもなる
    0r|Í7ÎÏBÐ!"#$%&'$%($}œ§c•¢+,-‚0¤¥¥¦¨
    15
    ※Windowsの人も、Microsoftの公式パッケージマネージャ WinGet の正式版が
      5月末に出たようなので、レッツトライ!

    View Slide