探検


OS XをUnixとして使ってる人の為のスレ 18 [無断転載禁止]©2ch.net

2016/05/06(金) 04:16:59.70ID:Kkeqv6zz0
OS X を Unix として使ってる人の為のスレです。

■関連スレ
Fink 使ってるの洩れだけなのかっ!?【rev.2】
http://potato.2ch.net/test/read.cgi/mac/1166780804/
MacPorts でワクワク UNIX ライフ Part 3
http://potato.2ch.net/test/read.cgi/mac/1315401888/
Homebrew でゾクゾク UNIX ライフ2
http://potato.2ch.net/test/read.cgi/mac/1309843497/
AppleScript アップルスクリプト 質問、発表 6
http://potato.2ch.net/test/read.cgi/mac/1387630245/
【中の人】Automator【小人】3人目
http://potato.2ch.net/test/read.cgi/mac/1416219152/
【タマニハ】MacにLinux入れようよ!その4【チガウノ】
http://potato.2ch.net/test/read.cgi/mac/1277458655/
Mac de Emacs総合スレ v7
http://potato.2ch.net/test/read.cgi/mac/1328699139/
Mac Vim 再び
http://potato.2ch.net/test/read.cgi/mac/1133534694/
Macでプログラミング{11}
http://potato.2ch.net/test/read.cgi/mac/1414566499/

■前スレ
Mac OS XをUnixとして使ってる人の為のスレ 17
http://potato.2ch.net/test/read.cgi/mac/1383436068/
2018/03/19(月) 07:50:40.32ID:brr6aMt60
>>235
ありがとうございます。
エラーは出なくなりました。

./hoge.shだけを動かしたらカレントディレクトリ内のaacファイル全て
./hoge.sh hoge.aac と指定したらその指定したaacファイルのみ

スクリプト実行後、aacファイルが存在しない場合はその旨を通知して終了
aacファイルがある場合は、次へ

そのaacファイルを何らかの方法で調べ(mediainfoのFormat profile欄?)、
HE-AACの場合は
muxer -i file.aac?sbr --file-format m4a -o file.m4a

通常のAACの場合は
muxer -i file.aac --file-format m4a -o file.m4a
を実行

変換したファイル数を通知して終了

ってやる事も出来ますか?
2018/03/19(月) 08:40:16.98ID:brr6aMt60
ifを試してみてるんですが、これだとmuxerでエラーになってしまい変換出来ませんでした。

file () {
/bin/ls -1 *.aac
}

if [ -e $file ]; then
# aacファイルが存在する場合
muxer -i $file?sbr --file-format m4a -o ${file%.aac}.m4a
else
# aacファイルが存在しない場合
echo "aac ファイルはありません."
fi
2018/03/19(月) 08:42:24.78ID:856/uQDL0
少しはググれ
2018/03/19(月) 14:23:11.45ID:6sT/FsA+0
まあ、ググってるんだし勉強してる姿勢はあるからな。そう無下には...と、思うが、さすがに安易に聞きすぎではあるな

>>236 全然できる
>>237 んー、むちゃくちゃw もちょっとちゃんと勉強しよう。なぜ関数てか関数てのもわかってないか。man testを見よう
2018/03/19(月) 15:58:01.65ID:brr6aMt60
>>238
>>239

file () {をやめて、一番最初に教えていただいたforとifを組み合わせることで、ファイルが有るときは全て処理して無いときはメッセージを出す事が出来ました。
ただ、testのmanを見た感じでは[]の使い方間違えている気がしています。

for file in *.aac; do
if [ -e $file ] ; then
# aacファイルが存在する場合
muxer -i $file?sbr --file-format m4a -o ${file%.aac}.m4a
else
# aacファイルが存在しない場合
echo "aacファイルはありません."
fi
done

HE-AACか否かは、
mediainfo $file | awk '/HE-AAC/'
の結果で判断してifの下にelifをつくってそこでそれぞれmuxerを行えば良いのかなと思いました。
ググります。
2018/03/19(月) 16:06:33.40ID:eFgpBFG/0
>>236
ちょっと欲張り過ぎw

1つ目のやつはPositional Parameter学ぶといいよ
http://wiki.bash-hackers.org/scripting/posparams

シェルスクリプトのスレはココ
https://mevius.5ch.net/test/read.cgi/unix/1489979246/
2018/03/19(月) 16:11:24.10ID:eFgpBFG/0
↓これを ./hoge.sh で実行する場合と
./hoge.sh 1.aac 2.aacで実行する場合とで比べてみて

#! /usr/bin/env bash

echo "¥$#: $#"
echo "¥$@: $@"
echo "¥$1: $1"
echo "¥$2: $2"
echo "¥$3: $3"

func() {
echo "---inside func---"
echo "¥$#: $#"
echo "¥$@: $@"
echo "¥$1: $1"
echo "¥$2: $2"
echo "¥$3: $3"
}

if [ $# -eq 0 ]; then
func *.aac
else
func "$@"
fi
2018/03/19(月) 21:30:32.85ID:brr6aMt60
オライリーの入門bashを買ってきました
難しいです・・・
HE-AACと通常のAACで変換の仕方を分けたいんですが、elifの書き方が間違えているようです。
コマンド周辺を[]か()か{}で括ったりechoで出力しなければいけないんでしょうか?
本を読んでみます。

for file in *.aac; do
if [ -e $file ] ; then
# aacファイルが存在する場合
# HE-AACの場合
elif mediainfo $file | awk '/: HE-AAC/' = "Format profile : HE-AAC / LC"; then
muxer -i $file?sbr --file-format m4a -o ${file%.aac}.m4a
#AACの場合
elif mediainfo $file | awk '/: LC/' = "Format profile : LC"; then
muxer -i $file --file-format m4a -o ${file%.aac}.m4a
#.aacで終わるファイル名だけど、上のどちらでも無い場合
#elif どうかくのかな; then
else
# aacファイルが存在しない場合
echo "aacファイルはありません."
fi
done

>>242
試してみました
前者の方は---inside func---以前は¥:だけで、
後者の方は---inside func---以前以後同じ表示でした
これらがPositional Parameter(位置パラメーター?)の例かと思ったけれど、それだけじゃなく、今自分がやりたい事のヒントがいくつも入っている気がしました。
2018/03/19(月) 21:32:55.33ID:brr6aMt60
>>241
新Mac板内だと思っていました。
移動したほうがいいでしょうか?
2018/03/19(月) 22:27:01.09ID:eFgpBFG/0
>>243
シェルスクリプトの書き方だから移動したほうがいいんじゃないかな


単にマッチする行があるかどうかならawkじゃなくgrepでいい
if文の中で実行するコマンドは実行直後の“$?”が0ならtrue、1ならfalse

$ mediainfo hoge.aac | grep '^Format profile *: LC$'
$ echo $?

elifが分からないと思えばリファレンスを検索
http://tiswww.case.edu/php/chet/bash/bashref.html#Reserved-Word-Index_rw_letter-E
2018/03/19(月) 23:09:15.25ID:brr6aMt60
>>245
どうもありがとうございます
移動します
みなさんありがとうございました
おかげで大分進みました
2018/03/20(火) 00:24:34.18ID:Zfl5TJwo0
bashrefならわざわざ他所見なくたって昔から入ってるだろ
んなことも知らんのか...
/usr/share/doc/bash/bashref.html
/usr/share/doc/bash/bashref.pdf
248名称未設定
垢版 |
2018/03/25(日) 07:10:14.52ID:TJoOpRy+0
plistの特定の値だけコピーするシェルスクリプトを書きたいのですが、マルチバイト文字が
"¥U307e"のような表記になってしまいます(¥はバックスラッシュ)
何か回避する方法ないですかね…?

_VAL=$(defaults read "/Volumes/OtherMac/Users/other/Library/Preferences/pbs" NSServicesStatus)
defaults write "pbs" NSServicesStatus -dict "${_VAL}"
2018/03/25(日) 11:26:31.77ID:fyK68VIc0
pbs特有の話?
ならそのキーしかないみたいだからファイルごとコピーしちゃう
でpbsとcfprefsdを殺すかログインし直す
2018/03/25(日) 13:53:07.17ID:eOzSZvCQ0
>>248
$ echo -e “¥U307e”
$ printf “¥U307e”

bashなら4.2以上が必要
251名称未設定
垢版 |
2018/03/25(日) 17:08:31.48ID:JHUD7X2Z0
ログイン項目の非表示にチェックを入れた時と同じような動作を
ターミナルから実行するにはどのコマンドを使うのでしょうか?open?
2018/03/25(日) 17:40:00.00ID:CeZuhD1f0
osascript -e 'tell application "AppName" to run'
2018/03/25(日) 19:44:11.29ID:XDIjCUQH0
launchコマンド入れれ
https://sabi.net/nriley/software/
launch -h -a アプリ名

lsappinfoコマンド
lsappinfo launch launchandhide=true アプリへのpath
はなんかうまく行かなかった
2018/03/25(日) 21:25:56.27ID:CeZuhD1f0
lsappinfoなんてあるのかあ。確かになんかlaunchandhideは本当に?ってのかな。nofrontも

openはman見たら無さげだったから無いもんだと思ってたが、あるらしい
-j だって。launchandhide/AppleScreitでのrunにあたる
-g って、nofront/AppleScriptでのlaunchにあたるのもあるらしい

https://apple.stackexchange.com/questions/123448/os-x-how-to-have-starting-applications-optionally-not-take-the-focus

確かに動く
(-j だけでもよさそうだが、-j と -jg ではちょっと違う。書かれているように -jg の方がよさげ)
2018/03/25(日) 21:35:24.55ID:CeZuhD1f0
ああ、-g は man にも載ってたな。-j は man に無い(無いよな?w)が、open --help にはあるね
2018/03/25(日) 23:40:03.86ID:JHUD7X2Z0
>>252-255
ありがとうございます!
試してみます!
257名称未設定
垢版 |
2018/04/26(木) 08:31:12.03ID:4h/8ShAo0
folderをpackageにするにはどういうコマンドを使うの?
2018/04/26(木) 13:06:59.41ID:9qdA5bqJ0
フォルダの名前を変更して,拡張子.pkgを付ければ
パッケージになるよ
って,そういう話?
259名称未設定
垢版 |
2018/04/26(木) 14:10:13.57ID:2Yx1Qnq40
>>258
拡張子なくてパッケージ(バンドル)なのがあるじゃん
アレなんかフォルダにフラグ立ってるって聞いたときあるけど
どうすれば愛かわからなくて
2018/04/26(木) 14:21:25.78ID:fRIbBp500
恋かもしれない
2018/04/26(木) 14:38:44.78ID:kUkqEUtN0
Finderが特定の拡張子のフォルダをパッケージに見せてるだけだろ
262名称未設定
垢版 |
2018/04/26(木) 20:27:03.70ID:4h/8ShAo0
>>261
ううん
ビデオのAVCHDファイルに
拡張子ないよ
2018/04/26(木) 20:37:20.83ID:UIlM09fA0
特定の拡張子(付ける)だけという他に、
(com.apple.)FinderInfo に これはバンドルです というフラグがあるのでそれを立てる

いにしえの SetFile コマンドなら、
SetFile -a B HogeHoge
https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/SetFile.1.html

SetFile に代わる今時のコマンドってなんだろなあ
2018/04/26(木) 20:55:48.64ID:UIlM09fA0
ああ、まだ SetFile/GetFile/GetFileInfo って現役というか存在するのね
Xcode.appの中にあった。たぶん、Command Line Tools for Xcode にもあるだろう
じゃ、SetFile で
265名称未設定
垢版 |
2018/04/26(木) 21:26:14.52ID:4h/8ShAo0
>>263
ありがとう
確かにパッケージになりました
ただ
残念ながら
QuickTimeで開けられるAVCHDファイルにはならなかったので
(パッケージフォーマットのファイルを開けませんと出る)
本物のAVCHDファイルってただパッケージなだけじゃないのね
2018/04/26(木) 21:36:33.18ID:UIlM09fA0
バンドルは単なるバンドルだからな
どういう書類(パッケージ?バンドル)かを指定するのは、また、別。指定してなければデフォルトのなんらかに対するっていう

「どういうバンドル/パッケージ」というのがあれば/付けなければじゃないとね
まさか、Type/Creatorと未だに生きているわけでもないので、UTIが拡張属性にあるんじゃね。もしくはInfo.plistかな?
2018/04/26(木) 21:50:09.47ID:fRIbBp500
Finderの設定で拡張子非表示にしてるんじゃ
2018/04/26(木) 22:24:03.73ID:UIlM09fA0
正直AVCHDなんて知らんw パッケージだの言ってるのは、
https://www.youtube.com/watch?v=9ILRGxEWMc4
のことか?AVCHD Content って、macOSの正式なバンドル方法じゃないんじゃないの。SDとかHFS+なりmacOS固有のFile Systemでなんてなさそうだし
単に内容物が固有の形式ってだけとか。サンプルよこせ、もしくはどこからダウンロードできるか教えろw
269名称未設定
垢版 |
2018/04/26(木) 22:52:01.77ID:4h/8ShAo0
>>268
ファインダではパッケージで
パッケージを表示で中が見れる
うーん一体本物とどこが違うんだろ
>>267
ターミナルでも無いから
2018/04/26(木) 22:59:06.28ID:5YJnNM3h0
ビデオカメラで記録するためのフォーマットか
2018/04/26(木) 23:04:40.22ID:UIlM09fA0
>>269
Finderが特定の内容物/ファイル構造のをパッケージの一種として扱ってるだけだと思うけどな、もうw
拡張子だのバンドルフラグというmacOS正式/固有のとは全く関係ない、そのファイル構造だけを特別に意識しての
2018/04/26(木) 23:08:01.09ID:UIlM09fA0
全然 Understanding じゃないけどw、
https://videoconverter.wondershare.com/hd/avchd-file-structure.html
とかなんとか。そのソフト売るために全然詳しく書いてないような気がするけど、まあ、その図の構造であればじゃないの。どれが必須でなにがなんだかだけどw
2018/04/27(金) 03:19:59.93ID:fHCw4TbP0
やっぱ最初に背景とか前提とか出してない奴に付き合うもんじゃないな
2018/04/27(金) 04:07:53.39ID:Ca5U8JTR0
いや、素人さんなだけだろ。素人でなくて仕事としてっぽくもあるけど
2018/04/27(金) 06:11:42.35ID:jq3Agjcv0
AVCHDの規格に則っていないファイル群をただパッケージ化したところでそりゃ読めないよな
2018/04/27(金) 07:17:46.49ID:Ca5U8JTR0
FinderがAVCHDをパッケージと見なすのはとても単純な条件だった

の前に、BDMVをパッケージと見なすのも簡単な条件
ディレクトリ名がBDMVであることと、その中にindex.bdmvとMovieObject.bdmvの二つのファイルがあること

AVCHDは、
・ディレクトリ名がAVCHDであることと、その中にAVCHDTNディレクトリとBDMVパッケージがあること

ただ、これだけ

mkdir AVCHD;mkdir AVCHD/AVCHDTN;mkdir AVCHD/BDMV;(cd AVCHD/BDMV;touch index.bdmv MovieObject.bdmv)

これは単にどうパッケージとみなしてるにすぎなく、QuickTimeなんぞでちゃんと読めるようにするには別の話で内容をちゃんとしなけりゃだけど
2018/04/27(金) 07:34:21.86ID:Ca5U8JTR0
ああ、たまたまめっけた
https://www.videohelp.com/software/tsMuxeR
でBDMVが作れたので試し、MovieObject.bdmvとindex.bdmvはそれで作られたそのまんまだった
INDEX.BDMとMOVIEOBJ.BDMでもいい。なんか大文字だの小文字だのでなんやかんやとかあったりするからどっちかじゃなきゃ読めないアプリがあるかもね。どっちがいいのかは知らん(大文字の方かな、やっぱ)

mkdir AVCHD;mkdir AVCHD/AVCHDTN;mkdir AVCHD/BDMV;(cd AVCHD/BDMV;touch INDEX.BDM MOVIEOBJ.BDM)
2018/04/27(金) 18:22:17.58ID:Ca5U8JTR0
macOS流は、
UTTypeDescription = "AVCHD Collection";
UTTypeIdentifier = "public.avchd-collection";
UTTypeTagSpecification = {
"public.filename-extension" = (
avchd
);
};
だった。拡張子avchdを付けるだけ

>>276,277だと>>268みたくMacに持ってきた時に複数同一場所に置けないだろにと思ったが、ちゃんとあるのね。BDMVは無さげなんだけどw
>>276,277はmacOSなFile Systemじゃない/他により/汎用なに対しての特別なだろな
2018/04/27(金) 19:20:20.37ID:chJe8ppE0
粘り強いなw
280名称未設定
垢版 |
2018/04/27(金) 23:58:26.00ID:XDrwfTWL0
>>278
>ID:Ca5U8JTR0
いろいろ情報どうもありがとう
INDEX.BDMとMOVIEOBJ.BDMが必要なんだね
はてさてどうしたモノか
2018/04/28(土) 00:25:58.02ID:aHqgTWdB0
お前はドザか
全部大文字とか
2018/04/28(土) 01:30:25.63ID:QimijrjW0
未だのその理解だとまず目的は達成できないだろな...としか思えないなあ
https://support.apple.com/kb/PH16620?locale=en_US&;viewlocale=ja_JP
https://itunes.apple.com/jp/app/motion/id434290957?mt=12
にしなさいw
2018/04/28(土) 01:31:43.35ID:QimijrjW0
>>281
ドザ=汎用にもなってるのでしょうがない
284名称未設定
垢版 |
2018/04/28(土) 01:44:57.08ID:Tgl1ZXaY0
Macに標準で入っているコマンドだけで
現在時刻のミリ秒を取得する方法を教えてください
できるだけ速い方法で
2018/04/28(土) 04:40:36.87ID:DaLX0N4H0
python -c 'import datetime; print datetime.datetime.now()'
2018/04/28(土) 06:06:39.53ID:aHqgTWdB0
同じ奴かよ... https://mevius.5ch.net/test/read.cgi/unix/1489979246/888
2018/04/28(土) 18:32:33.60ID:QimijrjW0
その元のは注文が多いなw
標準のコマンドでという限定がわからんから無視すると、自分でほぼ二行のCプログラム書けば、ほぼdateと同じくらいだな。そんなちっこいバイナリはスクリプトに埋め込めるだろし(67行くらいあるけど)
2018/04/28(土) 22:56:16.07ID:Tgl1ZXaY0
>>287
マルチプラットフォーム対応なんですよ
2018/04/29(日) 01:06:32.08ID:pvDWve5N0
なんかめんどくさいやつ
290名称未設定
垢版 |
2018/04/29(日) 02:28:16.94ID:wsDLHdR60
>>289
いちいちめんどくさい
2018/04/29(日) 03:48:03.63ID:cq9ufjvc0
darwin的にはmach_absolute_timeが公式の高精度タイマで
今はclock_gettimeが使えるから移植性考えるとこっちなのかね
2018/04/29(日) 05:46:30.29ID:pvDWve5N0
そこまでの細かさが必要もしくは意味があるのかじゃないの
for(;;)
clock_gettime(...);
てなので1μ単位で取れる(てか1μ単位でしかとれないだけど)ようだから十分じゃないの
なんの目的かわからんけど、1μ単位でとったってしょうがないと思わなくもないけどな。リアルタイムOSでもないんだし
2018/04/29(日) 07:40:10.45ID:AHNUnEFK0
ミリ秒でいいっていってんのに
2018/04/29(日) 09:38:18.43ID:pvDWve5N0
そんな条件もうどうでもいい話w勝手に解決すればの
2018/04/29(日) 17:14:07.21ID:pvDWve5N0
考えてみたら、>>286先のが目的なら、時間取得するコマンドがいくら時間がかかろうが、1回分の時間取得するコマンドの処理時間を引けばいいこと(開始時間と終了時間の2度取得なら)、またはより正確(?)になるだろな
時間取得するコマンドが1秒/1分/1時間/1日かかろうがw、時間取得するコマンドが一定の時間で終えると期待できる(いや、するけど)ぶんにおいては

>>285他のでも全く問題なく&マルチプラットフォームでも問題なくだな。>>286先のが目的なら(時間取得するコマンドにもtimeが使えないだの言い出しそうだがw)
2018/04/30(月) 04:22:52.25ID:Ifm2UXLY0
超久々にOS X(macOS Sierra)上でCのコードをgdbでチェックしようと思ったら... はまる。
gdbでrunするとDuring startup program terminated with signal ?, Unknown signal.で動かない。

そもそもgdbがなかったし。でググって色々やってみたんですが解決せず。
他プロセスのmach portアクセスガーとかとでOS Xのgdbが面倒な奴なのは知っています。
でいろいろやってみたんですが、変わらず。

これ、結論は「lldb使え」ということでよろしかったでしょうか?
2018/04/30(月) 11:09:28.35ID:cqmDthPU0
osx捨てろ
2018/04/30(月) 11:12:22.08ID:rRQ1UtmS0
お前は注文受けてる店員か
2018/04/30(月) 16:40:03.20ID:O6YLl4pH0
>>296
標準+Xcodeじゃ入ってこないgdbをどこから持ってきたの?
2018/04/30(月) 18:05:31.26ID:3WHlXk0H0
ググってみたところは単にコードサインすればなようだけどな(そりゃコードサインは必要かなあ)
>>299の言うとおりどこから/どうってのがわからんとだろな
2018/04/30(月) 19:27:54.84ID:zHvDpnD40
んな手間かけるならlldbでいいじゃん
gdbとのコマンド対応表見りゃできるだろ
2018/04/30(月) 19:32:39.39ID:3WHlXk0H0
コードサインすればいいだけじゃんと試したがハマったな
During startup program terminated with signal ?, Unknown signal
ってことはコードサインまで済ませてたのね。そのエラーメッセージは前から出ていたようなので、GDBが悪い/macOSが悪いだのなんかあったような&GDBで.gdbinitにぃとかあるけどしてもやーん

結論は、8.1はまたなんかやってる(Developer Toolがあとか認証ダイアログが出てくるあたり?)、8.0.1にすればすればすんなり動いた

HomeBrewの標準パッケージには古いGDBは無いのかな?
https://stackoverflow.com/questions/49001329/gdb-doesnt-work-on-macos-high-sierra-10-13-3
で、8.0.1を入れた。8.0.1以上の動くのはあるかもしれんが知らん
2018/04/30(月) 19:40:43.56ID:3WHlXk0H0
あ、うちも Sierra 10.12.6。いちおう
2018/05/01(火) 09:03:06.26ID:zH8O9TjO0
http://lldb.llvm.org/lldb-gdb.html
こうやって見るとGDBにこだわる必要なさげ
まあ、LLDBのサイトなのでそのように見せているのもあるだろうし、似せてるけどちょっと違うコマンドがあったりするし、感触が違うとこがあるかもだが
2018/05/01(火) 22:59:39.71ID:LHiiZuvh0
296ですが、gdbはいまだに駄目です。あ、gdbはbrewで8.1を入れてました。
>>302
自分も10.12.6で、そのstackoverflowの話に従いgdb 8.0.1を入れてみましたが今度は
Thread 2 received signal EXC_SOFTWARE, Software generated exception. というエラーに。

やはりlldbですかね。
llvmはアップルの中の人がメンテしてるみたいだし、gdbにフォローしてくのは止めたとか?

個人的にしばらくUbuntuに行ってたのですが、OS X、あmacOSに戻ろうかという野望があり...
しかしいきなり冷や水をw
2018/05/02(水) 01:53:47.92ID:XxfCxC580
そのエラーをどう出すのかわからんなあ
スレッドの取り扱い?とかでGDBの問題あるのかと、デバッグ対象をffmpegにしての変換走らせてみた(83スレッドくらいある)が、何も問題なく終わりの
デバッグ対象がバグってるとか?

set startup-with-shell off
で回避したと思ったらまた別のかよって感じだしなので、GDBに強いこだわりがないんだったらLLDBの方が無難だろうなあ
2018/05/02(水) 02:41:14.68ID:MQYjnibw0
ぶらぶらしてたらこんなのが紹介されてた
https://github.com/jlevy/the-art-of-command-line/blob/master/README-ja.md

知ってることも多いだろうけど
2018/05/02(水) 04:56:01.99ID:5OQvpLX90
おもしろいね
参考になったよ
2018/05/02(水) 22:50:35.53ID:tEeb5KUa0
>>307
個人的にはLinuxでしか使えないものを「Linux用のもの」として欲しいような。
OS XこそUNIX様なのでそれに準拠したコマンドにどうこう言わないで欲しいw

そういえばslってOS Xだとターミナル内じゃなく画面全体を走るやつあったよなあ。
以前それをCoreTextで書き直したら速くなった記憶が。
310名称未設定
垢版 |
2018/05/03(木) 05:04:50.08ID:D0SN7WcM0
AppleがServer止めちゃうんだけどHomeBrewで代替できるのかな
web/mail/wiki/calendar/addressbook/dns/vpn/certificate
2018/05/03(木) 23:22:30.77ID:GUKg5K5i0
>>310
詳しく
2018/05/03(木) 23:38:53.00ID:g+jKnfcB0
>>311
https://developer.apple.com/support/macos-server/macOS-Server-Service-Migration-Guide.pdf
Apple固有の以外で今までもOSSでやっていた一般的なサービスはAppleはもう提供しない、各々OSS導入してねってことだな

Homebrewでも(自分で本サイトからでも)、もともと同じものだからできるだろうが、OpenDirectory/LDAPがめんどくさい/Apple流でやってるとこがめんどくさいから、コンテンツ(IMAPなメールも含む)の移行がメインで捨てるとこは捨てるだと割とスムースにいくかなあてとこかな
313名称未設定
垢版 |
2018/05/04(金) 00:19:40.98ID:NpMIxKjZ0
>>312
けっこうapple依存してるんで困るんだよね
apacheもapple用のモジュールが今後どうなるんだろ?認証とかでも結構使われてるんだけど・・・
ディレクトリ構造もものすごく独自のものだし
証明書管理も独自のもの(IDの付け方とか)だし
そもそもユーザ管理だってユーザ名じゃないよね
ながーいIDで管理していてその中にユーザ名の項目がある
カレンダーやコンタクトサーバもそのIDでアクセスしてるから
移行とかできるのかしらん
グループ共有カレンダーはwiki(これもapple独自)で作成してるから
一体どうしたら良いものか
すでにwebmail/mailmanは切られていて
どちらも独自パッケージが提供されてるから問題なく移行できたんだけど
この秋にどうなるのかとても心配
まあ
serverをアップデートしなければserver.appの中にあるプログラムはそのまま使えるだろうけど
おそらくセキュリティアップデートは提供されなくなるよね
2018/05/04(金) 00:20:03.96ID:KRr2jnxJ0
>>312
サンクス
面倒な事になったね
315名称未設定
垢版 |
2018/05/04(金) 00:25:08.48ID:NpMIxKjZ0
ユーザもネットワークユーザ・ローカルユーザの区別があって
これまでODではネットワークユーザをどっちかと言えば推奨してたけど
ネットワークユーザはホームディレクトリが
/Network/Server/server.name.foobar.jp/Users/username
になっててapacheのuserdirもここになってるし
webdavでアクセスできるようになってるユーザのディレクトリやグループの共有ディレクトリも設定面倒そう
316名称未設定
垢版 |
2018/05/04(金) 00:27:56.27ID:NpMIxKjZ0
>>313
>ディレクトリ構造もものすごく独自のものだし
proxyでパフォーマンスサーバというのを経由してるらしくて
serverのapacheのログとかもへんてこになってるよ
そもそも/var/log/syslogもなんか変だし
2018/05/04(金) 00:43:46.72ID:wNwn5ZDw0
メールとかのサービス周りは基本的にはそのサーバのアカウント(そのローカルユーザ/Unix的なIDがあるユーザ)が必要なのが基本
サーバーにログイン(Unixな意味でのログイン)もしないユーザなんてのを、サーバーのアカウントに作ってられるかってので、バーチャルユーザなんぞとも称されるユーザ(そのネットワークユーザ)を使うようになるのはしごくもっともで、当然こちらになる

サーバのアカウントが無いんだから、どこかにUnix的なホームと違うホームがあり、また、いろいろなサービスでの認証等を一括して管理するメンドくさいサービスを使うのもしごくもっとも
それをどう設定するのかは、まあ、Apple流でなるほどと思わせるとこもあるが、なにがなんだかなとこも多いな(ホーム/ディレクトリ構造なんぞはなるほどだと思うとこだと思うけどなあ)
2018/05/04(金) 00:49:13.40ID:xxF97efP0
そういってもなぁ、HomeBrewなんて
インストールしたユーザーやで?
2018/05/04(金) 00:51:24.22ID:wNwn5ZDw0
インストールしたユーザ??
2018/05/04(金) 00:56:20.34ID:xxF97efP0
そうだよ。ファイルはHomeBrewでインストールしたユーザーの
所有者になるし、起動も起動したユーザー
でもインストールするディレクトリはホームディレクトリ以下じゃないよ

なにせ、HomeBrewはroot権限がなくても使えるという便利なものだからね!w
だから複数のユーザーでHomeBrewを使おうとか思わないでね!
2018/05/04(金) 00:57:39.99ID:wNwn5ZDw0
ああ、Homebrewでインストールしたブツのowner userIDがかな?あんま関係なくね?サービス起動時(rootで起動)にowner userIDがrootでないととかなんかあったっけ?
2018/05/04(金) 00:58:27.04ID:wNwn5ZDw0
>>320
前後した。何を言っているのかわからんww
2018/05/04(金) 01:08:03.82ID:KRr2jnxJ0
>>320
どうでもいいけど、homebrewな
2018/05/04(金) 01:11:50.77ID:wNwn5ZDw0
あんま何を言っている/何を問題にしてるのか全くwわからんが、単に本来rootであるべきなのが単なるいちユーザなのがキモいって言ってるだけなら、まあそこは同意してキモいとは思うw
でも、まあ/Applicationや/Libraryの下とかとか単なるいちユーザ(まあ管理者だけど)なのがゴロゴロしてるから、別にそこまできにする必要はないんじゃね

>>323
Homebrewらしいよ。まあBを大文字にするのは明らかにかもしれんけど
2018/05/04(金) 01:24:24.27ID:wNwn5ZDw0
あくまでもパーソナルな使い方だと、まんま brew ... でいいけど、今回のようなサーバーの構築とか、なんらかの複数で共用なら sudo brew ... すればええことやん(単なる複数の共用なら共用のuserIDでもいいだろう)
Homebrewもなんだったかと同じ(なんだっかなあ)ように、sudo(root)での実行すを許さないかと思ったらんなことないやん
2018/05/04(金) 01:52:24.89ID:xxF97efP0
>>321
例えばな。MySQLのデータファイルの所有権が一般ユーザーになるんだ。
あとサービス起動、rootじゃhomebrewのコマンドは実行できないようになってる
つまりサービス起動するhomebrewのコマンドが実行できない
2018/05/04(金) 02:10:27.41ID:wNwn5ZDw0
>>326
なんかいろいろ勘違いしてね?Unixとしての動作としておかしい。コマンドによっては「わざわざ」そうしてるのもあるけど
Homebrewで言えば/Homebrewによってで言えば、brewぐらいじゃないの。Homebrewによってインストールしたコマンドが全部そんな制約になるとは思えんけどな。てかbrewですらそんなことはないからな

>MySQLのデータファイルの所有権が一般ユーザーになるんだ
いやいや、あんたがそうしてるんだけど。brewで一般ユーザーでmysqlをインストールしても、データファイルをsudoで作れば当然rootになるけど

> rootじゃrootじゃhomebrewのコマンドは実行できないようになってる
どの??

まあ、そのなんだかんだの言い分も、sudo brew ... すれば関係ないことだとなんじゃないの
2018/05/04(金) 02:10:59.94ID:aDkXrLYf0
homebrewに/usr/local使わせるのは不安しかないので$HOME以下で運用してる
/usr/localは自分で入れる用。brew doctorに怒られるが気にしない

大体brewの管理なんて、opensslとそれを使うlftp(例)を入れたとして
opensslをバージョンアップしてdylibのファイル名が変わりました、cleanで古いdylibは消えました
でもlftpのバージョンは変わってないのでそのままです、起動できません
とかその程度のいい加減なもんだぜ?
2018/05/04(金) 02:17:23.64ID:wNwn5ZDw0
>>328
それはちょっといい加減だなw
まあ、ちょっと上のGDBからもいい加減だなとは思ってたけど
2018/05/04(金) 02:33:04.92ID:xxF97efP0
>>327
知らないなら自分は知らないんだと自覚して、
調べてくれないかな?

https://teratail.com/questions/62915

> brew install rbenv ruby-build
> をすると
>
> Error: Running Homebrew as root is extremely dangerous and no longer supported.
> As Homebrew does not drop privileges on installation you would be giving all
> build scripts full access to your system.
> が出ます

> sudoなどを用いてrootユーザーで実行していませんでしょうか?メッセージに書いてあるとおり、
> Homebrewはrootユーザーでの実行をサポートしていません。
> brewのコマンドをrootユーザーで実行しないでください。
2018/05/04(金) 02:48:17.17ID:wNwn5ZDw0
>>330
なるほど、brew は sudo で実行は「されなくなった」んだな

Error: Running Homebrew as root is extremely dangerous and no longer supported.
As Homebrew does not drop privileges on installation you would be giving all
build scripts full access to your system.

になったのね。ここはすまんかった

だけど、他のモロモロはやっぱり勘違いしてると思うよ
2018/05/04(金) 02:58:59.34ID:xxF97efP0
そりゃhomebrewの流儀に反することをやるのであれば何でもできるだろうけど
それはせっかく簡単に使えるように用意してくれてるのに面倒なだけ

homebrewを普通に使えば、一般ユーザーでインストールすることになり
そのプログラムなどは/usr/local以下などに一般ユーザーを所有者として作成される。

そしてhomebrewの流儀に従ってmysqlを起動するときは、
brew servicesコマンドで起動する。当然一般ユーザー権限で起動する
そもそもなんでhomebrewがrootで動かなくしたのかを考えればわかるだろう
一般ユーザー権限で起動したサーバーはデータファイルを一般ユーザーを所有者として作成する
/usr/local/var以下などにだ

そして所有者が一般ユーザーなので、他のユーザーでサービスを起動しても読み書きできない
安心してhomebrewでインストールしたアプリを使えるのは、インストールしたユーザーだけ
サービス系なんか面倒なことにユーザー切替で行ったり来たりさ
2018/05/04(金) 03:21:09.20ID:wNwn5ZDw0
えーーーっ
そんなガチガチだったら、/usr/local/には入れないだろにとしか思えんな。サービスなんてテスト目的でしか使えないやん
なんだったかと同じように、brewとかナニかインストール(スクリプトの実行に)のにsudoでは危険なだけだろとしか思えんな

MySQLにしたって、データベース作るのもデーモンとして起動するのもMySQL自身がそのユーザにスイッチする機能(オプション)があるけど?設定ファイルでも設定できたかな

まあ、なんか知らんがそういう信条をもっているのは自由だが、それが正解だと言われると、それは違うだろうとしか言えんな
サーバーに使うなら簡単に用意してくれる実行環境なんて以上に設定が面倒だし、そのHomebrewの流儀とやらからは逸脱(?)するのは当然だろう。てか、Homebrewでインストールした普通のサービスってどんだけ危険やねん
Homebrewに期待するのがアップデートが簡単というのなら、全然それはそれでだし、Homebrewの流儀とやらに反してるとは思わんな。Homebrewでインストールした普通のサービスがそんなに危険だとは全く思わないので
2018/05/04(金) 03:29:34.04ID:wNwn5ZDw0
... dovecot インストールしてみましたところ、
To have launchd start dovecot now and restart at startup:
sudo brew services start dovecot

ですって。で、sudo brew services start dovecot しても怒られませんでした
2018/05/04(金) 03:48:54.64ID:xxF97efP0
>>333
> そんなガチガチだったら、/usr/local/には入れないだろにとしか思えんな。
そうだよ?だからこんな事が必要

https://blog.ymyzk.com/2015/10/os-x-el-capitan-homebrew/

> /usr/local が存在しない場合
> OS X 10.11.1 に含まれる com.apple.pkg.SystemIntegrityProtectionConfig.14U2076 の
> アップデートによって SIP を無効化しなくても /usr/local のディレクトリを作成できるようになったようです.
> 以下のコマンドで /usr/local を作成して適切なパーミッションを設定します.
>
> sudo mkdir /usr/local && sudo chflags norestricted /usr/local && sudo chown -R $(whoami):admin /usr/local

/usr/local/ の所有者を一般ユーザーに変更(笑)
レスを投稿する


ニューススポーツなんでも実況