لماذا mysqldump تحتاج إلى pathed تماما عندما دعا من وحدة تحكم أو نموذج؟

StackOverflow https://stackoverflow.com/questions/1803728

سؤال

عند أدعو mysqldump من وحدة تحكم أو نموذج I تحتاج إلى كامل مسار ثنائي، عندما أسميها من الخليع ولست بحاجة ل.

إذا كنت لا بالكامل مسار أحصل على ملف بايت صفر ...

وأستطيع أن أؤكد يتم تشغيل كل العمليات التي تستخدم نفس المستخدم.

# Works in a controller, model and Rake task
system "/usr/local/mysql/bin/mysqldump -u root #{w.database_name} > #{target_file}"

# Only works in a Rake task
system "mysqldump -u root #{w.database_name} > #{target_file}"

إذا أسميه مهمة الخليع من العمل أنه فشل أيضا (ملف بايت صفر).

وOS: ماك روبي 1.8.6

وتحرير: أنا استخدم Etc.getpwuid(Process.uid).name للحصول على العضو من العملية الحالية

هل كانت مفيدة؟

المحلول

ويمكنك دائما تعديل متغير بيئة PATH الخاص بك على النحو المطلوب، بطبيعة الحال. شيء من هذا القبيل هو أفضل القيام به في environment.rb أو الخاص بك التكوين بيئة محددة:

add_paths = %w[ /usr/local/mysql/bin /opt/local/bin ]
ENV['PATH'] = (ENV['PATH'].split(/:/) + add_paths).uniq.select do |p|
  File.exist?(File.expand_path(p))
end.join(':')

وبهذه الطريقة يمكنك إضافة عناصر التعسفية إلى المسار إذا كانت موجودة على النظام الخاص بك.

نصائح أخرى

ولقد وجدت في الآونة الأخيرة من الركاب (mod_rails) لا يعمل في قذيفة مثل هجين، والذي هو واضح عندما كنت تفكر في ذلك. وبالتالي فإنه لا <م> لا 'وراثة' كامل نظام $ PATH.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top