Unix/Linuxシステムでは、chmod
関数は "記号モード"をサポートしています。 chmod u+x ...
は、ユーザーの実行権限を追加するための記号形式です。 RubyのFileUtils
のchmod
関数は、許可として絶対ビットマスクのみをサポートしています。つまり、FileUtils.chmod(0777, ...)
しか実行できませんが、FileUtils.chmod('u+x', ...)
は機能しません。システムコマンドを明示的に呼び出さずにRubyでchmodのシンボリックモードを複製する
system
コマンドを直接呼び出すことです:system("chmod u+x ...")
を直接呼び出すことですが、Rubyドメインにできるだけ多くのシェルを作成することなくコードを保持したいと考えています。あるいは、File
のオブジェクト、File.stat
を反復して、既存のビットマスクを取得して個々に変更することもできますが、シンボリックモードはファイルのグロブをサポートします。
もっとエレガントな方法でこれを行う方法があるかどうかは知っていますか?
です。 –
更新を続けるような具体的なことはありますか? RVMまたはrbenvを使用すると、別のRubyバージョンをインストールしてアプリケーションごとに切り替えるのはむしろ面倒です。 –
現在の生産システムはUbuntu Lucidに固執していますが、これはまだ1.8(実際には最新版のOneiricもRuby 1.8です)であり、DebianパッケージはRubyを手動でアップグレードするとうまく動作しません。私はRVMベースの管理システムへの移行を検討していましたが、まだそこにはありません。 –