# Trunk: $B%$%s%9%H!\<%k%U%!%$%k$N%"%/%;%98"(B

**URL:** <https://www.ruby-forum.com/t/trunk-b-s-9-h-k-u-k-n-98-b/128781>\
**Category:** Development\
**Created:** [February 11, 2008, 2:29pm UTC](https://www.ruby-forum.com/t/trunk-b-s-9-h-k-u-k-n-98-b/128781 "2008-02-11T14:29:59Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![pegacorn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/cdc98d/32.png) [@pegacorn](https://www.ruby-forum.com/u/pegacorn)\
**Post date:** [February 11, 2008, 2:29pm UTC](https://www.ruby-forum.com/t/trunk-b-s-9-h-k-u-k-n-98-b/128781/1 "2008-02-11T14:29:59Z")

</div>

trunk ã§ã€ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚¢ã‚¯ã‚»ã‚¹æ¨©ãŒé©åˆ‡ã«è¨­å®šã•ã‚Œãªã„ã‚‚ã®ãŒ  
ã‚ã‚Šã¾ã™ã€‚

# Index: instruby.rb

— instruby.rb (ãƒªãƒ“ã‚¸ãƒ§ãƒ³ 15429)  
+++ instruby.rb (ä½œæ¥­ã‚³ãƒ”ãƒ¼)  
@@ -123,8 +123,9 @@  
end

def install\_recursive(srcdir, dest, options = {})

- noinst = options[:no\_install]
- glob = options[:glob] || “\*”

- opts = options.clone
- noinst = opts.delete(:no\_install)
- glob = opts.delete(:glob) || “\*”  
subpath = srcdir.size…-1  
Dir.glob("#{srcdir}/\*\*/#{glob}") do |src|  
case base = File.basename(src)  
@@ -143,7 +144,7 @@  
makedirs(d)  
else  
makedirs(File.dirname(d))

- 

```
 install src, d

```

- 

```
 install src, d, opts

```

end  
end  
end  
@@ -224,15 +225,15 @@  
if noinst = CONFIG[“no\_install\_files”] and noinst.empty?  
noinst = nil  
end

- install\_recursive("#{extout}/#{CONFIG[‘arch’]}", archlibdir,  
:no\_install =\> noinst)
- install\_recursive("#{extout}/include/#{CONFIG[‘arch’]}",  
archhdrdir, :glob =\> “\*.h”)

- install\_recursive("#{extout}/#{CONFIG[‘arch’]}", archlibdir,  
:no\_install =\> noinst, :mode =\> 0755)
- install\_recursive("#{extout}/include/#{CONFIG[‘arch’]}",  
archhdrdir, :glob =\> “\*.h”, :mode =\> 0644)  
end  
install?(:ext, :comm, :‘ext-comm’) do  
puts “installing extension scripts”  
hdrdir = rubyhdrdir + “/ruby”  
makedirs [rubylibdir, sitelibdir, vendorlibdir, hdrdir]

- install\_recursive("#{extout}/common", rubylibdir)
- install\_recursive("#{extout}/include/ruby", hdrdir, :glob =\> “\*.h”)

- install\_recursive("#{extout}/common", rubylibdir, :mode =\> 0644)
- install\_recursive("#{extout}/include/ruby", hdrdir, :glob =\> “\*.h”,  
:mode =\> 0644)  
end  
end

@@ -243,7 +244,7 @@  
ridatadir = File.join(CONFIG[‘datadir’],  
‘ri/$(MAJOR).$(MINOR).$(TEENY)/system’)  
Config.expand(ridatadir)  
makedirs [ridatadir]

- install\_recursive($rdocdir, ridatadir)

- install\_recursive($rdocdir, ridatadir, :mode =\> 0644)  
end  
end

@@ -324,7 +325,7 @@  
noinst \<\< “win32.h”  
end  
noinst = nil if noinst.empty?

- install\_recursive(“include”, rubyhdrdir, :no\_install =\> noinst, :glob  
=\> “\*.h”)

- install\_recursive(“include”, rubyhdrdir, :no\_install =\> noinst, :glob  
=\> “\*.h”, :mode =\> 0644)  
end

install?(:local, :comm, :man) do

---

<div class="post-metadata">

**Author:** ![pegacorn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/cdc98d/32.png) [@pegacorn](https://www.ruby-forum.com/u/pegacorn)\
**Post date:** [February 12, 2008, 4:13am UTC](https://www.ruby-forum.com/t/trunk-b-s-9-h-k-u-k-n-98-b/128781/2 "2008-02-12T04:13:34Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:33699] trunk:  
e$B%$%s%9%H!\<%k%U%!%$%k$N%”%/%;%98"e(B"  
on Mon, 11 Feb 2008 22:29:22 +0900, pegacorn  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|trunk e$B$G!“%$%s%9%H!\<%k%U%!%$%k$N%”%/%;%98"$,E,@Z$K@\_Dj$5$l$J$$$b$N$,e(B  
|e$B$"$j$^$9!#e(B

e$B\<h$j9~$\_$^$9!#e(B

---

<div class="post-metadata">

**Author:** ![pegacorn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/cdc98d/32.png) [@pegacorn](https://www.ruby-forum.com/u/pegacorn)\
**Post date:** [February 13, 2008, 4:14pm UTC](https://www.ruby-forum.com/t/trunk-b-s-9-h-k-u-k-n-98-b/128781/3 "2008-02-13T16:14:57Z")

</div>

e$B$3$s$P$s$O!#e(B

In message [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
on Tue, 12 Feb 2008 12:12:40 +0900,  
Yukihiro M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B
> 
> In message “Re: [ruby-dev:33699] trunk: e$B%$%s%9%H!\<%k%U%!%$%k$N%”%/%;%98"e(B"  
> on Mon, 11 Feb 2008 22:29:22 +0900, pegacorn [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:
> 
> |trunk e$B$G!“%$%s%9%H!\<%k%U%!%$%k$N%”%/%;%98"$,E,@Z$K@\_Dj$5$l$J$$$b$N$,e(B  
> |e$B$"$j$^$9!#e(B
> 
> e$B\<h$j9~$\_$^$9!#e(B  
> e$B$3$N%Q%C%A$r8+$F$$$F!"e(B

- install\_recursive(“#{extout}/#{CONFIG[‘arch’]}”, archlibdir,  
:no\_install =\> noinst, :mode =\> 0755)
- install\_recursive(“#{extout}/include/#{CONFIG[‘arch’]}”,  
archhdrdir, :glob =\> “\*.h”, :mode =\> 0644)

:mode =\>  
e$B$N@h$O%U%!%$%k$N%“%/%;%98”$@$H;W$&$N$G$9$,!“e(B0755/0644e$B$G$O$J$/e(B  
e$B$Fe(B0555/0444e$B$H$$$C$?CM$K$7$?$/$J$k%1!\<%9$b$”$j$^$9!#e(B

e$B$3$NJU$j!"=`%^%8%C%/!&%J%s%P!\<$G$O$J$/!"2?$+%G%U%)%k%HI=$9JQ?t$+2?$+$Ke(B  
e$B$G$-$J$$$b$s$G$7$g$&$+e(B?

---

<div class="post-metadata">

**Author:** ![pegacorn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/cdc98d/32.png) [@pegacorn](https://www.ruby-forum.com/u/pegacorn)\
**Post date:** [February 13, 2008, 4:53pm UTC](https://www.ruby-forum.com/t/trunk-b-s-9-h-k-u-k-n-98-b/128781/4 "2008-02-13T16:53:55Z")

</div>

e$B$J$+$@$G$9!#e(B

At Thu, 14 Feb 2008 00:14:24 +0900,  
Takahiro K. wrote in [ruby-dev:33766]:

> :mode =\> e$B$N@h$O%U%!%$%k$N%"%/%;%98"$@$H;W$&$N$G$9$,!“e(B0755/0644e$B$G$O$J$/e(B  
> e$B$Fe(B0555/0444e$B$H$$$C$?CM$K$7$?$/$J$k%1!\<%9$b$”$j$^$9!#e(B
> 
> e$B$3$NJU$j!"=`%^%8%C%/!&%J%s%P!\<$G$O$J$/!"2?$+%G%U%)%k%HI=$9JQ?t$+2?$+$Ke(B  
> e$B$G$-$J$$$b$s$G$7$g$&$+e(B?

make  
installe$B$N:]$K$=$l$\>$le(BINSTALL\_PROG\_MODEe$B$He(BINSTALL\_DATA\_MODEe$B$Ge(B  
e$B;XDj$G$-$k$h$&$K$7$^$7$?!#e(Bconfiguree$B$G;XDj$G$-$k$[$&$,$$$$$G$7$ge(B  
e$B$&$+!#e(B

---

<div class="post-metadata">

**Author:** ![pegacorn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/cdc98d/32.png) [@pegacorn](https://www.ruby-forum.com/u/pegacorn)\
**Post date:** [February 16, 2008, 3:06pm UTC](https://www.ruby-forum.com/t/trunk-b-s-9-h-k-u-k-n-98-b/128781/5 "2008-02-16T15:06:43Z")

</div>

pegacorn ã§ã™ã€‚

From: pegacorn [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Date: Sat, 16 Feb 2008 13:47:25 +0900  
Message-Id: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

> INSTALL\_PROG\_MODE=0555 ã¨ã™ã‚‹ã¨ã€ã‚µãƒ–ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã‚’ä½œæˆï¼ãƒ•ã‚¡ã‚¤ãƒ«ã‚’  
> ã‚³ãƒ”ãƒ¼ã™ã‚‹å‰ã«ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ãŒ 0555 ã«ãªã£ã¦ã—ã¾ã£ã¦ã€  
> Errno::EACCES ã«ãªã‚Šã¾ã™ã€‚
> 
> # ã‚µãƒ–ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã®ä½œæˆã«å¤±æ•—ã™ã‚‹ã®ã¯ã€fileutils ã®å•é¡Œã‹ã‚‚ã—ã‚Œã¾ã›ã‚“ãŒâ€¦
> 
> ## ã¾ã èª¿ã¹ã¦ã„ã¾ã›ã‚“ã€‚

ã‚µãƒ–ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã®ä½œæˆã«å¤±æ•—ã™ã‚‹ã®ã¯ã€fileutils ã®å•é¡Œã®ã‚ˆã†ã§ã™ã€‚  
ã§ã™ã®ã§ã€å…ˆç¨‹ã® instruby.rb ã¸ã®ãƒ‘ãƒƒãƒã¯å–ã‚Šæ¶ˆã—ã¾ã™ã€‚

# FreeBSD/Cygwin ã§ mkdir -p -m 0555 dir1/dir2/dir3 ã¨ã™ã‚‹ã¨ã€

# dir3 ã¯ 0555 ã«ãªã‚Šã¾ã™ãŒã€dir1, dir2 ã¯ 0755 ã«ãªã‚Šã¾ã™ã€‚

* * *

# Index: lib/fileutils.rb

— lib/fileutils.rb (ãƒªãƒ“ã‚¸ãƒ§ãƒ³ 15496)  
+++ lib/fileutils.rb (ä½œæ¥­ã‚³ãƒ”ãƒ¼)  
@@ -212,12 +212,15 @@  
stack.push path  
path = File.dirname(path)  
end

- 

```
 i = stack.size

```

- 

```
 mode = options[:mode]
 stack.reverse_each do |dir|
   begin

```

- 

```
     fu_mkdir dir, options[:mode]

```

- 

```
     fu_mkdir dir, (mode | (i > 1 ? 0200 : 0))
   rescue SystemCallError => err
     raise unless File.directory?(dir)
   end

```

- 

```
   i -= 1
 end

```

end

* * *

ãŸã ã€fileutils ã‚’ä¿®æ­£ã—ã¦ã‚‚ instruby ãŒã•ã‚‰ã«ä¸‹ä½ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã‚’  
ä½œæˆã—ã‚ˆã†ã¨ã—ã¦çµå±€ Errno::EACCES ã«ãªã‚‹ã®ã§ã€ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã®å•é¡Œã¯  
è§£æ±ºã—ãªã„ã®ã§ã™ãŒâ€¦

* * *

## installing binary commands /home/user/work-reposs/ruby/trunk/lib/fileutils.rb:243:in `mkdir’: Permission denied - /home/user/work-usr/ruby/trunk/lib/ruby (Errno::EACCES)

# makedirs [/home/user/work-usr/ruby/trunk/lib] ã¯æˆåŠŸã™ã‚‹ã‚ˆã†ã«ãªã‚‹ãŒã€

# ãã®å¾Œã® makedirs [/home/user/work-usr/ruby/trunk/lib/ruby] ã¯å¤±æ•—ã™ã‚‹ã€‚

---

<div class="post-metadata">

**Author:** ![pegacorn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/cdc98d/32.png) [@pegacorn](https://www.ruby-forum.com/u/pegacorn)\
**Post date:** [February 16, 2008, 5:49am UTC](https://www.ruby-forum.com/t/trunk-b-s-9-h-k-u-k-n-98-b/128781/6 "2008-02-16T05:49:31Z")

</div>

pegacorn ã§ã™ã€‚

From: Nobuyoshi N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Date: Thu, 14 Feb 2008 00:53:01 +0900  
Message-Id: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

> Takahiro K. wrote in [ruby-dev:33766]:
> 
> > :mode =\> ã®å…ˆã¯ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚¢ã‚¯ã‚»ã‚¹æ¨©ã ã¨æ€ã†ã®ã§ã™ãŒã€0755/0644ã§ã¯ãªã  
> > ã¦0555/0444ã¨ã„ã£ãŸå€¤ã«ã—ãŸããªã‚‹ã‚±ãƒ¼ã‚¹ã‚‚ã‚ã‚Šã¾ã™ã€‚
> > 
> > ã“ã®è¾ºã‚Šã€æº–ãƒžã‚¸ãƒƒã‚¯ãƒ»ãƒŠãƒ³ãƒãƒ¼ã§ã¯ãªãã€ä½•ã‹ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆè¡¨ã™å¤‰æ•°ã‹ä½•ã‹ã«  
> > ã§ããªã„ã‚‚ã‚“ã§ã—ã‚‡ã†ã‹?
> 
> make installã®éš›ã«ãã‚Œãžã‚ŒINSTALL\_PROG\_MODEã¨INSTALL\_DATA\_MODEã§  
> æŒ‡å®šã§ãã‚‹ã‚ˆã†ã«ã—ã¾ã—ãŸã€‚

INSTALL\_PROG\_MODE=0555 ã¨ã™ã‚‹ã¨ã€ã‚µãƒ–ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã‚’ä½œæˆï¼ãƒ•ã‚¡ã‚¤ãƒ«ã‚’  
ã‚³ãƒ”ãƒ¼ã™ã‚‹å‰ã«ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ãŒ 0555 ã«ãªã£ã¦ã—ã¾ã£ã¦ã€  
Errno::EACCES ã«ãªã‚Šã¾ã™ã€‚

# ã‚µãƒ–ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã®ä½œæˆã«å¤±æ•—ã™ã‚‹ã®ã¯ã€fileutils ã®å•é¡Œã‹ã‚‚ã—ã‚Œã¾ã›ã‚“ãŒâ€¦

## ã¾ã èª¿ã¹ã¦ã„ã¾ã›ã‚“ã€‚

* * *

% make install INSTALL\_PROG\_MODE=0555 INSTALL\_DATA\_MODE=0444  
./miniruby -I./lib ./instruby.rb --make=“make” --dest-dir=“”  
–extout=“.ext” --mflags=“” --make-flags=“” --data-mode=0444  
–prog-mode=0555 --installed-list .installed.list --mantype=“doc”  
installing binary commands  
/home/user/work-reposs/ruby/trunk/lib/fileutils.rb:240:in `mkdir': Permission denied - /home/user/work-usr/ruby (Errno::EACCES) from /home/user/work-reposs/ruby/trunk/lib/fileutils.rb:240:in `fu\_mkdir’  
from /home/user/work-reposs/ruby/trunk/lib/fileutils.rb:217:in `block (2 levels) in mkdir_p' from /home/user/work-reposs/ruby/trunk/lib/fileutils.rb:215:in `reverse\_each’  
from /home/user/work-reposs/ruby/trunk/lib/fileutils.rb:215:in `block in mkdir_p' from /home/user/work-reposs/ruby/trunk/lib/fileutils.rb:201:in `each’  
from /home/user/work-reposs/ruby/trunk/lib/fileutils.rb:201:in  
`mkdir_p' from ./instruby.rb:130:in `makedirs’  
from ./instruby.rb:200:in `block in <main>' from ./instruby.rb:375:in `call’  
from ./instruby.rb:375:in `block (2 levels) in <main>' from ./instruby.rb:372:in `each’  
from ./instruby.rb:372:in `block in <main>' from ./instruby.rb:371:in `each’  
from ./instruby.rb:371:in `’  
\*\*\* Error code 1

## Stop in /home/user/work-reposs/ruby/trunk.

å–ã‚Šæ•¢ãˆãšä»¥ä¸‹ã®ã‚ˆã†ã«ã™ã‚‹ã¨â€¦

* * *

# Index: instruby.rb

— instruby.rb (ãƒªãƒ“ã‚¸ãƒ§ãƒ³ 15496)  
+++ instruby.rb (ä½œæ¥­ã‚³ãƒ”ãƒ¼)  
@@ -127,7 +127,7 @@  
File.directory?(realdir)  
end  
end.compact!

- super(dirs, :mode =\> $prog\_mode) unless dirs.empty?

- super(dirs, :mode =\> ($prog\_mode|0200)) unless dirs.empty?  
end

## def install\_recursive(srcdir, dest, options = {})

ä»Šåº¦ã¯ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«å…ˆã«ã‚³ãƒ”ãƒ¼ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã‚¹ã‚¯ãƒªãƒ—ãƒˆã® shebang ã‚’  
æ›¸ãæ›ãˆã‚ˆã†ã¨ã—ã¦ Errno::EACCES ã«ãªã‚Šã¾ã™ã€‚

* * *

% make install INSTALL\_PROG\_MODE=0555 INSTALL\_DATA\_MODE=0444  
./miniruby -I./lib ./instruby.rb --make=“make” --dest-dir=“”  
–extout=“.ext” --mflags=“” --make-flags=“” --data-mode=0444  
–prog-mode=0555 --installed-list .installed.list --mantype=“doc”  
installing binary commands  
installing command scripts  
./instruby.rb:162:in `initialize': Permission denied - /home/user/work-usr/ruby/trunk/bin/rake (Errno::EACCES) from ./instruby.rb:162:in `open’  
from ./instruby.rb:162:in `open_for_install' from ./instruby.rb:282:in `block (2 levels) in ’  
from ./instruby.rb:269:in `each' from ./instruby.rb:269:in `block in ’  
from ./instruby.rb:375:in `call' from ./instruby.rb:375:in `block (2 levels) in ’  
from ./instruby.rb:372:in `each' from ./instruby.rb:372:in `block in ’  
from ./instruby.rb:371:in `each' from ./instruby.rb:371:in `’  
\*\*\* Error code 1

## Stop in /home/user/work-reposs/ruby/trunk.

(1)INSTALL\_PROG\_MODE=0555 ã¨ã—ãŸå ´åˆã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã‚‚ 0555 ã¨ã—ãŸã„ï¼  
ã™ã‚‹ã¹ãã§ã—ã‚‡ã†ã‹ï¼Ÿ  
(2)ã‚³ãƒ”ãƒ¼å…ƒã®ã‚³ãƒžãƒ³ãƒ‰ã‚¹ã‚¯ãƒªãƒ—ãƒˆã® shebang ã‚’æ›¸ãæ›ãˆã¦ã‹ã‚‰ã‚³ãƒ”ãƒ¼ã™ã‚‹  
ã‚ˆã†ã«ã™ã‚‹ã¨ã€ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«å¾Œã®å†ãƒ“ãƒ«ãƒ‰ï¼Œãƒ†ã‚¹ãƒˆç­‰ã«å½±éŸ¿ã—ã¾ã™ã‹ï¼Ÿ

# èª¿ã¹ãšã«èžã„ã¦ã¾ã™ m(\_\_)m

---

<div class="post-metadata">

**Author:** ![pegacorn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/cdc98d/32.png) [@pegacorn](https://www.ruby-forum.com/u/pegacorn)\
**Post date:** [February 16, 2008, 5:39pm UTC](https://www.ruby-forum.com/t/trunk-b-s-9-h-k-u-k-n-98-b/128781/7 "2008-02-16T17:39:17Z")

</div>

e$B$3$s$P$s$O!#e(B

> INSTALL\_PROG\_MODE=0555 e$B$H$9$k$H!"%5%V%G%#%l%/%H%j!\<$r:n@.!?%U%!%$%k$re(B  
> e$B%3%T!\<$9$kA0$K%G%#%l%/%H%j!\<$,e(B 0555 e$B$K$J$C$F$7$^$C$F!“e(B  
> e$B\<B9T$9$k%W%m%0%i%`$N%”%/%;%98"$H!"%G%#%l%/%H%j$N%"%/%;%98"$OJ,$1$F9M$(e(B  
> e$B$k$Y$-$G$7$g$&!#e(B(e$B$b$C$H:Y$+$/8@$($P!"\<B9T7A\<0$H%9%/%j%W%H$G$bJ,$1$F9Me(B  
> e$B$($J$$$H$$$1$J$$4D6-$O$"$k$+$b$7$l$^$;$s!#e(B)
