やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Linuxのsudoでパスワードを省略する方法を調べてみた

インストールを自動化したくて。

背景

GitHubアップローダをすぐさま使えるようにしたい。必要なものを自動インストールしたい。しかし、以下のような問題がある。

  • apt-get install sqlite3のようなインストールコマンドを自動実行したい
    • sudo apt-get install sqlite3とし、パスワードを入力しないと実行できない(自動実行できない)
  • pip3 install requestsのようなインストールコマンドを自動実行したい
    • sudo pip3 install requestsとし、パスワードを入力しないと実行できない(自動実行できない)

インストールしたい項目は以下。(他にも必要なものはあるかもしれない。多いかもしれない)

sudo apt-get install python3
sudo apt-get install python3-pip
sudo apt-get install sqlite3

sudo pip3 install pytz
sudo pip3 install furl
sudo pip3 install requests
sudo pip3 install dataset
sudo pip3 install PyYAML
sudo pip3 install bs4

# たぶん以下は要らない
sudo pip3 install Pillow
sudo pip3 install requests-oauth
sudo pip3 install xmltodict

コマンドに加え、1件ずつ12回もパスワードを入力することになる。ウンザリする。自動化したい。

参考

Ubuntu で sudo apt-get update とかするときにパスワードを聞かれないようにする - Everyday Programmer
sudo のパスワードを入力なしで使うには - Qiita

visudoというのを使ったほうが安全に編集できるらしい。それにしても面倒。

  • パスワード入力なしでインストールしたい
    • /etc/sudoersの編集が必要
      • 誤って編集して壊したら動作しなくなる
    • visudoをインストールして安全に編集する

問題

  • 自分の環境なら何でもいいが、インストール先でもvisudoを強要することになるのはどうなのか
  • 環境依存(Linux, Debain系?)

所感

基本的にユーザが自分で1つずつ確認し、実行して、自己責任とする。ということか。自動化できないと。

依存が多いと1つずつ手でインストールコマンドを打つ羽目になる。apt-getなどのパッケージ管理ツールはパッケージ間の依存関係を解決してくれるはず。依存しているものも自動でインストールしてくれるのだと思うのだが、どうやってやるのかわからない。公式サイトで公開する必要があるなら難しい。ローカルでやりたい。しかも配布して再現できる形で。

そもそも、Pythonスクリプトapt-getのパッケージにすること自体が間違っているのかもしれない。でも丸ごと実行形式ファイルにするのは面倒そうな上にファイルサイズが肥大化するらしいので嫌。

方法が見つからない。一旦あきらめる。