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&座談会」にて発表

8c6c1f0c4c41d0640ade76bd71e9e475?s=128

Hiroto YAMAKAWA

June 26, 2021
Tweet

Transcript

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

  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;0EFGFHFIFJ0KLCMNCOPQ<Q 2 千歳市バスロケーションシステムの開発 適応型学習支援システムの開発、活用 レポート内の話ことば診断システムの開発 大学・小学校・地域でのプログラミング教育の実践
  3. #osc21do #javado RSTUVWXYZ0['\]^_`$abc,0defgh0ij09klbmn1opqrso 3 2時間半の内容が60分にぎゅっと凝縮されています

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

  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 😮 えっ、何これ 気持ち悪 すごく便利!
  6. #osc21do #javado ~•p|€c•xy‚ƒt„6…€w †‡|ˆtun•1‰ˆŠ‹Œv‰|1•Žƒw 7•9•1‘’./B“” 6 ※Linuxユーザーには常識的だけれども、mac/Windowsユーザはそうでもない?  (アプリストアやインストーラーが王道?)

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

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

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

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

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

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

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

    WinGet の正式版が   5月末に出たようなので、レッツトライ!